re PR rtl-optimization/46204 (g++.dg/torture/stackalign/throw-1.C fails to compile...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
2
3         PR rtl-optimization/46204
4         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
5         Update all callers.  Do not recompute topological order.  Adjust
6         fallthrough edges following a degenerate conditional jump.
7
8 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
9
10         * opts-common.c (control_warning_option): New.
11         * opts.c (set_default_handlers): New.
12         (decode_options): Use set_default_handlers and
13         control_warning_option.
14         (common_handle_option): Update call to enable_warning_as_error.
15         (enable_warning_as_error): Take gcc_options parameters.  Use
16         control_warning_option.
17         * opts.h (set_default_handlers, control_warning_option): Declare.
18
19 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
20
21         * Makefile.in (OPTS_H): Define.
22         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
23         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
24         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
25         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
26         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
27         * gcc.c (driver_handle_option): Take location_t parameter.
28         (process_command, do_self_spec): Update calls to
29         read_cmdline_option.
30         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
31         * langhooks.c (lhd_handle_option): Take location_t parameter.
32         * langhooks.h (handle_option): Take location_t parameter.
33         * lto-opts.c (lto_reissue_options): Update call to set_option.
34         * opts-common.c (handle_option): Make static.  Take location_t
35         parameter and pass it to other functions.
36         (handle_generated_option): Take location_t parameter and pass it
37         to other functions.
38         (read_cmdline_option): Take location_t parameter and pass it to
39         other functions.  Use warning_at and error_at.
40         (set_option): Take location_t parameter and pass it to other
41         functions.
42         * opts.c (common_handle_option): Take location_t parameter and
43         pass it to other functions.
44         (enable_warning_as_error): Make static.  Take location_t parameter
45         and pass it to other functions.
46         (lang_handle_option): Take location_t parameter and pass it to
47         other functions.
48         (target_handle_option): Take location_t parameter.
49         (read_cmdline_options, maybe_default_option,
50         maybe_default_options, default_options_optimization,
51         decode_options): Take location_t parameter and pass it to other
52         functions.
53         * opts.h: Include input.h.
54         (struct cl_option_handler_func, decode_options, set_option,
55         handle_generated_option, read_cmdline_option): Take location_t
56         parameters.
57         (handle_option, enable_warning_as_error): Remove.
58         * toplev.c (toplev_main): Update call to decode_options.
59
60 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
61
62         * graphite-cloog-util.c (oppose_constraint,
63         cloog_matrix_to_ppl_constraint,
64         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
65         CLooG isl uses unsigned integers.  This triggered a warning.
66
67 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
68
69         PR target/46438
70         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
71         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
72         (xtensa_function_arg_1): De-constify cum.
73         (xtensa_expand_prologue): Use add_reg_note.
74
75         PR target/46435
76         * config/cris/cris.c (saved_regs_mentioned): Delete.
77         (cris_reload_address_legitimized): Cast itype to enum reload_type.
78         Remove unused variable op0p.
79         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
80         (cris_emit_movem_store): Use add_reg_note.
81
82         PR bootstrap/46456
83         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
84
85 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
86
87         * function.c (expand_function_end): Set the locator of the prologue on
88         the stack checking insns.
89
90 2010-11-12  Richard Henderson  <rth@redhat.com>
91
92         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
93         * config/xtensa/xtensa.opt (mfused-madd): Remove.
94         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
95         MASK_FUSED_MADD.
96         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
97         (fnmasf4): Rename from mulsubsf3; use fma.
98
99 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
100             Richard Henderson  <rth@redhat.com>
101
102         PR target/46428
103         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
104         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
105         comparison.
106
107 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
108
109         * opts-common.c (decode_cmdline_option): Initialize separate_args.
110
111 2010-11-12  Jan Hubicka  <jh@suse.cz>
112
113         * doc/invoke.texi (early-inlining-insns): Update default.
114         * params.def (early-inlining-insns): Default to 10.
115
116 2010-11-12  Olivier Hainque  <hainque@adacore.com>
117
118         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
119
120 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
121
122         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
123         (SUPPORTS_INIT_PRIORITY): Define.
124
125 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
126
127         PR target/46430
128         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
129         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
130         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
131         (avr_device_to_devicelib): Likewise.
132         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
133         into block.
134         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
135         (zero_extendhidi2, zero_extendsidi2): Likewise.
136         * config/avr/avr.c (avr_num_arg_regs): Constify type.
137         (avr_return_addr_rtx): De-constify tem.
138         (avr_rotate_bytes): Move declarations to start of block.
139         Don't use variable length array.
140         Put nested if/else into block.
141
142         PR rtl-optimization/46433
143         * var-tracking.c: Include tm_p.h .
144
145         PR bootstrap/44756
146         PR build/44767
147         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
148         should be unsigned.
149         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
150         * doc/tm.texi: Regenerate.
151
152         PR target/46412
153         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
154         * config/bfin/bfin.c: Include sel-sched.h .
155         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
156         (expand_interrupt_handler_prologue): Remove unused variable insn.
157         (bfin_load_pic_reg): Likewise.
158         (bfin_rtx_costs): Make code / outer_code variables of type
159         enum rtx_code, copied from re-named parameters.
160         (bfin_local_alignment): Change align argument and return type
161         to unsigned.
162         (bfin_adjust_cost): Remove unused variable insn_type.
163         Declare variables at start of block.
164         (struct loop_info): Rename to...
165         (struct loop_info_d).
166         (workaround_rts_anomaly): Change type of icode to int.
167         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
168         with int-typed variable.
169         (note_np_check_stores): Likewise.
170         (trapping_loads_p): Remove unused variable pat.
171         (bfin_expand_binop_builtin): Use expand_normal.
172         (bfin_expand_unop_builtin): Likewise.
173         (bfin_expand_builtin): Likewise.
174         Set tmode before use.
175
176         PR middle-end/44769
177         * final.c (split_double): Don't use BITS_PER_WORD directly in
178         shift count.
179
180         PR target/46431
181         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
182         assignment.
183
184         PR target/46450
185         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
186         Use add_reg_note.
187         (xstormy16_function_arg): Dereference cum.
188         (xstormy16_expand_builtin): Use expand_normal.
189         Change type of omode to enum machine_mode.
190         (combine_bnp): Rename and to and_insn.
191
192         PR target/46437
193         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
194         localreg.
195
196 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
197
198         PR debug/46375
199         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
200
201 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
202
203         PR lto/46376
204         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
205
206 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
207
208         PR c/44782
209         * common.opt (fmax-errors=): New option.
210         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
211         * diagnostic.h (struct diagnostic_context): Add max_errors field.
212         * diagnostic.c (diagnostic_initialize): Initialize it.
213         (diagnostic_action_after_output): Exit if more than max_errors
214         have been output.
215         * doc/invoke.texi (Warning Options): Add -fmax-errors.
216         (-fmax-errors): Document.
217
218 2010-11-11  Richard Henderson  <rth@redhat.com>
219
220         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
221
222 2010-11-11  Richard Henderson  <rth@redhat.com>
223
224         * config/fused-madd.opt: New file.
225         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
226         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
227         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
228         * config/i386/i386.opt (mfused-madd): Remove.
229         * config/i386/sse.md (split_fma): Remove.
230         (split_fms, split_fnma, split_fnms): Remove.
231
232 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
233
234         PR target/46088
235         * config/i386/i386.md (*ashl<mode>3_cconly,
236         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
237         change nonimmediate_operand predicate to register_operand.
238
239 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
240
241         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
242
243 2010-11-11  Jan Hubicka  <jh@suse.cz>
244
245         * opts.c (finish_options): Do not error on -flto-partition alone.
246
247         * doc/invoke.texi (-fwhopr): Merge into -flto section.
248         (-flto-partition): Document none.
249         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
250         * lto-wrapper.c: Update comment.
251         (run_gcc): Update LTO option parsing.
252         * opts.c (finish_options): add support -flto-partition=none
253         (common_handle_option): Remove fwhopr.
254         * common.opt: Turn fwhopr into flto.
255         * collect2.c (main): Update option handling.
256         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
257         * ipa-split.c (execute_split_functions): Remove flag_whopr.
258         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
259         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
260         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
261
262 2010-11-11  Jan Hubicka  <jh@suse.cz>
263
264         PR tree-optimize/40436
265         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
266         (eliminated_by_inlining_prob): ... this one; return 50% probability for
267         SRA.
268         (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob;
269         estimate static function size for 2 instructions.
270
271 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
272
273         PR target/44749
274         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
275         declare.  Change type of argument four to type int.
276         (mep_secondary_input_reload_class): Returns enum reg_class.
277         (mep_secondary_output_reload_class): Likewise.
278         (mep_function_value): Change types of arguments to cont_tree.
279         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
280         argument four to type int.
281         (mep_secondary_input_reload_class): Returns enum reg_class.
282         (mep_secondary_output_reload_class): Likewise.
283         (mep_function_value): Change types of arguments to cont_tree.
284         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
285         mep_regno_reg_class to enum reg_class.
286
287 2010-11-11  Richard Henderson  <rth@redhat.com>
288
289         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
290         that the target has the exact fma operation that we matched.
291
292 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
293
294         * reginfo.c (fix_register): Avoid inserting English word in
295         diagnostic sentence.  Use %qs for quoting and %'.
296
297 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
298
299         * config/i386/driver-i386.c (host_detect_local_cpu): Support
300         Intel processor family 6, model 0x2c.
301
302 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
303
304         * opts.c (warning_as_error_callback,
305         register_warning_as_error_callback): Remove.
306         (enable_warning_as_error): Don't use warning_as_error_callback.
307         * opts.h (register_warning_as_error_callback): Remove.
308
309 2010-11-11  Richard Henderson  <rth@redhat.com>
310
311         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
312         in between the MULT and the PLUS/MINUS.
313
314 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
315
316         PR middle-end/46388
317         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
318         BLKmode mode for it.
319         (expand_expr_real_1): Similarly for op0.
320
321 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
322
323         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
324         Document optional target selector.
325
326 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
327
328         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
329         assembling high and low parts of size if not using 32-bit HWINT; else
330         use DECL_SIZE_UNITS, not DECL_SIZE.
331
332 2010-11-11  Martin Jambor  <mjambor@suse.cz>
333
334         PR tree-optimization/46383
335         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
336         offsets.
337         (compute_complex_ancestor_jump_func): Likewise.
338         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
339
340 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
341
342         PR debug/46150
343         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
344         true if expr1->hash != expr2->hash.
345
346 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
347
348         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
349         diagnostics with lowercase letters.
350         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
351         lowercase letters.
352         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
353         diagnostic.
354         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
355         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
356         lowercase letters.
357         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
358         Remove trailing ' ' from diagnostic.
359         * config/avr/avr.c (print_operand_address): Start diagnostic with
360         a lowercase letter and remove trailing '.'.
361         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
362         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
363         with lowercase letters.  Use %' in diagnostics.  Remove trailing
364         '.' from diagnostics.
365         (bfin_handle_longcall_attribute): Use %' in diagnostic.
366         * config/cris/cris.c (cris_split_movdx,
367         cris_expand_pic_call_address): Start diagnostics with lowercase
368         letters.
369         (cris_asm_output_label_ref): Use %' in diagnostic.
370         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
371         letter.
372         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
373         lowercase letter.
374         * config/darwin-c.c (version_as_macro): Start diagnostic with a
375         lowercase letter.
376         * config/darwin-driver.c (darwin_default_min_version): Use %' in
377         diagnostic.
378         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
379         diagnostic.
380         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
381         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
382         diagnostics.
383         * config/i386/i386.c (ix86_option_override_internal): Write
384         diagnostic as a single sentence without trailing '.'.  Use %' in
385         diagnostics.
386         (ix86_function_sseregparm, classify_argument): Start diagnostics
387         with lowercase letters.
388         (ix86_expand_prologue): Use %' in diagnostic.
389         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
390         diagnostic.
391         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
392         lowercase letter.
393         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
394         diagnostic.
395         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
396         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
397         '`' in help text.
398         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
399         lowercase letter.
400         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
401         lowercase letters.
402         * config/microblaze/microblaze.c (microblaze_handle_option):
403         Remove trailing '.' from diagnostic.
404         (print_operand): Start diagnostic with a lowercase letter.
405         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
406         lowercase letters.  Avoid '`' in diagnostics.
407         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
408         lowercase letters.  Avoid '`' in diagnostics.
409         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
410         lowercase letters.  Avoid '`' in diagnostics.
411         * config/picochip/picochip.c (picochip_option_override,
412         picochip_emit_save_register, picochip_function_arg,
413         picochip_output_label, picochip_output_internal_label,
414         picochip_asm_output_opcode, picochip_output_cbranch,
415         picochip_output_compare, picochip_output_branch,
416         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
417         diagnostics. Start diagnostics with lowercase letters.  Use %' in
418         diagnostics.
419         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
420         "SPE" capitalization.  Start diagnostic with a lowercase letter.
421         (rs6000_handle_option): Start diagnostics with lowercase letters.
422         (def_builtin): Remove trailing '.' from diagnostic.
423         (rs6000_savres_routine_name): Start diagnostic with a lowercase
424         letter.
425         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
426         diagnostic.
427         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
428         lowercase letter.
429         * config/s390/s390.c (s390_option_override) Start diagnostics with
430         lowercase letters.  Use %' in diagnostic.
431         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
432         lowercase letters.
433         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
434         diagnostic.
435         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
436         diagnostic.
437         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
438         diagnostic.
439         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
440         * config/spu/spu.c (spu_option_override): Start diagnostics with
441         lowercase letters.  Use %qs for quoting in diagnostics.
442         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
443         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
444         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
445         from diagnostic.
446         * convert.c (convert_to_integer, convert_to_vector): Use %' in
447         diagnostics.
448         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
449         letter and use "cannot" spelling.
450         * expmed.c (extract_fixed_bit_field): Start diagnostic with
451         lowercase letter and format as a single sentence without '.'.
452         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
453         Use %' in diagnostics.
454         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
455         Use %' in diagnostics.
456         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
457         Use %' in diagnostics.
458         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
459         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
460         with lowercase letters and remove tailing '.' and '\n'.
461         * lto-cgraph.c (input_profile_summary): Start diagnostic with
462         lowercase letter and remove trailing '.'.
463         (input_cgraph): Start diagnostics with lowercase letters and
464         remove trailing '\n'.
465         * opts.c (finish_options, common_handle_option): Start diagnostics
466         with lowercase letters and remove trailing '.'.  Fix typo in
467         diagnostic.
468         * passes.c (position_pass): Start diagnostic with lowercase
469         letter. 
470         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
471         register_callback, try_init_one_plugin): Start diagnostics with
472         lowercase letters.
473         * reload1.c (spill_failure): Use %' in diagnostic.
474         (gen_reload): Start diagnostic with a lowercase letter.
475         * stor-layout.c (place_field): Start diagnostic with a lowercase
476         letter.
477         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
478         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
479         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
480         Start diagnostics with lowercase letters, remove trailing '.' and
481         use %' in diagnostics.
482         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
483         (verify_ssa): Don't split diagnostic across two error calls.
484         Spell out "number" and use %' in diagnostic.
485         * value-prof.c (visit_hist, check_counter): Start diagnostics with
486         lowercase letters.
487
488 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
489
490         PR middle-end/46419
491         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
492         (_mm_cvtpu16_ps): Ditto.
493
494 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
495
496         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
497         warn_larger_than, larger_than_size, warn_frame_larger_than,
498         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
499         default_visibility, flag_tls_default): New Variable declarations.
500         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
501         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
502         (v): Declare as Common and document here.
503         * flags.h (default_visibility, flag_generate_lto,
504         warn_larger_than, larger_than_size, warn_frame_larger_than,
505         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
506         flag_shlib, flag_excess_precision_cmdline): Remove.
507         (set_Wstrict_aliasing): Update prototype.
508         * gcc.c (verbose_flag): Remove.
509         (driver_handle_option): Add diagnostic_context parameter.  Don't
510         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
511         incrementing it.
512         * opts-common.c (handle_option): Pass dc to handler.
513         * opts.c (warn_larger_than, larger_than_size,
514         warn_frame_larger_than, frame_larger_than_size,
515         default_visibility): Remove.
516         (common_handle_option): Add diagnostic_context parameter.
517         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
518         gcc_options parameters.
519         (lang_handle_option, target_handle_option, read_cmdline_options,
520         decode_options): Add diagnostic_context parameters.
521         (finish_options): Access option state through opts pointer where
522         possible.
523         (common_handle_option): Access option state through opts pointer
524         where possible.  Do not set local static variable verbose.  Do not
525         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
526         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
527         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
528         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
529         OPT_fwhopr_.  Do not explicitly set .opt file variables for
530         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
531         (set_Wstrict_aliasing): Add gcc_options parameter.
532         * opts.h (struct cl_option_handler_func): Add diagnostic_context
533         parameter to handler.
534         (decode_options): Add diagnostic_context parameter.
535         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
536         asm_file_name, flag_generate_lto, flag_gen_aux_info,
537         aux_info_file_name, flag_shlib, flag_tls_default,
538         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
539         (toplev_main): Pass global_dc to decode_options.
540         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
541         aux_info_file_name, asm_file_name): Remove.
542         * tree.h (flag_tls_default): Remove.
543
544 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
545
546         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
547         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
548
549 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
550
551         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
552         (x86_64-*-*): Likewise.
553         * config/i386/cpuid.h: Define TBM bit.
554         * config/i386/driver-i386.c (host_detect_local_cpu): Define
555         and set has_tbm.
556         * config/i386/i386-c.c (ix86_target_macros_internal): Check
557         isa_flag for TBM.
558         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
559         (OPTION_MASK_ISA_TBM_UNSET): New.
560         (ix86_handle_option): Handle -mtbm.
561         (isa_opts): Add -mtbm.
562         (enum pta_flags): Add PTA_TBM.
563         (ix86_option_override_internal): Add TBM support.
564         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
565         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
566         (IX86_BUILTIN_BEXTRI64): Likewise.
567         (bdesc_args): Add TBM intrinsics.
568         (ix86_expand_builtin): Add TBM specific case.
569         * config/i386/i386.h (TARGET_TBM): New for TBM.
570         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
571         (tbm_bextri_<mode>): Likewise.
572         (*tbm_blcfill_<mode>): Likewise.
573         (*tbm_blci_<mode>): Likewise.
574         (*tbm_blcic_<mode>): Likewise.
575         (*tbm_blcmsk_<mode>): Likewise.
576         (*tbm_blcs_<mode>): Likewise.
577         (*tbm_blsfill_<mode>): Likewise.
578         (*tbm_blsic_<mode>): Likewise.
579         (*tbm_t1mskc_<mode>): Likewise.
580         (*tbm_tzmsk_<mode>): Likewise.
581         * config/i386/i386.opt: Add -mtbm.
582         * config/i386/tbmintrin.h (__bextri_u32): New.
583         (__blcfill_u32): Likewise.
584         (__blci_u32): Likewise.
585         (__blcic_u32): Likewise.
586         (__blcmsk_u32): Likewise.
587         (__blcs_u32): Likewise.
588         (__blsfill_u32): Likewise.
589         (__blsic_u32): Likewise.
590         (__t1mskc_u32): Likewise.
591         (__tzmsk_u32): Likewise.
592         (__bextri_u64): Likewise.
593         (__blcfill_u64): Likewise.
594         (__blci_u64): Likewise.
595         (__blcic_u64): Likewise.
596         (__blcmsk_u64): Likewise.
597         (__blcs_u64): Likewise.
598         (__blsfill_u64): Likewise.
599         (__blsic_u64): Likewise.
600         (__t1mskc_u64): Likewise.
601         (__tzmsk_u64): Likewise.
602         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
603         * doc/invoke.texi: Document -mtbm.
604         * doc/extend.texi: Document TBM built-in functions.
605
606 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
607
608         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
609         (x86_64-*-*): Likewise.
610         * config/i386/cpuid.h: Define BMI bit.
611         * config/i386/driver-i386.c (host_detect_local_cpu): Define
612         and set has_bmi.
613         * config/i386/i386-c.c (ix86_target_macros_internal): Check
614         isa_flag for BMI.
615         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
616         (OPTION_MASK_ISA_BMI_UNSET): New.
617         (ix86_handle_option): Handle -mbmi.
618         (isa_opts): Add -mbmi.
619         (enum pta_flags): Add PTA_BMI.
620         (ix86_option_override_internal): Add BMI support.
621         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
622         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
623         (IX86_BUILTIN_BEXTR64): Likewise.
624         (IX86_BUILTIN_CTZS): Likewise.
625         (bdesc_args): Add BMI intrinsics.
626         (ix86_expand_args_builtin): Add BMI specific cases.
627         * config/i386/i386.h (TARGET_BMI): New for BMI.
628         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
629         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
630         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
631         (UNSPEC_TZCNT): Likewise.
632         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
633         (bmi_andn_<mode>): New for BMI.
634         (bmi_bextr_<mode>): Likewise.
635         (bmi_blsi_<mode>): Likewise.
636         (bmi_blsmsk_<mode>): Likewise.
637         (bmi_blsr_<mode>): Likewise.
638         * config/i386/i386.opt: Add -mbmi.
639         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
640         * config/i386/bmiintrin.h (__lzcnt_u16): New.
641         (__tzcnt_u16): Likewise.
642         (__andn_u32): Likewise.
643         (__bextr_u32): Likewise.
644         (__blsi_u32): Likewise.
645         (__blsmsk_u32): Likewise.
646         (__blsr_u32): Likewise.
647         (__lzcnt_u32): Likewise.
648         (__tzcnt_u32): Likewise.
649         (__andn_u64): Likewise.
650         (__bextr_u64): Likewise.
651         (__blsi_u64): Likewise.
652         (__blsmsk_u64): Likewise.
653         (__blsr_u64): Likewise.
654         (__lzcnt_u64): Likewise.
655         (__tzcnt_u64): Likewise.
656         * doc/invoke.texi: Document -mbmi and -mno-bmi.
657         * doc/extend.texi: Document BMI built-in functions.
658
659 2010-11-10  Jan Hubicka  <jh@suse.cz>
660
661         PR tree-optimize/46228
662         * doc/invoke.texi (comdat-sharing-probability): Document.
663         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
664         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
665
666 2010-11-10  Jan Hubicka  <jh@suse.cz>
667
668         PR tree-optimize/46228
669         * cgraph.c (cgraph_propagate_frequency): Fix typo.
670
671 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
672
673         PR tree-optimization/46414
674         * tree-inline.c (estimate_move_cost): Check preferred vector
675         mode for vector type.
676
677 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
678
679         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
680
681 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
682
683         PR tree-optimization/45971
684         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
685         for phi nodes analyzable by scev.
686
687 2010-11-10  Richard Guenther  <rguenther@suse.de>
688
689         PR tree-optimization/44964
690         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
691
692 2010-11-10  Martin Jambor  <mjambor@suse.cz>
693
694         PR tree-optimization/46351
695         PR tree-optimization/46377
696         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
697         aggregate bit-fields.
698
699 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
700
701         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
702         * doc/tm.texi: Regenerate.
703         * opts-common.c (tm.h): Don't include.
704         (target_option_translations): Remove.
705         (decode_cmdline_options_to_array): Don't handle translating options.
706         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
707         * config/darwin-driver.c: Don't condition includes on
708         CROSS_DIRECTORY_STRUCTURE.
709         (darwin_default_min_version): Make static.
710         (darwin_driver_init): New.  Call darwin_default_min_version if not
711         CROSS_DIRECTORY_STRUCTURE.
712         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
713         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
714         (ASM_SPEC): Add %{static}.
715         (darwin_default_min_version): Don't declare.
716         (darwin_driver_init): Declare.
717         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
718         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
719         * config/darwin.opt (all_load, allowable_client,
720         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
721         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
722         exported_symbols_list, filelist, findirect-virtual-calls,
723         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
724         framework, fterminated-vtables, gfull, gused, image_base, init,
725         install_name, multi_module, multiply_defined,
726         multiply_defined_unused, no_dead_strip_inits_and_terms,
727         seg_addr_table, seg_addr_table_filename, segaddr,
728         segs_read_only_addr, segs_read_write_addr, single_module,
729         umbrella, unexported_symbols_list, weak_reference_mismatches,
730         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
731         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
732         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
733         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
734         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
735         (ASM_SPEC): Add %{static}.
736         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
737         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
738         (DRIVER_SELF_SPECS): Handle options formerly in
739         TARGET_OPTION_TRANSLATE_TABLE.
740         * config/mep/mep.opt (mfar): New.
741         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
742         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
743         TARGET_OPTION_TRANSLATE_TABLE.
744         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
745         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
746         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
747         ffix-and-continue, findirect-data): New.
748         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
749         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
750         (mnofpu): Define mask and use Report here.
751
752 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
753
754         * config/s390/s390.c (s390_emit_prologue): Report the stack
755         size if -fstack-usage is used.
756
757 2010-11-10  Richard Guenther  <rguenther@suse.de>
758
759         PR tree-optimization/46398
760         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
761
762 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
763
764         PR target/44760
765         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
766         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
767         GP_REG_OR_PSEUDO_STRICT_P.
768         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
769         unexpected alternative.
770         (*movsf_internal): Likewise.
771         (indirect_jump): Replace call to non-existant function with call to
772         internal_error.
773         (tablejump): Likewise.
774         * config/iq2000/iq2000.c: Include df.h .
775         (iq2000_function_arg_advance): Use CONST_CAST2.
776         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
777         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
778         a non-zero function address.
779         (iq2000_initial_elimination_offset): Add gcc_unreachable for
780         unexpected value of FROM.
781         (symbolic_expression_p): Delete.
782         (iq2000_function_value): Constify func.
783         (expand_one_builtin): Use expand_normal.
784         (iq2000_print_operand): Don't print VALUE if calculating it failed.
785
786         PR rtl-optimization/44764
787         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
788
789         PR target/46407
790         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
791         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
792         with ATTRIBUTE_UNUSED.
793         (valid_psw_flag): Constify parameter which.
794         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
795
796         PR target/46415
797         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
798         (mmix_dbx_register_number): Likewise.
799         * config/mmix/mmix.c: Include df.h .
800         (mmix_local_alignment): Change argument basic_align and return type
801         to unsigned.
802         (mmix_dbx_register_number): Change argument and return type to
803         unsigned.
804         (mmix_expand_prologue): Use add_reg_note.
805
806         PR target/46417
807         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
808         (spu_split_store): Use aform.
809         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
810
811 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
812
813         PR/46268
814         * doc/gty.texi (GTY Options): Clarify that variable_size produces
815         allocators taking size in bytes, compare with length option.  Add
816         size calculation example.
817         (Invoking the garbage collector): Ensure that sentences are
818         followed by two spaces.  Describe that pointer fields must be
819         initialized at ggc_collect call.
820         (Troubleshooting): New section.
821
822 2010-11-09  Jan Hubicka  <jh@suse.cz>
823
824         PR tree-optimization/40436
825         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
826         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
827         normal instructions; be sure bultin is not implemented in this file;
828         compute non-zero return cost.
829         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
830         * tree-inline.h (eni_weights_d): Add return cost.
831
832 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
833
834         * c-parser.c (c_parser_struct_declaration): Handle declaration
835         specifiers followed by CPP_CLOSE_BRACE.
836
837 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
838
839         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
840         split occurs before reload, and we allocate memory at the time of
841         the split, not during expansion.  Add attributes.
842         (floatsi<mode>2_lfiwax_mem): Ditto.
843         (floatunssi<mode>2_lfiwzx): Ditto.
844         (floatunssi<mode>2_lfiwzx_mem): Ditto.
845         (floatsidf2): Ditto.
846         (floatunssisf2): Ditto.
847         (floatunssidf2): Ditto.
848         (fix_trunc<mode>si2): Ditto.
849         (fix_trunc<mode>si2_stfiwx): Ditto.
850         (fix_trunc<mode>si2_internal): Ditto.
851         (fix_trunc<mode>si2): Ditto.
852         (fix_trunc<mode>di2): Ditto.
853         (fixuns_trunc<mode>si2_stfiwx): Ditto.
854         (floatsisf2): Ditto.
855         (floatdidf2_mem): Ditto.
856         (floatunsdidf2_mem): Ditto.
857         (floatunsdidf2): Ditto.
858         (floatdisf2_internal1): Ditto.
859         (floatdisf2_mem): Ditto.
860         (floatunsdisf2_mem): Ditto.
861         (floatsi<mode>2_lfiwax_mem2): Delete.
862         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
863         (fix_trunc<mode>si2_mem): Ditto.
864         (fixuns_trunc<mode>si2_mem): Ditto.
865         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
866         type operations to reduce copying the values to multiple memory slots.
867         (roundu32<mode>2_fprs): Ditto.
868
869         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
870         PRE_INC, PRE_DEC, PRE_MODIFY.
871         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
872
873         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
874         Delete prototype.
875
876 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
877
878         PR target/43808
879         * cfgexpand.c (partition_stack_vars): Call
880         update_alias_info_with_stack_vars unconditionally.
881         (update_alias_info_with_stack_vars): Allow unused
882         unreferenced vars when not optimizing.
883
884 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
885
886         PR tree-optimization/46036
887         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
888         add_to_dst_predicate_list.
889
890 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
891
892         PR debug/46171
893         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
894         earlier.
895         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
896         argument, call dead_debug_reset when adding REG_UNUSED note.
897         (dead_debug_reset): New function.
898         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
899         df_create_unused_note callers.
900
901 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
902
903         * config/fr30/fr30.c: Include "df.h".
904
905 2010-11-09  Richard Guenther  <rguenther@suse.de>
906
907         PR tree-optimization/46355
908         * tree-loop-distribution.c (tree_loop_distribution): Do not
909         distribute loops without a single exit.
910
911 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
912
913         PR rtl-optimization/46237
914         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
915         saved hard regs if they might get partially clobbered.
916
917 2010-11-09  Paul Koning  <ni1d@arrl.net>
918
919         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
920
921 2010-11-09  Richard Guenther  <rguenther@suse.de>
922
923         PR tree-optimization/46177
924         * tree-loop-distribution.c (prop_phis): Remove.
925         (generate_builtin): Re-use the old loop exit edge to avoid
926         needing to update PHI nodes.
927
928 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
929
930         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
931         type of args_size to unsigned HOST_WIDE_INT.
932
933         PR target/44755
934         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
935         * config/t-pnt16-warn: New file.
936         * config/picochip/picochip.c (picochip_emit_stack_allocate):
937         Use add_reg_note.
938         (picochip_emit_save_register): Likewise.
939         (picochip_emit_restore_register): Remove variable insn.
940         (picochip_legitimize_address): Don't use C++ style comments.
941         (picochip_legitimize_reload_address): Likewise.
942         (reorder_var_tracking_notes): Remove variable vliw_start.
943         (picochip_reorg): Cast first arguemnt to emit_note_after to
944         enum insn_note.
945         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
946         (picochip_expand_builtin_3op): Likewise.
947         (picochip_expand_builtin_2opvoid): Likewise.
948         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
949         (picochip_expand_array_testport): Likewise.
950         (picochip_init_builtins): Remove unused variables.
951         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
952         to unsigned long, and output it as such.
953         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
954         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
955         (schedType): Cast result of picochip_schedule_type to
956         enum attr_schedType.
957
958         PR target/44759
959         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
960         conditional to type of S.
961         (mn10300_function_arg): Remove unused variable align.
962         (mn10300_arg_partial_bytes): Likewise.
963         * config/mn10300/mn10300.md (attribute cpu): Cast value to
964         enum attr_cpu.
965
966 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
967
968         PR bootstrap/46392
969         * gengtype-parse.c (type): Call get_input_file_name to get file name.
970
971 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
972
973         * tree.h (contains_placeholder_p): Fix comment.
974         (type_contains_placeholder_p): Adjust comment.
975         * tree.c (contains_placeholder_p): Fix comment.
976         (type_contains_placeholder_1): Do not recurse on pointed-to types and
977         adjust comment.
978         (type_contains_placeholder_p): Add comment.
979
980 2010-11-09  Paul Koning  <ni1d@arrl.net>
981
982         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
983         output of byte values.
984
985 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
986
987         PR middle-end/46360
988         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
989         not in SSA mode.
990
991 2010-11-09  Richard Guenther  <rguenther@suse.de>
992
993         PR middle-end/46221
994         * varasm.c (compute_visible_aliases): New function.
995         (remove_unreachable_alias_pairs): Aliases make a target available
996         even though we reclaimed the cgraph node.
997         (finish_aliases_1): Likewise.
998         * Makefile.in (varasm.o): Add pointer-set.h dependency.
999
1000 2010-11-09  Nick Clifton  <nickc@redhat.com>
1001
1002         * config/mn10300/mn10300-modes.def: New file.
1003
1004 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
1005             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1006
1007         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
1008         (plugin_files, get_file_basename, get_file_realbasename)
1009         (get_file_langdir, error_at_line, gt_files, this_file)
1010         (system_h_file, read_input_list, create_field_all)
1011         (get_file_srcdir_relative_path, get_file_basename)
1012         (get_file_langdir, get_file_gtfilename)
1013         (get_output_file_with_visibility, get_output_file_name)
1014         (struct flist, put_mangled_filename, walk_type)
1015         (put_mangled_filename, finish_root_table, write_roots): Use
1016         input_file-s.
1017         (lang_dir_names, num_lang_dirs): Remove static.
1018         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
1019         (main): Use input_file-s.
1020
1021         * gengtype.h: (struct input_file_st, input_file): New type.
1022         (struct fileloc): Use it.
1023         (gt_files, num_gt_files, this_file, system_h_file)
1024         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
1025         (get_input_file_name): New function.
1026         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
1027         use input_file.
1028         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
1029         (get_output_file_name): Ditto.
1030
1031         * gengtype-lex.l (yybegin): Use input_file.
1032
1033         * gengtype-parse.c (parse_error): Use input_file.
1034
1035 2010-11-08  Xinliang David Li  <davidxl@google.com>
1036
1037         PR tree-optimization/46316
1038         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
1039         * double-int.h (double_int_mul_with_sign): New function.
1040         * double-int.c (double_int_mul_with_sign): New function.
1041
1042 2010-11-08  Paul Koning  <ni1d@arrl.net>
1043
1044         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
1045
1046 2010-11-08  Paul Koning  <ni1d@arrl.net>
1047
1048         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
1049
1050 2010-11-08  Paul Koning  <ni1d@arrl.net>
1051
1052         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
1053         to 8 bits.
1054
1055 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1056
1057         PR target/46378
1058         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1059         turn on ISA 2.04 rounding instructions for power5.
1060
1061         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
1062         not ISA 2.02.
1063
1064         PR target/45585
1065         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
1066         in FPR registers.
1067         (movdi_low_st): Ditto.
1068
1069 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1070             Richard Henderson  <rth@redhat.com>
1071
1072         PR target/44758
1073         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
1074         (attribute acc_group): Cast value to enum attr_acc_group.
1075         (*movdi_nodouble+6): Use gen_int_mode.
1076         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
1077         if RTX_CODE is defined or not.
1078         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
1079         struct frv_io.
1080         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
1081         (frv_frame_access, frv_expand_prologue): Remove unused variables.
1082         (frv_expand_block_clear): Likewise.
1083         (frv_trampoline_init): Use LCT_NORMAL.
1084         (struct frv_packet_group): New struct, broken out of type of
1085         frv_packet.
1086         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
1087         use cast in loop counter increment.
1088         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
1089         assigning to io->type.
1090         (bdesc_set): Use rtx_code UNKNOWN in initializer.
1091         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
1092         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
1093         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
1094         (frv_read_argument): Use expand_normal.
1095
1096         PR target/44757
1097         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
1098         lm32_legitimate_constant_p.
1099         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
1100         * config/lm32/lm32.c (gen_int_relational): Make new block for
1101         LE / LT / LEU / LTU case.  Declare variables at start of block.
1102         (lm32_block_move_inline): Use XALLOCAVEC.
1103
1104 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1105
1106         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
1107
1108 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1109
1110         * gengtype (get_output_file_for_structure): Ensure type is union
1111         or struct.
1112         (write_splay_tree_allocator_def): Use
1113         get_output_file_with_visibility.
1114
1115 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1116
1117         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
1118         to defined values in case of an error.
1119         (s390_option_override): Skip further processing if the -march
1120         parameter wasn't recognized.
1121
1122 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1123
1124         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
1125         assert that REG is a hard register number before using it as an index.
1126
1127         PR bootstrap/46358
1128         * config/i386/i386.c (ix86_expand_split_stack_prologue):
1129         Avoid warnings when HOST_WIDE_INT is 32 bit.
1130
1131 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1132
1133         PR target/46208
1134         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
1135         (sparc_promote_prototypes): Likewise.
1136         (sparc_promote_function_mode): Promote in 32-bit mode as well.
1137         (sparc_return_in_memory): Remove superfluous parentheses.
1138         (sparc_struct_value_rtx): Fix long lines.
1139         (sparc_function_value_1): Promote in 32-bit mode as well.
1140
1141 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
1142
1143         PR rtl-optimization/45352
1144         * sel-sched.c (find_best_expr): Do not set pneed_stall when
1145         the variable_issue hook is not implemented.
1146         (fill_insns): Remove dead variable stall_iterations.
1147         (init_seqno_1): Force EBB start for resetting sched cycles on any
1148         successor blocks of the rescheduled region.
1149         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
1150         (reset_sched_cycles_in_current_ebb): Add debug printing.
1151         New variable issued_insns.  Advance state when we have issued
1152         issue_rate insns.
1153
1154 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1155
1156         * gengtype (main): Get here's position using POS_HERE macro for
1157         do*typedef calls.
1158
1159 2010-11-07  Ian Lance Taylor  <iant@google.com>
1160
1161         PR target/46089
1162         * config/i386/i386.c (split_stack_fn_large): New static variable.
1163         (ix86_expand_split_stack_prologue): Handle large model.
1164
1165 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
1166
1167         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
1168         all possible addressing modes.
1169
1170 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
1171
1172         PR tree-optimization/46346
1173         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
1174
1175 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1176
1177         * config/mips/mips.c: Revert previous patch.
1178         * config/mips/mips.md: Likewise.
1179
1180 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1181
1182         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
1183         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
1184         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
1185         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
1186         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
1187         to use FMA.
1188         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
1189         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
1190         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
1191         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
1192
1193 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
1194
1195         PR c/43384
1196         * c-decl.c (lookup_label): Labels can only be referenced in a
1197         function's scope.
1198         (store_parm_decls_oldstyle): Skip erroneous parameters.
1199
1200 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
1201
1202         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1203         LIBCALL_VALUE): Remove macros.
1204         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1205         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1206         (fr30_function_value_regno_p, fr30_function_value,
1207         fr30_libcall_value): New functions.
1208
1209 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
1210
1211         PR middle-end/46314
1212         * target.def (generate_internal_label): New asm_out hook.
1213         * output.h (default_generate_internal_label): Declare.
1214         * varasm.c (default_generate_internal_label): Define.
1215
1216 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1217
1218         PR target/44981
1219         * doc/extend.tex (format): Document NSString extension.
1220         (format_arg): Likewise.
1221         (Darwin Format Checks): New section.
1222         * doc/tm.texi: Document string object hooks (generated).
1223         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
1224         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1225         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1226         * target.def (objc_construct_string_object): Rename, amend
1227         documentation.
1228         (string_object_ref_type_p): New hook.
1229         (check_string_object_format_arg): New hook.
1230         * c-parser.c (c_parser_attributes): Allow objective-c class names as
1231         attribute identifiers.
1232         * config/darwin-c.c (darwin_cfstring_ref_p): New.
1233         (darwin_check_cfstring_format_arg): New.
1234         (darwin_additional_format_types): New.
1235         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
1236         (darwin_check_cfstring_format_arg): New.
1237         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
1238         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1239         (TARGET_N_FORMAT_TYPES): New.
1240         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1241
1242 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1243             Pascal Obry  <obry@adacore.com>
1244
1245         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
1246         in 64-bit mode and 17 otherwise.
1247
1248 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1249
1250         PR debug/45939
1251         * var-tracking.c (emit_note_insn_var_location): Make sure that
1252         call related var location notes come before the normal ones.
1253
1254 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1255
1256         PR target/46326
1257         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
1258         in the last change.
1259
1260 2010-11-05  Ian Lance Taylor  <iant@google.com>
1261
1262         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
1263
1264 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1265
1266         PR c/44772
1267         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
1268         pointer_set_contains if DECL_NAME is NULL.
1269
1270 2010-11-05  Ian Lance Taylor  <iant@google.com>
1271
1272         PR target/46084
1273         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
1274         request enough additional space for alignment, and force alignment.
1275
1276 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
1277
1278         * config/i386/i386.c (legitimate_pic_address_disp_p):
1279         Handle UNSPEC_PCREL.
1280         (ix86_legitimate_address_p): Likewise.
1281         (legitimize_pic_address): Likewise.
1282         (output_pic_addr_const): Likewise.
1283         (ix86_delegitimize_address): Likewise.
1284         (ix86_find_base_term): Likewise.
1285         (memory_address_length): Likewise.
1286         (x86_output_mi_thunk): Handle special case x64
1287         for non local binding.
1288         * config/i386/i386.md (UNSPEC_PCREL): New.
1289         * config/i386/winnt.c (i386_pe_binds_local_p):
1290         Allow weak symbol for x64 windows with non-local binding.
1291
1292 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1293
1294         PR target/45670
1295         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
1296         instead of EXPAND_NORMAL for base expansion.
1297
1298 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
1299
1300         * config.gcc: Support --with-fpmath=avx for x86.
1301         * config/i386/avxmath.h: New.
1302         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
1303
1304 2010-11-05  Ian Lance Taylor  <iant@google.com>
1305
1306         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
1307         * gengtype.c (walk_type): Don't recognize descbits option.
1308
1309 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
1310
1311         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
1312         WORD_SWITCH_TAKES_ARG): Remove.
1313         * doc/options.texi (Args): Document.
1314         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
1315         * doc/tm.texi: Regenerate.
1316         * opt-functions.awk (switch_flags): Handle Args.
1317         * opts-common.c: Update comment on tm.h include.
1318         (decode_cmdline_option): Handle options with multiple arguments.
1319         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
1320         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
1321         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1322         CL_COMMON): Update values.
1323         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
1324         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
1325         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
1326         sectobjectsymbols, sectorder, segcreate, segprot): New.
1327
1328 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1329             Uros Bizjak  <ubizjak@gmail.com>
1330
1331         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
1332         256bit AVX register is used.
1333         (ix86_expand_vector_move_misalign): Likewise.
1334         (ix86_expand_vector_move): Replace use_avx256_p with
1335         VALID_AVX256_REG_MODE.
1336
1337 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
1338
1339          PR target/44750
1340         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
1341         change.  Set $@-warn.o to -Wno-error.
1342
1343         PR bootstrap/44756
1344         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
1345         comparing it to a signed value.
1346
1347         PR middle-end/44766
1348         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
1349         PR bootstrap/44770
1350         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
1351         to i.
1352
1353         PR target/44754
1354         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
1355         (m32c_function_arg).  Add comma between arguments two and three.
1356         (m32c_promote_prototypes): Remove declaration.
1357         (current_function_special_page_vector): Likewise.
1358         (m32c_regno_reg_class): Change return type to enum reg_class.
1359         (m32c_pushm_popm): Use add_reg_note.
1360         (m32c_push_rounding): Change return type to unsigned int.
1361         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
1362         enum reload_type.
1363         (m32c_insert_attributes): Constify variable name.
1364         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
1365         (m32c_prepare_shift): Remove variable lref.
1366         (m32c_expand_movcc): Remove variable cmp.
1367         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
1368         (m32c_compare_redundant): Remove variable op2.
1369         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
1370         (m32c_pragma_memregs): Assign the number to target_memregs.
1371         (m32c_pragma_address): Remove variable var_str.
1372         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
1373         enum reg_class.
1374         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
1375         * config/m32c/bitops.md (andsi3): Add default case to switch.
1376         (iorsi3, xorsi3): Likewise.
1377         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
1378         * config/m32c/jump.md (call, call_value): Likewise.
1379         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
1380         (m32c_regno_reg_class): Likewise.
1381         (current_function_special_page_vector): Declare.
1382
1383 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1384
1385         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
1386
1387         PR tree-optimization/46099
1388         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
1389         if it is NULL and uid wasn't found in the hash table.  Just fold the
1390         result if it is NULL otherwise.  Insert other potentially needed
1391         stmts right before current stmt instead of on the entry edge.
1392         (struct elv_data): Add gsi and reset fields.
1393         (eliminate_local_variables_1): Adjust caller.  If take_address_of
1394         failed for debug stmt, set dta->reset and return.
1395         (eliminate_local_variables_stmt): Change STMT argument for GSI,
1396         pass GSI through to the callback, handle resetting of debug stmts.
1397         (eliminate_local_variables): Adjust caller.  Process debug stmts
1398         in second phase.
1399
1400         PR middle-end/43690
1401         * gimplify.c (gimplify_asm_expr): If a "m" input is a
1402         {pre,post}{in,de}crement, fail.
1403
1404         PR debug/46307
1405         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
1406         * tree-pretty-print.c (dump_generic_node): Likewise.
1407         (op_code_prio): Likewise.
1408         * cfgexpand.c (expand_debug_expr): Likewise.
1409
1410 2010-11-04  Paul Koning  <ni1d@arrl.net>
1411
1412         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
1413         constraints.
1414
1415 2010-11-04  Chao-ying Fu  <fu@mips.com>
1416
1417         * configure.ac: Test assembler support for DSP Rev1 mult.
1418         * configure: Regenerate.
1419         * config.in: Regenerate.
1420         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
1421         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
1422         (CODE_FOR_mips_multu): New define.
1423         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
1424         dspr2_32 to dsp_32.
1425         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
1426         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
1427         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
1428         New define_expand patterns.
1429         * config/mips/constraints.md (ka): Update the constraint to test
1430         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
1431         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
1432         mips_multu): Delete.
1433         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
1434         Change target constraint to "ka".
1435         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
1436         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
1437         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1438         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
1439         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1440         (<u>maddsidi4): Likewise.
1441         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
1442         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
1443
1444 2010-11-04  Paul Koning  <ni1d@arrl.net>
1445
1446         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
1447
1448 2010-11-04  Paul Koning  <ni1d@arrl.net>
1449
1450         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
1451
1452 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1453
1454         Fixed using the Objective-C 2.0 dot-syntax with class names.
1455         * c-parser.c (c_parser_next_token_starts_declspecs): In
1456         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
1457         (c_parser_next_token_starts_declaration): Same.
1458         (c_parser_postfix_expression): Parse the Objective-C 2.0
1459         dot-syntax with a class name.
1460
1461 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
1462
1463         * final.c (compute_alignments): Compute/free loop info all the time.
1464         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
1465         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
1466         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
1467         * config/rs6000/rs6000.c (cfgloop.h): Include.
1468         (can_override_loop_align): New.
1469         (rs6000_option_override_internal): Set it.
1470         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
1471         (rs6000_loop_align): New function.
1472         (rs6000_loop_align_max_skip): Likewise.
1473
1474 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1475
1476         PR driver/45703
1477         * collect2.c (main): Print --help output to stdout.  Do not
1478         exit right away, so ld --help is appended.  Add empty lines
1479         to separate output suitably.
1480
1481 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR tree-optimization/46233
1484         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
1485         after calling analyze_function, not before.
1486
1487         PR target/46234
1488         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
1489         instead of build_va_arg_indirect_ref.
1490         * config/spu/spu.c (spu_va_start): Likewise.
1491         * config/s390/s390.c (s390_va_start): Likewise.
1492
1493 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
1494
1495         PR middle-end/46292
1496         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
1497         if the innermode is not vector mode, determine the mode of a subreg
1498         by using mode_for_size of inner_size.
1499
1500 2010-11-04  Richard Guenther  <rguenther@suse.de>
1501
1502         PR rtl-optimization/46183
1503         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
1504         (execute_rtl_pre): Likewise.
1505         (execute_rtl_hoist): Likewise.
1506
1507 2010-11-04  Richard Guenther  <rguenther@suse.de>
1508
1509         PR tree-optimization/46068
1510         * ipa-split.c (consider_split): Remove gcc_unreachable.
1511
1512 2010-11-04  Richard Guenther  <rguenther@suse.de>
1513
1514         * tree-nested.c (build_addr): Use build_fold_addr_expr.
1515
1516 2010-11-04  Richard Guenther  <rguenther@suse.de>
1517
1518         PR tree-optimization/45991
1519         * gimplify.c (force_gimple_operand_1): Use the provded test
1520         function in the initial test.
1521
1522 2010-11-04  Jeff Law  <law@redhat.com>
1523
1524         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
1525         of readonly memory equivalances for const/pure calls.
1526
1527 2010-11-04  Richard Guenther  <rguenther@suse.de>
1528
1529         PR tree-optimization/45733
1530         * tree-vect-stmts.c (reverse_vec_elements): Honor the
1531         permute builtins function return type.
1532
1533 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
1534
1535         PR middle-end/44765
1536         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
1537         as an index, check it is not INVALID_REGNUM.
1538
1539         PR bootstrap/44756
1540         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
1541         unsignedp.
1542         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
1543
1544         PR bootstrap/44756
1545         * function.c (thread_prologue_and_epilogue_insns): Add
1546         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
1547
1548         PR bootstrap/44756
1549         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
1550
1551         PR target/44750
1552         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
1553         (pdp11_preferred_reload_class): Rename class to rclass.
1554         (pdp11_preferred_output_reload_class): Likewise.
1555         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
1556         ALL_COMPILERFLAGS .
1557         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
1558
1559         PR bootstrap/44756
1560         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
1561         iteration variables to enum machine_mode.
1562
1563         PR target/44751
1564         * config/h8300/h8300.c: Include df.h.
1565         (push, pop): Use add_reg_note.
1566         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
1567         (compute_a_shift_cc): Likewise.
1568         (expand_a_shift): Argument code has type enum rtx_code.
1569         (struct shift_insn): Member cc_valid has type enum attr_cc.
1570         (struct shift_info) <cc_inline, cc_special>: Likewise.
1571         enum attr_cc.
1572         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
1573         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
1574
1575 2010-11-04  Ira Rosen  <irar@il.ibm.com>
1576
1577         PR tree-optimization/46213
1578         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
1579         MINUS_EXPR only if the first operand is reduction operand.
1580
1581 2010-11-04  Richard Guenther  <rguenther@suse.de>
1582             Richard Henderson  <rth@redhat.com>
1583
1584         * tree.def (FMA_EXPR): New tree code.
1585         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
1586         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
1587         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
1588         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
1589         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1590         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
1591         (execute_optimize_widening_mul): Call it.  Reorganize to allow
1592         dead stmt removal.  Move TODO flags ...
1593         (pass_optimize_widening_mul): ... here.
1594         * flag-types.h (enum fp_contract_mode): New enum.
1595         * common.opt (flag_fp_contract_mode): New variable.
1596         (-ffp-contract): New option.
1597         * opts.c (common_handle_option): Handle it.
1598         * doc/invoke.texi (-ffp-contract): Document.
1599         * tree.h (fold_fma): Declare.
1600         * builtins.c (fold_fma): New function.
1601         (fold_builtin_fma): Likewise.
1602         (fold_builtin_3): Call it for fma.
1603         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
1604         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
1605         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
1606         New expanders.
1607         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
1608         named patterns.
1609         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
1610         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
1611         (fms_optab, fnma_optab, fnms_optab): New defines.
1612         * gimplify.c (gimplify_expr): Handle binary truth expressions
1613         explicitly.  Handle FMA_EXPR.
1614         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
1615         operations.
1616
1617 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
1618             Richard Guenther  <rguenther@suse.de>
1619
1620         * passes.c (init_optimization_passes): Move veclower after SSA.
1621         * tree-vect-generic.c (uniform_vector_p): New function.
1622         (expand_vector_operations_1): Handle conversion.
1623         (pass_lower_vector): Update SSA form.
1624
1625 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
1626
1627         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
1628         plugin capabilities.
1629         * configure: Regenerate.
1630
1631 2010-11-03  Xinliang David Li  <davidxl@google.com>
1632
1633         PR target/46200
1634         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
1635         Adjust cbase if the use stmt is after iv update.
1636
1637 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1638
1639         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
1640
1641 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1642
1643         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
1644         comment.  Pass true to the last argument of output_stack_adjust.
1645
1646 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
1647
1648         PR target/46295
1649         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
1650         if 256bit AVX register is used.
1651
1652 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1653
1654         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
1655         xsmindp/xsmaxdp on VSX for single precision min/max.
1656         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
1657         (vsx_sminsf3): Ditto.
1658
1659 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1660
1661         * combine.c (try_combine): Fix formatting issues, improve comments and
1662         fix a pasto.
1663
1664 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1665
1666         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
1667         of the result before building binary expressions.
1668
1669 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
1670
1671         PR rtl-optimization/45865
1672         * Makefile.in (df-problems.o): Revert revision 164552.
1673         * basic-block.h (enum bb_flags): Likewise.
1674         * cfgcleanup.c (block_was_dirty): Likewise.
1675         (try_forward_edges): Likewise.
1676         (try_crossjump_bb): Likewise.
1677         (try_head_merge_bb): Likewise.
1678         (try_optimize_cfg): Likewise.
1679         (cleanup_cfg): Likewise.
1680         * df-core.c (df_set_bb_dirty): Likewise.
1681         * df-problems.c: Likewise.
1682         (df_simulate_find_uses): Likewise.
1683         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
1684         (find_memory, find_memory_store): Likewise.
1685         (can_move_insns_across): Likewise.
1686         * df.h (can_move_insns_across): Likewise.
1687         * ifcvt.c (find_memory): Likewise.
1688         (dead_or_predicable): Likewise.
1689
1690 2010-11-03  Richard Guenther  <rguenther@suse.de>
1691
1692         PR middle-end/46288
1693         * predict.c (strip_predict_hints): Simply DCE builtin expect if
1694         the result is unused.
1695
1696 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
1697
1698         PR tree-optimization/46009
1699         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
1700         cond_if_else_store_replacement if bb1 and bb2 have the same
1701         single successor.
1702         (cond_store_replacement): Use gimple_assign_single_p, don't
1703         check if rhs is SSA_NAME or invariant.  Call release_defs for
1704         assign.
1705         (cond_if_else_store_replacement): New function.
1706
1707 2010-11-03  Richard Guenther  <rguenther@suse.de>
1708
1709         * opts.c (finish_options): Properly check for all WHOPR
1710         flags before complaining about -flto-partition.
1711
1712 2010-11-04  Alan Modra  <amodra@gmail.com>
1713
1714         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
1715         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
1716         TARGET_SECURE_PLT.
1717         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
1718         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
1719         on input, "r" on output.
1720
1721 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
1722
1723         Implemented -fobjc-std=objc1 flag.
1724         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
1725         option.
1726         * doc/standards.texi (Standards): Updated the section on
1727         Objective-C; mention support for Objective-C 2.0 features and the
1728         new -fstd-objc=objc1 flag to disable them.
1729
1730 2010-11-03  Richard Guenther  <rguenther@suse.de>
1731
1732         PR middle-end/46241
1733         * dwarf2out.c (scope_die_for): Properly detect global scope.
1734
1735 2010-11-03  Richard Guenther  <rguenther@suse.de>
1736
1737         PR tree-optimization/46190
1738         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1739         Properly compute peel iterations.
1740
1741 2010-11-03  Richard Guenther  <rguenther@suse.de>
1742
1743         PR tree-optimization/46286
1744         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
1745         re-allocated vector data.
1746
1747 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
1748
1749         PR target/46285
1750         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
1751         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
1752         is completed.
1753
1754 2010-11-03  Richard Guenther  <rguenther@suse.de>
1755
1756         PR tree-optimization/46217
1757         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
1758         flag matches.
1759         (execute_update_addresses_taken): Likewise.
1760
1761 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1762
1763         PR bootstrap/44335
1764         * targhooks.c (targhook_words_big_endian): New function.
1765         (targhook_float_words_big_endian): Likewise.
1766         * targhooks.h (targhook_words_big_endian): Declare.
1767         (targhook_float_words_big_endian): Likewise.
1768         * target.def (words_big_endian, float_words_big_endian): New hooks.
1769
1770 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
1771
1772         PR tree-optimization/46165
1773         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
1774         a normal call into noreturn call.
1775
1776 2010-11-03  Richard Guenther  <rguenther@suse.de>
1777
1778         PR middle-end/46251
1779         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
1780         not INDIRECT_REFs.
1781
1782 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
1783
1784         PR tree-optimization/46107
1785         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
1786         if cfg_hook_duplicate_loop_to_header_edge failed.
1787
1788 2010-11-03  Ian Lance Taylor  <iant@google.com>
1789
1790         PR lto/46273
1791         * config.gcc: Don't set lto_binary_reader.
1792         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
1793         (Configuration): Mention --disable-lto.  Remove --with-libelf
1794         paragraph.
1795
1796 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
1797
1798         PR debug/46252
1799         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
1800         prev_real_insn.
1801         * gcse.c (insert_insn_end_basic_block): Likewise.
1802
1803         PR rtl-optimization/46034
1804         PR rtl-optimization/46212
1805         PR rtl-optimization/46248
1806         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
1807         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
1808         before i0dest -> i0src substitution and pass 1 instead of 0 as last
1809         argument to subst on i2pat.
1810
1811 2010-11-02  Ian Lance Taylor  <iant@google.com>
1812
1813         * configure.ac: Use AC_SYS_LARGEFILE.
1814         * configure: Rebuild.
1815         * config.in: Rebuild.
1816
1817 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
1818
1819         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
1820         fold_convert.
1821         * c-typeck.c (build_function_call_vec): Likewise.
1822         * cfgexpand.c (expand_debug_expr): Likewise.
1823         * cgraphunit.c (assemble_thunk): Likewise.
1824         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
1825         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
1826         (fold_binary_loc, fold_ternary_loc): Likewise.
1827         * gimple-fold.c (get_symbol_constant_value): Likewise.
1828         * gimple-low.c (lower_builtin_setjmp): Likewise.
1829         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
1830         * gimplify.c (gimplify_init_constructor): Likewise.
1831         * lambda.h (build_linear_expr): Likewise.
1832         * omp-low.c (omp_reduction_init): Likewise.
1833         * tree-inline.c (remap_ssa_name): Likewise.
1834         * tree-object-size.c (compute_object_sizes): Likewise.
1835         * tree-sra.c (init_subtree_with_zero): Likewise.
1836         (sra_ipa_modify_assign): Likewise.
1837         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
1838         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
1839         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
1840         (undistribute_ops_list): Likewise.
1841         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
1842         * tree-vect-stmts.c (vectorizable_call): Likewise.
1843         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
1844         (build_zero_cst): Handle more cases directly.  Update comment.
1845
1846 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
1847
1848         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
1849         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
1850
1851         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
1852         and call ix86_split_call_vzeroupper instead of
1853         ix86_split_call_pop_vzeroupper.
1854         (*call_pop_1_vzeroupper): Likewise.
1855         (*sibcall_pop_1_vzeroupper): Likewise.
1856         (*call_value_pop_0_vzeroupper): Likewise.
1857         (*call_value_pop_1_vzeroupper): Likewise.
1858         (*sibcall_value_pop_1_vzeroupper): Likewise.
1859
1860 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
1861
1862         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
1863
1864 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
1865
1866         * basic-block.h (insert_insn_end_bb_new): Delete.
1867         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
1868
1869 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
1870             H.J. Lu  <hongjiu.lu@intel.com>
1871
1872         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
1873         (ix86_split_call_pop_vzeroupper): Likewise.
1874
1875         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
1876         (ix86_expand_call): Conditionally decorate calls with
1877         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
1878         (ix86_split_call_vzeroupper): New.
1879         (ix86_split_call_pop_vzeroupper): Likewise.
1880
1881         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
1882         (*call_pop_0_vzeroupper): New insn_and_split pattern.
1883         (*call_pop_1_vzeroupper): Likewise.
1884         (*sibcall_pop_1_vzeroupper): Likewise.
1885         (*call_0_vzeroupper): Likewise.
1886         (*call_1_vzeroupper): Likewise.
1887         (*sibcall_1_vzeroupper): Likewise.
1888         (*call_1_rex64_vzeroupper): Likewise.
1889         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
1890         (*call_1_rex64_large_vzeroupper): Likewise.
1891         (*sibcall_1_rex64_vzeroupper): Likewise.
1892         (*call_value_pop_0_vzeroupper): Likewise.
1893         (*call_value_pop_1_vzeroupper): Likewise.
1894         (*sibcall_value_pop_1_vzeroupper): Likewise.
1895         (*call_value_0_vzeroupper): Likewise.
1896         (*call_value_0_rex64_vzeroupper): Likewise.
1897         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
1898         (*call_value_1_vzeroupper): Likewise.
1899         (*sibcall_value_1_vzeroupper): Likewise.
1900         (*call_value_1_rex64_vzeroupper): Likewise.
1901         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
1902         (*call_value_1_rex64_large_vzeroupper): Likewise.
1903         (*sibcall_value_1_rex64_vzeroupper): Likewise.
1904
1905 2010-11-02  Ian Lance Taylor  <iant@google.com>
1906
1907         PR lto/46273
1908         * config.gcc: Revert last patch: set lto_binary_reader.
1909
1910 2010-11-02  Richard Guenther  <rguenther@suse.de>
1911
1912         PR tree-optimization/46149
1913         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
1914         non-indirect MEM_REF variants.
1915
1916 2010-11-02  Richard Guenther  <rguenther@suse.de>
1917
1918         PR tree-optimization/46216
1919         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1920         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
1921
1922 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1923
1924         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
1925         (*-*-osf*): Likewise.
1926         * configure: Regenerate.
1927
1928 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
1929
1930         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
1931         for Intel Core 2 and Core i7.
1932
1933 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
1934
1935         Model decoder of Core 2/i7 for multipass scheduling.
1936
1937         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
1938         New type to hold target-specific data for multipass scheduling.
1939         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
1940         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
1941         Core 2/i7.
1942         (core2i7_secondary_decoder_max_insn_size,)
1943         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
1944         New static variables.
1945         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
1946         ([_]ix86_first_cycle_multipass_data): New static variable.
1947         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
1948         Implement targetm.sched hooks.
1949         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
1950         of ...
1951         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
1952         Implement new targetm.sched hooks.
1953         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
1954         targetm.sched hook to install multipass scheduling hooks on demand.
1955
1956         * doc/tm.texi.in: Document new targetm.sched hooks.
1957         * doc/tm.texi: Regenerate.
1958
1959         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
1960         (first_cycle_multipass_data_t): New typedef.
1961         (struct choice_entry: target_data): New field.
1962         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
1963         to allow target model restrictions not represented in DFA.
1964         (choose_ready, schedule_block): Update.
1965         (sched_extend_ready_list, sched_finish_ready_list): Call new target
1966         hooks to initialize target-specific data for multipass scheduling.
1967         * sched-int.h (max_issue): Update declaration.
1968         * sel-sched.c (choose_best_insn): Update.
1969         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
1970         (first_cycle_multipass_{init, fini}): Define and document new
1971         targetm.sched hooks.
1972
1973 2010-11-02  Richard Guenther  <rguenther@suse.de>
1974
1975         PR tree-optimization/46184
1976         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
1977         input vector type from the reduction operand as well.
1978
1979 2010-11-02  Richard Guenther  <rguenther@suse.de>
1980
1981         PR tree-optimization/46177
1982         * tree-loop-distribution.c (prop_phis): Use
1983         mark_virtual_phi_result_for_renaming.
1984
1985 2010-11-02  Martin Jambor  <mjambor@suse.cz>
1986
1987         PR middle-end/46120
1988         * tree.c (get_binfo_at_offset): Bail out on artificial
1989         fields.  Identify primary bases according to their offsets.
1990
1991 2010-11-02  Martin Jambor  <mjambor@suse.cz>
1992
1993         PR tree-optimization/45875
1994         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
1995         (gimple_get_relevant_ref_binfo): Detect primary bases according to
1996         their field offset.
1997
1998 2010-11-02  Ian Lance Taylor  <iant@google.com>
1999
2000         * doc/install.texi (Configuration): Note in two places that Java
2001         is not enabled by default.
2002
2003 2010-11-02  Ian Lance Taylor  <iant@google.com>
2004
2005         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2006         (Configuration): Mention --disable-lto.  Remove --with-libelf
2007         paragraph.
2008
2009 2010-11-02  Ian Lance Taylor  <iant@google.com>
2010
2011         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
2012         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
2013         LIBELFINC.  Remove HAVE_libelf.
2014         * config.gcc: Don't set lto_binary_reader.
2015         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
2016         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
2017         (LIBS): Remove $(LIBELFLIBS).
2018         (INCLUDES): Remove $(LIBELFINC).
2019         * configure: Rebuild.
2020         * config.in: Rebuild.
2021
2022 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2023
2024         * config/microblaze/microblaze-protos.h (function_arg): Delete.
2025         (function_arg_advance): Delete.
2026         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
2027         (FUNCTION_ARG): Delete.
2028         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
2029         (microblaze_function_arg_advance): ...this.  Make static.  Take a
2030         const_tree and a bool.
2031         (function-arg): Rename to...
2032         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
2033         and a bool.
2034         (microblaze_expand_prologue): Call targetm.calls.function_arg and
2035         targetm.calls.function_arg_advance.
2036         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2037
2038 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2039
2040         Merge from FSF "apple/trunk" branch.
2041
2042         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
2043         * config/darwin.opt: .. to here.
2044         (matt-stubs): New option.
2045         * config/i386/darwin.opt: Delete.
2046         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
2047         (MACHO_DYNAMIC_NO_PIC_P): New.
2048         (MACHOPIC_INDIRECT): New.
2049         (MACHOPIC_PURE): New.
2050         * config/i386/darwin.h (DARWIN_X86) Define to 1.
2051         (MACHOPIC_ATT_STUB): New.
2052         (CC1_SPEC): Do not remove mdynamic-no-pic.
2053         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2054         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2055         (FUNCTION_PROFILER): Correct over-length line.
2056         (SUBTARGET_OVERRIDE_OPTIONS): New.
2057         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2058         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
2059         (legitimate_constant_p): Handle mdynamic-no-pic.
2060         (ix86_legitimate_address_p): Likewise.
2061         (ix86_legitimize_address): Likewise.
2062         (ix86_expand_move): Likewise.
2063         (machopic_output_stub): Update for ATT-style stubs and
2064         mdynamic-no-pic.
2065         * config/darwin-protos.h (machopic_symbol_defined_p): New.
2066         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
2067         TARGET_DYNAMIC_NO_PIC: Remove.
2068         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2069         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2070         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
2071         Remove handling of mdynamic-no-pic.
2072         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
2073         Define if required.
2074         (machopic_symbol_defined_p): Do not try to use current_function_decl
2075         when generating _get_pc thunks within stubs.
2076         (machopic_indirect_data_reference): Rework for direct conditionals
2077         rather than #ifdefs, add x86 mdynamic-no-pic
2078         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
2079         defined value.
2080         (darwin_override_options): Handle mdynamic-no-pic here.
2081         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
2082         (machopic_lazy_symbol_ptr3_section): New.
2083         (machopic_picsymbol_stub2_section): New.
2084         (machopic_picsymbol_stub3_section): New.
2085         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
2086         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2087         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2088         Moved common definition from x86 and rs6000.
2089         (MACHO_DYNAMIC_NO_PIC_P): Override value.
2090         (MACHOPIC_INDIRECT): Likewise.
2091         (MACHOPIC_PURE): Likewise.
2092         * config.gcc (x86-darwin-*): Remove darwin.opt.
2093
2094 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
2095
2096         PR debug/46255
2097         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
2098         instead of gsi_last_bb.
2099
2100 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2101             Maxim Kuvyrkov  <maxim@codesourcery.com>
2102
2103         * config/i386/i386.c (cpu_names): Add "corei7".
2104         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
2105
2106 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2107             Maxim Kuvyrkov  <maxim@codesourcery.com>
2108
2109         Tune alignment for Intel Core i7
2110
2111         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
2112         (enum processor_type): Update comment.  Add entries for Core i7.
2113         * config/i386-c.c (ix86_target_macros_internal): Update.
2114         * config/i386.c (m_COREI7{_32,_64}): New macros.
2115         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
2116         (processor_target_table): Tune alignment for Core i7.
2117         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
2118
2119         * doc/invoke.texi: Document "corei7" option value.
2120
2121 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2122             Maxim Kuvyrkov  <maxim@codesourcery.com>
2123             H.J. Lu  <hjl.tools@gmail.com>
2124
2125         Basic support for Intel Core i7
2126
2127         * i386.c (ix86_option_override_internal): Add entry for corei7, use
2128         generic tuning.  Use generic32 when compiling for 32-bit ABI.
2129
2130 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2131
2132         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
2133         sections and call darwin_asm_dwarf_section() to handle them.
2134         (darwin_asm_dwarf_section): New.
2135         (darwin_file_start): Remove code emitting dwarf section symbols.
2136
2137 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
2138
2139         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
2140         explicitly disable stack protection when building libgcc.
2141         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2142
2143 2010-11-01  Jason Merrill  <jason@redhat.com>
2144
2145         * fold-const.c (fold_indirect_ref_1): Handle folding
2146         POINTER_PLUS_EXPR to ARRAY_REF.
2147
2148 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2149
2150         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
2151         (sh_delegitimize_address): New function.
2152
2153 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2154
2155         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
2156         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
2157         (CC1_SPEC): Don't handle -target.
2158         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
2159         options.
2160         * config/darwin.opt (Zallowable_client, Zbundle_loader,
2161         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
2162         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
2163         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
2164         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
2165         Zweak_reference_mismatches, client_name, compatibility_version,
2166         current_version, dylinker_install_name, pagezero_size,
2167         read_only_relocs, seg1addr, segs_read_only_addr,
2168         segs_read_write_addr, sub_library, sub_umbrella): New.
2169         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
2170         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
2171         * config/freebsd.opt: New.
2172         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
2173         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
2174         * config/rpath.opt: New.
2175         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
2176         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
2177         Use rpath.opt.
2178
2179 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2180
2181         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
2182         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
2183         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
2184         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
2185         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
2186         Document that options in .opt files do not need to be included.
2187         * doc/tm.texi: Regenerate.
2188         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
2189         * opts-common.c: Update comment on tm.h include.
2190         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
2191         * system.h (SWITCH_TAKES_ARG): Poison.
2192         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
2193         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
2194         in darwin.opt.
2195         (LINK_COMMAND_SPEC_A): Don't include %{x}.
2196         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2197         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
2198         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
2199         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2200         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
2201         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
2202         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
2203         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
2204         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2205         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
2206         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
2207         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
2208         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
2209         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
2210         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
2211         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
2212         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
2213         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
2214         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
2215         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
2216         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
2217         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
2218         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2219
2220 2010-11-01  Paul Koning  <ni1d@arrl.net>
2221
2222         * config/pdp11/pdp11.md: Use iterators.
2223         (addqi3, subqi3, iorsi3, xorsi3): Delete.
2224
2225 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
2226
2227         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
2228         GCC_INSN_FLAGS_H.
2229         * libgcov.c (__gcov_indirect_call_profiler): Set
2230         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
2231         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
2232
2233 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2234
2235         PR tree-optimization/46259
2236
2237         Revert:
2238         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2239         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
2240         build_vector_from_val.
2241
2242 2010-11-01  DJ Delorie  <dj@redhat.com>
2243
2244         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
2245         as well as an assertion.
2246
2247 2010-11-01  Paul Koning  <ni1d@arrl.net>
2248
2249         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
2250         complex modes in memory.
2251
2252 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2253
2254         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
2255
2256 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
2257
2258         PR target/45250
2259         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
2260         (cfa_base_offset): New variable.
2261         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
2262         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
2263         is NULL.
2264         (vt_init_cfa_base): Initialize cfa_base_offset.
2265
2266 2010-11-01  Alan Modra  <amodra@gmail.com>
2267
2268         PR target/46030
2269         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
2270         and savres_strategy.
2271         (stack_info): New file scope var.
2272         (rs6000_init_machine_status): Init stack_info.
2273         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
2274         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
2275         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
2276         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
2277         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
2278         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
2279         (rs6000_savres_strategy): Rewrite.
2280         (rs6000_stack_info): Use "stack_info" in place of local "info".
2281         Return cached stack info when reload_completed unless ENABLE_CHECKING
2282         in which case confirm newly calculated stack info matches old info.
2283         Delay calculation of lr_save_p, set it for out of line gp save/restore
2284         as well as fp.  Call rs6000_savres_strategy from here..
2285         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
2286         (rs6000_output_function_prologue): Use info->savres_strategy to
2287         determine whether fp save/restore externs need to be emitted.
2288
2289 2010-10-31  Jason Merrill  <jason@redhat.com>
2290
2291         * tree.h (EXPR_LOC_OR_HERE): New macro.
2292         * builtins.c (c_strlen): Use it.
2293         * c-decl.c (build_enumerator): Likewise.
2294         * gimplify.c (internal_get_tmp_var): Likewise.
2295         (shortcut_cond_expr): Likewise.
2296         (gimplify_one_sizepos): Likewise.
2297
2298 2010-10-31  Richard Henderson  <rth@redhat.com>
2299
2300         * config/i386/cygming.h (TARGET_SEH): New.
2301         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
2302         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
2303         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
2304         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
2305         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
2306         (ASM_DECLARE_FUNCTION_SIZE): New.
2307         * config/i386/i386-protos.h: Update.
2308         * config/i386/i386.c (ix86_option_override_internal): Enable
2309         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
2310         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
2311         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
2312         (ix86_compute_frame_layout): For SEH, disable
2313         use_fast_prologue_epilogue, move frame pointer to the end of
2314         the frame.  Initialize hfp_save_offset.
2315         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
2316         at end of prologue for SEH.
2317         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
2318         emit blockage at beginning of epilogue.
2319         (ix86_expand_binary_operator): After reload, emit LEA if needed.
2320         (ix86_output_call_insn): New.
2321         * config/i386/i386.h (TARGET_SEH): New.
2322         (struct machine_function): Add member seh.
2323         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
2324         * config/i386/winnt.c (struct seh_frame_state): New.
2325         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
2326         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
2327         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
2328         i386_pe_start_function, i386_pe_end_function): New.
2329
2330         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
2331         as CFA_STORE in rules 12 and 13.
2332
2333 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
2334
2335         PR tree-optimization/46142
2336         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
2337         accommodate third function argument.
2338
2339 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2340
2341         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
2342
2343 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2344
2345         * fold-const.c (build_zero_vector): Use build_vector_from_val.
2346         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2347         (get_initial_def_for_reduction): Likewise.
2348         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2349         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
2350         * tree.c (build_one_cst): Likewise.
2351         (build_vector_from_val): Use types_compatible_p for assert.
2352
2353 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2354
2355         * emit-rtl.c (mark_used_flags): New function.
2356         (set_used_flags, reset_used_flags): Call it.
2357
2358 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         PR middle-end/44569
2361         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
2362         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
2363
2364 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
2365
2366         PR target/46195
2367         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
2368         (ix86_compat_aligned_value_p): This.
2369         (ix86_old_function_arg_boundary): Renamed to ...
2370         (ix86_compat_function_arg_boundary): This.  Updated.
2371         (ix86_contains_aligned_value_p): New.
2372         (ix86_function_arg_boundary): Align long double parameters on
2373         stack to 4byte in 32bit.
2374
2375 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2376
2377         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
2378         * c-parser.c (c_parser_objc_at_property_declaration): Removed
2379         parsing of RID_COPIES and RID_IVAR.  Updated call to
2380         objc_add_property_declaration.
2381         * c-typecheck.c (build_component_ref): Call
2382         objc_maybe_build_component_ref instead of objc_build_setter_call.
2383         Use objc_is_property_ref to improve Objective-C checks.
2384         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
2385         of objc_build_getter_call.
2386
2387 2010-10-29  Paul Koning  <ni1d@arrl.net>
2388
2389         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2390         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
2391         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
2392         (REG_OK_STRICT): Move description.
2393
2394 2010-10-29  Paul Koning  <ni1d@arrl.net>
2395
2396         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
2397
2398 2010-10-29  Paul Koning  <ni1d@arrl.net>
2399
2400         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
2401
2402 2010-10-29  Paul Koning  <ni1d@arrl.net>
2403
2404         PR/41822
2405         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
2406
2407 2010-10-29  Richard Henderson  <rth@redhat.com>
2408
2409         PR rtl-opt/46226
2410         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
2411         for asm goto.
2412
2413 2010-10-29  Paul Koning  <ni1d@arrl.net>
2414
2415         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
2416         register to register move.
2417
2418 2010-10-29  Paul Koning  <ni1d@arrl.net>
2419
2420         * config/pdp11/pdp11.c (print_operand_address): Correct handling
2421         of integer constant addresses, delete vax-only logic.
2422
2423 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2424
2425         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
2426         a conditional expression.
2427
2428 2010-10-29  Paul Koning  <ni1d@arrl.net>
2429
2430         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
2431         instruction encoding.
2432
2433 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2434             Andrew Pinski  <pinskia@gmail.com>
2435
2436         * tree.h (build_vector_from_val): Declare.
2437         * tree.c (build_vector_from_val): New function.
2438         * c-typeck.c (build_binary_op): Handle vector shifting.
2439         * doc/extend.texi: Description of the vector shifting operation.
2440
2441 2010-10-29  Paul Koning  <pkoning@equallogic.com>
2442
2443         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
2444         pdp11_secondary_memory_needed): Declare.
2445         * config/pdp11/predicates.md (float_operand): New predicate.
2446         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
2447         (cbranchdf4, movdf): Change predicate.
2448         (movsf): Handle FPU register case.
2449         (truncdfsf2, extendsfdf2): Add FPU register case.
2450         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
2451         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
2452         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2453         (pdp11_register_move_cost): Update cost matrix.
2454         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
2455         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
2456         pdp11_secondary_memory_needed): New function.
2457         (pdp11_return_in_memory): Add other float types.
2458         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
2459         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
2460         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
2461         REGISTER_MOVE_COST): Delete.
2462         (BASE_RETURN_VALUE_REG): Add other float types.
2463
2464 2010-10-29  Nick Clifton  <nickc@redhat.com>
2465
2466         * doc/invoke.texi: Document -mam34 and -mtune options.
2467         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
2468         (mn10300_tune_cpu): New variable.
2469         (mn10300_handle_option): Handle -mam34 and -mtune options.
2470         (mn10300_option_override): Convert tune string into tune cpu variable.
2471         (mn10300_legitimate_constant_p): Delete unused local variable.
2472         (is_load_insn): New function.
2473         (is_store_insn): New function.
2474         (mn10300_adjust_schedule_cost): New function.
2475         (TARGET_SCHED_ADJUST_COST): Define.
2476         * config/mn10300/mn10300.opt (mam34): New option.
2477         (mtune): New option.
2478         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
2479         (enum processor_type): Add AM34.
2480         (TARGET_AM34): Define.
2481         * config/mn10300/mn10300.md (attr cpu): Add am34.
2482         Add pipeline description.
2483         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
2484         Remove unneeded alternatives.  Add timing attribute.
2485         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
2486         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
2487         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
2488         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
2489         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
2490         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
2491         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
2492         float_conditional_branch, jump, indirect_jump, tablejump,
2493         call_internal, call_value_internal, zero_extendqisi2_am33,
2494         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
2495         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
2496         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
2497         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
2498         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
2499         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
2500         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
2501         return_internal_regs, store_movm, return, call_next_insn):
2502         Add timing attribute.
2503         (am33_subsi3): Add missing clobber of CC_REG.
2504         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
2505         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
2506         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
2507         extendqisi2): Fix predicates.
2508         (call_internal, call_internal_value): Separate alternatives.
2509         * config/mn10300/t-mn10300: Add AM34 multilib.
2510
2511 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
2512
2513         * config/sh/sh.c (sh_promote_function_mode): Use
2514         default_promote_function_mode if !sh_promote_prototypes.
2515
2516 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
2517
2518         * recog.c (split_all_insns): Remove dead code.
2519
2520 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2521
2522         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2523
2524 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2525
2526         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
2527         (FUNCTION_ARG_ADVANCE): Delete.
2528         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
2529         functions.
2530         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
2531         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2532         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2533
2534 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2535
2536         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
2537         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2538         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
2539         Take a const_tree and a bool.
2540         (mcore_function_arg_advance): New function.
2541         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2542
2543 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2544
2545         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
2546         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2547         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
2548         Take a const_tree and a bool.
2549         (mcore_function_arg_advance): New function.
2550         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2551
2552 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2553
2554         * config/h8300/h8300-protos.h (function_arg): Delete.
2555         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2556         * config/h8300/h8300.c (function_arg): Rename to...
2557         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
2558         a bool.
2559         (h8300_function_arg_advance): New function.
2560         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2561
2562 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2563
2564         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
2565         to...
2566         * config/arc/arc.c (arc_function_arg): ...here and...
2567         (arc_function_arg_advance): ...here.  New functions.
2568         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2569
2570 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2571
2572         * config/crx/crx-protos.h (crx_function_arg): Delete.
2573         (crx_function_arg_advance): Delete.
2574         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2575         * config/crx/crx.c (crx_function_arg): Make static.  Take a
2576         const_tree and a bool.
2577         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
2578         (enough_regs_for_param): Take a const_tree.
2579         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2580
2581 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2582
2583         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
2584         (m68hc11_function_arg_advance): Delete.
2585         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
2586         (FUNCTION_ARG_ADVANCE): Delete.
2587         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
2588         Take a const_tree and a bool.
2589         (m68hc11_function_arg_advance): Likewise.
2590         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2591
2592 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2593
2594         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
2595         (xstormy16_function_arg_advance): Delete.
2596         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
2597         (FUNCTION_ARG_ADVANCE): Delete.
2598         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
2599         Take a const_tree and a bool.
2600         (xstormy16_function_arg_advance): Likewise.  Return void, updating
2601         the CUM parameter instead.
2602         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2603
2604 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2605
2606         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
2607         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2608         (MOXIE_FUNCTION_ARG_SIZE): Move to...
2609         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
2610         (moxie_function_arg): Make static.  Take a const_tree and a bool.
2611         (moxie_function_arg_advance): New function.
2612         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2613
2614 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2615
2616         * config/mn10300/mn10300-protos.h (function_arg): Delete.
2617         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
2618         (FUNCTION_ARG_ADVANCE): Delete.
2619         * config/mn10300/mn10300.c (function_arg): Rename to...
2620         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
2621         and a bool.
2622         (mn10300_function_arg_advance): New function.
2623         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2624
2625 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2626
2627         * config/iq2000/iq2000-protos.h (function_arg): Delete.
2628         (function_arg_advance): Delete.
2629         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2630         * config/iq2000/iq2000.c (function_arg): Rename to...
2631         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
2632         a bool.
2633         (function_arg_advance): Rename to...
2634         (iq2000_function_arg_advance): ...this.  Make static.  Take a
2635         const_tree and a bool.
2636         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
2637         iq2000_function_arg.
2638         (iq2000_pass_by_reference): Call iq2000_function_arg).
2639         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2640
2641 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2642
2643         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
2644         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2645         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
2646         const_tree.
2647         (fr30_function_arg): New function.
2648         (fr30_function_arg_advance): New function.
2649         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2650
2651 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
2652
2653         * config/frv/frv-protos.h (frv_function_arg): Delete.
2654         (frv_function_arg_advance): Delete.
2655         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2656         * config/frv/frv.c (frv_function_arg): Rename to...
2657         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
2658         (frv_function_arg, frv_function_incoming_arg): New functions.
2659         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
2660         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2661         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2662
2663 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
2664
2665         PR target/46153
2666         * config/i386/sse.md (sse_movhlps_exp): Use destination
2667         returned from ix86_fixup_binary_operands to expand insn.
2668         (sse_movlhps_exp): Ditto.
2669         (sse_loadhps_exp): Ditto.
2670         (sse_loadlps_exp): Ditto.
2671         (sse2_loadhpd_exp): Ditto.
2672         (sse2_loadlpd_exp): Ditto.
2673
2674 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
2675
2676         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
2677         constants in thumb2.
2678
2679 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
2680
2681         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
2682         arithmetics in masking operations.
2683         (contains_muldiv): Likewise.
2684         (try_combine): Likewise.
2685         (find_split_point): Likewise.
2686         (combine_simplify_rtx): Likewise.
2687         (simplify_if_then_else): Likewise.
2688         (simplify_set): Likewise.
2689         (expand_compound_operation): Likewise.
2690         (expand_field_assignment): Likewise.
2691         (make_extraction): Likewise.
2692         (extract_left_shift): Likewise.
2693         (make_compound_operation): Likewise.
2694         (force_to_mode): Likewise.
2695         (make_field_assignment): Likewise.
2696         (reg_nonzero_bits_for_combine): Likewise.
2697         (simplify_shift_const_1): Likewise.
2698         (simplify_comparison): Likewise.
2699
2700 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
2701
2702         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
2703         (ia64_function_arg_advance): Delete.
2704         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
2705         (FUNCTION_ARG_ADVANCE): Delete.
2706         * config/ia64/ia64.c (ia64_function_arg): Rename to...
2707         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
2708         bool arguments.
2709         (ia64_function_arg, ia64_function_incoming_arg): New functions.
2710         (ia64_function_arg_advance): Make static.  Take a const_tree and
2711         a bool.
2712         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2713         (TARGET_FUNCTION_ARG_ADVANCE): Define.
2714
2715 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
2716
2717         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
2718         (TARGET_GET_RAW_ARG_MODE): New.
2719         * doc/tm.texi: Regenerate.
2720         * target.def (get_raw_result_mode): New.
2721         (get_raw_arg_mode): New.
2722         * targhooks.c (default_get_reg_raw_mode): New.
2723         * targhooks.h (default_get_reg_raw_mode): New.
2724         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
2725         (apply_result_size): Ditto.
2726         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
2727         (TARGET_GET_RAW_RESULT_MODE): Define.
2728         (TARGET_GET_RAW_ARG_MODE): Ditto.
2729
2730 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
2731
2732         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
2733         for newer Solaris 10 release.
2734         (sparc_fallback_frame_state): Likewise.
2735
2736 2010-10-27  Jason Merrill  <jason@redhat.com>
2737
2738         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
2739         variables sooner.
2740
2741 2010-10-27  Jie Zhang  <jie@codesourcery.com>
2742             Maxim Kuvyrkov  <maxim@codesourcery.com>
2743
2744         * haifa-sched.c (ISSUE_POINTS): Remove.
2745         (max_issue): Don't issue more than issue_rate instructions.
2746
2747 2010-10-27  Ian Lance Taylor  <iant@google.com>
2748
2749         PR target/46197
2750         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
2751         (split_stack_return): Replace UNSPEC_STACK_CHECK with
2752         UNSPECV_SPLIT_STACK_RETURN.
2753
2754 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
2755
2756         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
2757
2758         * config/i386/i386.c (block_info): New.
2759         (BLOCK_INFO): Likewise.
2760         (call_avx256_state): Likewise.
2761         (check_avx256_stores): Likewise.
2762         (move_or_delete_vzeroupper_2): Likewise.
2763         (move_or_delete_vzeroupper_1): Likewise.
2764         (move_or_delete_vzeroupper): Likewise.
2765         (use_avx256_p): Likewise.
2766         (function_pass_avx256_p): Likewise.
2767         (flag_opts): Add -mvzeroupper.
2768         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
2769         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
2770         is disabled.
2771         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
2772         generate vzeroupper.
2773         (init_cumulative_args): Add an int to indicate caller.  Set
2774         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
2775         based on return type.
2776         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
2777         caller_pass_avx256_p based on argument type.
2778         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
2779         is used, but not returned by caller.
2780         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
2781         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
2782         is used.
2783         (ix86_minimum_alignment): Likewise.
2784         (ix86_expand_special_args_builtin): Set target to
2785         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
2786         (ix86_reorg): Run the vzeroupper optimization if needed.
2787
2788         * config/i386/i386.h (ix86_args): Add caller.
2789         (INIT_CUMULATIVE_ARGS): Updated.
2790         (machine_function): Add use_vzeroupper_p, use_avx256_p,
2791         caller_pass_avx256_p, caller_return_avx256_p,
2792         callee_pass_avx256_p and callee_return_avx256_p.
2793
2794         * config/i386/i386.opt (-mvzeroupper): New.
2795
2796         * config/i386/predicates.md (vzeroupper_operation): Removed.
2797
2798         * config/i386/sse.md (avx_vzeroupper): Removed.
2799         (*avx_vzeroupper): Removed.
2800         (avx_vzeroupper): New.
2801
2802         * doc/invoke.texi: Document -mvzeroupper.
2803
2804 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
2805
2806         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
2807         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
2808         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
2809
2810 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
2811             Olivier Hainque  <hainque@adacore.com>
2812
2813         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
2814         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
2815         fs->signal_frame instead.
2816
2817 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2818
2819         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
2820         parsing of RID_COPIES and RID_IVAR.
2821
2822 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2823
2824         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
2825         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
2826         Do not use objc_set_property_attr, but use local variables
2827         instead.  Detect repeated usage of setter, getter and ivar
2828         attributes.  Improved error processing when a setter name does not
2829         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
2830         that the token is a keyword.  Updated call to
2831         objc_add_property_declaration.
2832
2833 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2834
2835         * c-parser.c (c_parser_objc_at_property): Renamed to
2836         c_parser_objc_at_property_declaration.  Updated calls to
2837         objc_add_property_variable, now objc_add_property_declaration.
2838         Code rewritten to be much more robust in recovering from syntax
2839         errors.  Added comments.
2840         (c_parser_objc_property_attrlist): Removed.
2841         (c_parser_external_declaration): Updated calls to
2842         c_parser_objc_at_property, now
2843         c_parser_objc_at_property_declaration.
2844         (c_parser_objc_methodprotolist): Same change.
2845
2846 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
2847
2848         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
2849
2850 2010-10-26  Jan Hubicka  <jh@suse.cz>
2851
2852         * ipa.c (process_references): Enqueue all referenced nodes;
2853         mark as reachable only non-external nodes.
2854         (cgraph_remove_unreachable_nodes): All referenced nodes should
2855         be enqueued; remove bogues node->needed check.
2856
2857 2010-10-26  Jan Hubicka  <jh@suse.cz>
2858
2859         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
2860         to represent OMP.
2861
2862 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
2863
2864         * config/i386/i386.md (split_stack_return): Replace
2865         unspec_volatile with unspec.
2866
2867 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
2868
2869         * doc/install.texi: Fix typo in --with-sysroot description.
2870
2871 2010-10-26  Jan Hubicka  <jh@suse.cz>
2872
2873         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
2874         Use info provided by linker plugin.
2875
2876 2010-10-26  Jason Merrill  <jason@redhat.com>
2877
2878         * varasm.c (constructor_static_from_elts_p): Don't require a
2879         CONSTRUCTOR to have elements to be suitable for static
2880         initialization.  Allow ARRAY_TYPE as well.
2881
2882 2010-10-26  Jan Hubicka  <jh@suse.cz>
2883
2884         PR middle-end/45736
2885         * cgraph.c (cgraph_set_readonly_flag): Rename to...
2886         (cgraph_set_const_flags) ... this one; get also looping argument;
2887         clear constructor/destructor flags.
2888         (cgraph_set_pure_flag): Likewise.
2889         (cgraph_set_looping_const_or_pure_flag): Remove.
2890         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
2891         to optimize away static ctors/dtors; it does not work on inline clones;
2892         external functions can always be rmeoved.
2893         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
2894         inline clones; in LTO external functions always can go.
2895         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
2896         (cgraph_mark_address_taken_node): Assert that we are not taking
2897         address of inline clone.
2898         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
2899         external functions.
2900         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
2901         address taken.
2902         (ipcp_initialize_node_lattices): Only local functions can be
2903         handled without cloning.
2904         * cgraph.h (cgraph_set_readonly_flag,
2905         cgraph_set_looping_const_or_pure_flag): Remove.
2906         (cgraph_set_const_flag): Declare.
2907         (cgraph_set_pure_flag): Update.
2908         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
2909         flags setting code.
2910         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
2911         look at inline clones; fix handling of external definitions.
2912         (cgraph_postorder): Do not look at inline clones in the first pass.
2913         (function_and_variable_visibility): Drop constructors/destructor
2914         flags at pure and const functions.
2915         * tree-profile.c (tree_profiling): Update.
2916         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
2917         address taken; external functions do not account to whole program size.
2918         (cgraph_decide_inlining): Likewise; do not try to inline
2919         functions already inlined.
2920
2921 2010-10-26  Jie Zhang  <jie@codesourcery.com>
2922
2923         * doc/invoke.texi: Improve documentation of
2924         -fstrict-volatile-bitfields.
2925
2926 2010-10-26  Ira Rosen  <irar@il.ibm.com>
2927
2928         PR tree-optimization/46167
2929         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
2930         is basic block for the statement.
2931
2932 2010-10-26  Paul Koning  <ni1d@arrl.net>
2933
2934         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
2935         current definition of struct_real_format.
2936
2937 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
2938
2939         PR target/44948
2940         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
2941         (ix86_function_arg_boundary): Always align parameters on stack
2942         in 64bit and align parameters with alignment >= 16byte on stack
2943         in 32bit.  Warn alignment change.
2944
2945 2010-10-26  Ian Lance Taylor  <iant@google.com>
2946
2947         PR middle-end/45687
2948         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
2949         offset.
2950
2951 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2952
2953         Implement opaque-enum-specifiesr for C++0x
2954         * tree.h (ENUM_IS_OPAQUE): New.
2955         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
2956
2957 2010-10-26  Jie Zhang  <jie@codesourcery.com>
2958
2959         * stor-layout.c (layout_decl): Use the field's type to
2960         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
2961         * config/arm/arm.c (arm_override_options): Default to
2962         -fstrict-volatile-bitfields.
2963
2964 2010-10-25  Paul Koning  <ni1d@arrl.net>
2965
2966         * config/pdp11/pdp11.md: Add define_constants for register
2967         numbers, branch offset limits.
2968         * config/pdp11/pdp11.c: Use named constants instead of numbers.
2969         * config/pdp11.pdp11.h: Ditto.
2970
2971 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
2972
2973         * configure.ac: Use $cpu_type instead of $target to define the nop.
2974         * configure: Regenerate.
2975
2976 2010-10-25  Jie Zhang  <jie@codesourcery.com>
2977
2978         * combine.c (try_combine): If insns need to be kept around, check that
2979         they can be copied in the merged instruction.
2980
2981 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
2982
2983         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
2984         has been modified.
2985         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
2986         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
2987         it has been modified.
2988
2989 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
2990
2991         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
2992
2993 2010-10-24  Paul Koning  <ni1d@arrl.net>
2994
2995         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
2996         * config/pdp11/pdp11.c (output_jump): Ditto.
2997
2998 2010-10-24  Ian Lance Taylor  <iant@google.com>
2999
3000         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
3001
3002 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3003
3004         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
3005         least one insn with a locus corresponding to an edge's goto_locus,
3006         disregard non-fallthru edges to the exit block and merge the blocks
3007         created for the same goto_locus.
3008
3009 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
3010
3011         * gcc.c (n_switches_alloc_debug_check): New.
3012         (set_option_handlers): New.
3013         (process_command): Use set_option_handlers.
3014         (do_self_spec): Pass spec-generated options through option handlers.
3015         (main): Also save and restore n_switches_alloc when swapping
3016         switch arrays.
3017
3018 2010-10-23  Richard Henderson  <rth@redhat.com>
3019
3020         PR target/46144
3021         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
3022         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
3023         Honor matching operands when splitting to XOR.
3024
3025 2010-10-23  Ian Lance Taylor  <iant@google.com>
3026
3027         * tree-vrp.c (extract_range_from_binary_expr): If
3028         flag_non_call_exceptions don't eliminate division by zero.
3029         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3030
3031 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
3032
3033         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3034         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
3035         __ORDER_PDP_ENDIAN__.
3036         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3037         (struct DWstruct): Define based on __BYTE_ORDER__.
3038         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3039         (struct INTstruct): Define based on __BYTE_ORDER__.
3040         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3041         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
3042         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
3043         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3044         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3045         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3046         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3047         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3048         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3049         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3050         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3051         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3052         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3053         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3054         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3055         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3056         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3057         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3058         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3059         * doc/tm.texi: Regenerate.
3060         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
3061         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
3062
3063 2010-10-23  Jie Zhang  <jie@codesourcery.com>
3064
3065         PR rtl-optimization/37360
3066         * config/mips/mips.c (cached_can_issue_more): New local variable.
3067         (mips_sched_reorder_1): New.
3068         (mips_sched_reorder): Use mips_sched_reorder_1.
3069         (mips_sched_reorder2): New.
3070         (mips_variable_issue): Set cached_can_issue_more.
3071         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
3072         instead of mips_sched_reorder.
3073
3074         Revert:
3075         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3076         PR rtl-optimization/37360
3077         * haifa-sched.c (max_issue): Do not assert that we never issue more
3078         insns than issue_rate.  Add comment.
3079
3080 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3081
3082         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
3083         location info of the expression.
3084
3085 2010-10-22  DJ Delorie  <dj@redhat.com>
3086
3087         * doc/extend.texi (Named Address Spaces): Document the M32C named
3088         address space.
3089
3090         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
3091         __far address space.
3092         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
3093         "__far" address space for R8C and M16C processor variants.
3094         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
3095         (far_addr_space_p): New.
3096         (encode_pattern_1): Add sign and zero extend support.
3097         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
3098         (m32c_extra_constraint_p2): Add SF constraint.
3099         (m32c_legitimate_address_p): Support __far addresses.
3100         (m32c_addr_space_pointer_mode): New.
3101         (m32c_addr_space_address_mode): New.
3102         (m32c_addr_space_legitimate_address_p): New.
3103         (m32c_addr_space_legitimize_address): New.
3104         (m32c_addr_space_subset_p): New.
3105         (m32c_addr_space_convert): New.
3106         (conversions): Add __far operand patterns.
3107         (m32c_prepare_move): Force constants into registers for __far moves.
3108         (m32c_split_move): __far moves are always split.
3109         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
3110         * config/m32c/mov.md (mov<mode>_far_op1): New.
3111         (mov<mode>_far_op2): New.
3112         (movqi_op): Add __far (SF) support.
3113         (movhi_op): Likewise.
3114         (movsi_splittable): Split A1A0 also.
3115
3116 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3117             Andrew Pinski  <pinskia@gmail.com>
3118
3119         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
3120         * doc/extend.texi: New paragraph
3121
3122 2010-10-22  Paul Koning  <ni1d@arrl.net>
3123
3124         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
3125
3126 2010-10-22  DJ Delorie  <dj@redhat.com>
3127
3128         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
3129
3130 2010-10-22  Paul Koning  <ni1d@arrl.net>
3131
3132         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
3133
3134 2010-10-22  Richard Henderson  <rth@redhat.com>
3135
3136         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
3137         cases for __builtin_fma and __builtin_fmaf.
3138
3139 2010-10-22  Richard Henderson  <rth@redhat.com>
3140
3141         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
3142         NEG+USE for vectors as well.
3143         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
3144         and splitter.
3145
3146 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
3147
3148         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
3149         SWITCH_CURTAILS_COMPILATION): Remove.
3150         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
3151         * doc/tm.texi: Regenerate.
3152         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
3153
3154 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3155
3156         * config/i386/bdver1.md: New file.
3157         * config/i386/i386.md (include "bdver1.md"): Invoke the
3158         pipeline description for bdver1.
3159         (x86_sahf_1): Add "bdver1_decode" attribute.
3160         (*cmpfp_i_mixed): Likewise.
3161         (*cmpfp_i_sse): Likewise.
3162         (*cmpfp_i_i387): Likewise.
3163         (*cmpfp_iu_mixed): Likewise.
3164         (*cmpfp_iu_sse): Likewise.
3165         (*cmpfp_iu_387): Likewise.
3166         (*swap<mode>,*swap<mode>_1): Likewise.
3167         (fixuns_trunc<mode>hi2): Likewise.
3168         (fix_trunc<mode>si_sse): Likewise.
3169         (x86_fnstcw_1): Likewise.
3170         (x86_fldcw_1): Likewise.
3171         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
3172         (*floatsi<mode>2_vector_mixed): Likewise.
3173         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
3174         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
3175         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
3176         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
3177         (*floatsi<mode>2_vector_sse): Likewise.
3178         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
3179         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
3180         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
3181         (*mul<mode>3_1): Likewise.
3182         (*mulsi3_1_zext): Likewise.
3183         (*mulhi3_1): Likewise.
3184         (*mulqi3_1): Likewise.
3185         (*<u>mul<mode><dwi>3_1): Likewise.
3186         (*<u>mulqihi3_1): Likewise.
3187         (*<s>muldi3_highpart_1): Likewise.
3188         (*<s>mulsi3_highpart_1): Likewise.
3189         (*<s>mulsi3_highpart_zext): Likewise.
3190         (x86_64_shld): Likewise.
3191         (x86_shld): Likewise.
3192         (x86_64_shrd): Likewise.
3193         (x86_shrd): Likewise.
3194         (sqrtxf2): Likewise.
3195         (sqrt_extend<mode>xf2_i387): Likewise.
3196         (*sqrt<mode>2_sse): Likewise.
3197         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
3198         (sse_cvtsi2ssq): Likewise.
3199         (sse_cvtss2si): Likewise.
3200         (sse_cvtss2si_2): Likewise.
3201         (sse_cvtss2siq): Likewise.
3202         (sse_cvtss2siq_2): Likewise.
3203         (sse_cvttss2si): Likewise.
3204         (sse_cvttss2siq): Likewise.
3205         (sse2_cvtpi2pd): Likewise.
3206         (sse2_cvttpd2pi): Likewise.
3207         (sse2_cvtsi2sd): Likewise.
3208         (sse2_cvtsi2sdq): Likewise.
3209         (sse2_cvtsd2si): Likewise.
3210         (sse2_cvtsd2si_2): Likewise.
3211         (sse2_cvtsd2siq): Likewise.
3212         (sse2_cvtsd2siq_2): Likewise.
3213         (sse2_cvttsd2si): Likewise.
3214         (sse2_cvttsd2siq): Likewise.
3215         (*sse2_cvtpd2dq): Likewise.
3216         (*sse2_cvttpd2dq): Likewise.
3217         (sse2_cvtsd2ss): Likewise.
3218         (sse2_cvtss2sd): Likewise.
3219         (*sse2_cvtpd2ps): Likewise.
3220         (sse2_cvtps2pd): Likewise.
3221
3222 2010-10-22  Richard Guenther  <rguenther@suse.de>
3223
3224         PR middle-end/46137
3225         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
3226         remove the virtual operands if they are not needed.
3227
3228 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3229
3230         * config/i386/i386.c (processor_costs bdver1_cost): Update
3231         insn costs and architectural parameters for bdver1.
3232
3233 2010-10-22  Richard Guenther  <rguenther@suse.de>
3234
3235         * gimple.h (gimple_register_canonical_type): Declare.
3236         * gimple.c (gimple_canonical_types): New global hashtable.
3237         (struct gimple_type_leader_entry_s): New type.
3238         (gimple_type_leader): New global cache.
3239         (gimple_lookup_type_leader): New function.
3240         (gtc_visit): Query the proper cache.
3241         (gimple_types_compatible_p): Likewise.
3242         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
3243         (gimple_canonical_type_eq): New function.
3244         (gimple_register_canonical_type): Likewise.
3245         (print_gimple_types_stats): Adjust for gimple_canonical_types.
3246         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
3247         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
3248         gimple_types_compatible_p for LTO.
3249
3250 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
3251
3252         PR target/46098
3253         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
3254         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
3255         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
3256         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
3257         (<sse>_movu<ssemodesuffix>): New expander.
3258         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
3259         (avx_movdqu<avxmodesuffix>): New expander.
3260         (*sse2_movdqu): Rename from sse2_movdqu.
3261         (sse2_movdqu): New expander.
3262
3263 2010-10-22  Richard Guenther  <rguenther@suse.de>
3264
3265         PR tree-optimization/45720
3266         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
3267         Handle negative step.
3268         (vect_enhance_data_refs_alignment): Likewise.
3269         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
3270         (vect_create_cond_for_align_checks): Likewise.
3271         (vect_create_cond_for_alias_checks): Likewise.
3272
3273 2010-10-22  Ira Rosen  <irar@il.ibm.com>
3274
3275         PR tree-optimization/46126
3276         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
3277         vectorizable_shift in case of basic block vectorization.
3278
3279 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
3280
3281         * target.h (enum opt_levels, struct default_options): New.
3282         * target.def (handle_ofast): Remove hook.
3283         (target_option.optimization): Change to
3284         target_option.optimization_table.
3285         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
3286         TARGET_OPTION_OPTIMIZATION_TABLE.
3287         (CAN_DEBUG_WITHOUT_FP): Remove.
3288         * doc/tm.texi: Regenerate.
3289         * opts.c (maybe_default_option, maybe_default_options,
3290         default_options_table): New.
3291         (default_options_optimization): Take extra parameters.  Don't
3292         assert that global_options and global_options_set are in use.  Use
3293         maybe_default_options.
3294         (decode_options): Pass extra parameters to
3295         default_options_optimization.
3296         * common.opt (falign-loops): Use value 0 with Var.
3297         (frerun-cse-after-loop, ftree-ter): Remove Init.
3298         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
3299         TARGET_OPTION_OPTIMIZATION): Remove.
3300         * targhooks.c (empty_optimization_table): New.
3301         * targhooks.h (empty_optimization_table): Declare.
3302         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
3303         * config/alpha/alpha.c (alpha_option_optimization_table,
3304         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3305         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
3306         * config/arm/arm.c (arm_option_optimization: Change to
3307         arm_option_optimization_table.
3308         (TARGET_OPTION_OPTIMIZATION): Change to
3309         TARGET_OPTION_OPTIMIZATION_TABLE.
3310         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
3311         * config/avr/avr.c (avr_option_optimization_table,
3312         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3313         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
3314         * config/cris/cris.c (cris_option_optimization): Change to
3315         cris_option_optimization_table.
3316         (TARGET_OPTION_OPTIMIZATION): Change to
3317         TARGET_OPTION_OPTIMIZATION_TABLE.
3318         * config/crx/crx.c (crx_option_optimization): Change to
3319         crx_option_optimization_table.
3320         (TARGET_OPTION_OPTIMIZATION): Change to
3321         TARGET_OPTION_OPTIMIZATION_TABLE.
3322         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
3323         * config/fr30/fr30.c (fr30_option_optimization_table,
3324         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3325         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
3326         * config/frv/frv.c (frv_option_optimization_table,
3327         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3328         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
3329         * config/h8300/h8300.c (h8300_option_optimization): Change to
3330         h8300_option_optimization_table.
3331         (TARGET_OPTION_OPTIMIZATION): Change to
3332         TARGET_OPTION_OPTIMIZATION_TABLE.
3333         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
3334         * config/i386/i386.c (ix86_option_optimization): Change to
3335         ix86_option_optimization_table.
3336         (TARGET_OPTION_OPTIMIZATION): Change to
3337         TARGET_OPTION_OPTIMIZATION_TABLE.
3338         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
3339         as initializer.
3340         * config/ia64/ia64.c (ia64_option_optimization): Change to
3341         ia64_option_optimization_table.
3342         (TARGET_OPTION_OPTIMIZATION): Change to
3343         TARGET_OPTION_OPTIMIZATION_TABLE.
3344         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
3345         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
3346         initializer.
3347         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3348         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3349         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
3350         * config/lm32/lm32.c (lm32_option_optimization_table,
3351         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3352         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
3353         * config/m32r/m32r.c (m32r_option_optimization): Change to
3354         m32r_option_optimization_table.
3355         (TARGET_OPTION_OPTIMIZATION): Change to
3356         TARGET_OPTION_OPTIMIZATION_TABLE.
3357         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
3358         CAN_DEBUG_WITHOUT_FP): Remove.
3359         * config/mcore/mcore.c (mcore_option_optimization): Change to
3360         mcore_option_optimization_table.
3361         (TARGET_OPTION_OPTIMIZATION): Change to
3362         TARGET_OPTION_OPTIMIZATION_TABLE.
3363         * config/mep/mep.c (mep_option_optimization): Change to
3364         mep_option_optimization_table.
3365         (TARGET_OPTION_OPTIMIZATION): Change to
3366         TARGET_OPTION_OPTIMIZATION_TABLE.
3367         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
3368         * config/microblaze/microblaze.c
3369         (microblaze_option_optimization_table,
3370         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3371         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
3372         * config/mips/mips.c (mips_option_optimization_table,
3373         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3374         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
3375         * config/mmix/mmix.c (mmix_option_optimization): Change to
3376         mmix_option_optimization_table.
3377         (TARGET_OPTION_OPTIMIZATION): Change to
3378         TARGET_OPTION_OPTIMIZATION_TABLE.
3379         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
3380         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3381         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3382         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
3383         * config/pa/pa.c (pa_option_optimization_table,
3384         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3385         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
3386         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
3387         pdp11_option_optimization_table.
3388         (TARGET_OPTION_OPTIMIZATION): Change to
3389         TARGET_OPTION_OPTIMIZATION_TABLE.
3390         * config/picochip/picochip.c (picochip_option_optimization_table,
3391         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3392         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
3393         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
3394         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3395         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
3396         * config/rx/rx.c (rx_option_optimization_table,
3397         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3398         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
3399         * config/s390/s390.c (s390_option_optimization): Change to
3400         s390_option_optimization_table.
3401         (s390_option_override): Update comment.
3402         (TARGET_OPTION_OPTIMIZATION): Change to
3403         TARGET_OPTION_OPTIMIZATION_TABLE.
3404         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
3405         * config/score/score.c (score_option_optimization_table,
3406         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3407         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
3408         * config/sh/sh.c (sh_option_optimization): Change to
3409         sh_option_optimization_table.
3410         (TARGET_OPTION_OPTIMIZATION): Change to
3411         TARGET_OPTION_OPTIMIZATION_TABLE.
3412         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
3413         (sh_option_override, expand_block_move, multcosts, find_barrier,
3414         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
3415         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
3416         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
3417         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
3418         instead of TARGET_SMALLCODE.
3419         * config/sh/sh.opt (mspace): Make into an alias for -Os.
3420         * config/sparc/sparc.c (sparc_option_optimization_table,
3421         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3422         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
3423         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3424         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3425         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
3426         * config/v850/v850.c (v850_option_optimization): Change to
3427         v850_option_optimization_table.
3428         (TARGET_OPTION_OPTIMIZATION): Change to
3429         TARGET_OPTION_OPTIMIZATION_TABLE.
3430         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
3431         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
3432         xtensa_option_optimization_table.
3433         (TARGET_OPTION_OPTIMIZATION): Change to
3434         TARGET_OPTION_OPTIMIZATION_TABLE.
3435         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
3436
3437 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
3438
3439         Based on the CFString implementation in FSF apple/trunk branch.
3440
3441         * target.def (objc_construct_string): New Hook.
3442         * doc/tm.texi (objc_construct_string): Document.
3443         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
3444         * config/t-darwin: Amend build rules for darwin.o.
3445         * config/darwin.opt: Add cfstrings flags.
3446         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
3447         (darwin_objc_construct_string): New.
3448         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
3449         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
3450         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
3451         (darwin_fold_builtin): Likewise.
3452         (darwin_build_constant_cfstring): Likewise.
3453         (darwin_objc_construct_string): Likewise.
3454         (darwin_cfstring_p): Likewise.
3455         (darwin_enter_string_into_cfstring_table): Likewise.
3456         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
3457         * config/darwin.c (darwin_running_cxx): New var.
3458         (machopic_select_section): Return cfstring_constant_object_section.
3459         (darwin_override_options): Set darwin_running_cxx.
3460         (add_builtin_field_decl): New.
3461         (darwin_init_cfstring_builtins): New.
3462         (darwin_build_constant_cfstring): New.
3463         (darwin_fold_builtin): New.
3464         (cfstring_hash): New.
3465         (cfstring_eq): New.
3466         (darwin_enter_string_into_cfstring_table): New.
3467         * config/darwin-sections.def (cfstring_constant_object_section): New.
3468         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
3469         (TARGET_OBJC_CONSTRUCT_STRING): Define.
3470
3471 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3472
3473         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
3474         TYPE_STUB_DECL instead of TREE_CHAIN.
3475         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
3476         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
3477         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
3478         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
3479         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
3480         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
3481         Likewise.
3482         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
3483
3484 2010-10-22  Jie Zhang  <jie@codesourcery.com>
3485
3486         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
3487         (copy_blkmode_from_reg): Likewise.
3488         (read_complex_part): Likewise.
3489         (expand_expr_real_1): Calculate packedp and pass it to
3490         extract_bit_field.
3491         * expr.h (extract_bit_field): Update declaration.
3492         * calls.c (store_unaligned_arguments_into_pseudos): Update call
3493         to extract_bit_field.
3494         * expmed.c (extract_fixed_bit_field): Update calls to
3495         extract_fixed_bit_field.
3496         (store_split_bit_field): Likewise.
3497         (extract_bit_field_1): Add new argument packedp.
3498         (extract_bit_field): Add new argument packedp.
3499         (extract_fixed_bit_field): Add new argument packedp and let
3500         packed attribute override volatile.
3501         * stmt.c (expand_return): Update call to extract_bit_field.
3502
3503 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3504
3505         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
3506
3507 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3508
3509         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
3510         of gcc_checking_assert.
3511         * sel-sched.c (code_motion_process_successors): Likewise.
3512
3513 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
3514
3515         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
3516         when stopping because of a different locus on edge or insn.
3517         (try_optimize_cfg): Add comment.
3518         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
3519         block is a forwarder block, propagate locus on the edge.
3520         (cfg_layout_merge_blocks): Likewise.
3521
3522 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
3523
3524         PR target/45946
3525         * config/i386/i386.md (*pushti2): New insn pattern.
3526         (pushti2 splitter): New insn splitter.
3527         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
3528         DWI mode iterator.
3529
3530 2010-10-21  Paul Koning  <ni1d@arrl.net>
3531
3532         * config/pdp11/pdp11-protos.md (arith_operand,
3533         const_immediate_operand, expand_shift_operand,
3534         immediate15_operand): Delete
3535         * config/pdp11/pdp11.c: Ditto.
3536         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
3537         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3538         EXTRA_CONSTRAINT): Delete.
3539         * config/pdp11/pdp11.md (various): Use standard constraints
3540         instead of removed ones.
3541         * config/pdp11/constraints.md: New file.
3542         * config/pdp11/predicates.md: New file.
3543
3544 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
3545
3546         PR c/45834
3547         * alias.c (true_dependence_1): Remove obsolete check for QImode.
3548         (may_alias_p): Ditto.
3549
3550 2010-10-21  Martin Jambor  <mjambor@suse.cz>
3551
3552         PR tree-optimization/45875
3553         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
3554
3555 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3556
3557         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
3558         variables.
3559         (create_new_def_for): Likewise.
3560
3561 2010-10-21  Nick Clifton  <nickc@redhat.com>
3562
3563         * config/mn10300/mn10300.c: Fold code to 80-character width.
3564         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
3565         MEM, CONST_INT and CONST_DOUBLE.
3566         (targetm): Move initialization to end of file.
3567         (print_operand): Rename to mn10300_print_operand.
3568         (print_operand_address): Rename to mn10300_print_operand_address.
3569         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
3570         (expand_prologue): Rename to mn10300_expand_prologue.
3571         (expand_epilogue): Rename to mn10300_expand_epilogue.
3572         (initial_offset): Rename to mn10300_initial_offset.
3573         (function_arg): Rename to mn10300_function_arg.
3574         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
3575         (symbolic_operand): Rename to mn10300_symbolic_operand.
3576         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
3577         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
3578         * config/mn10300/mn10300-protos.h: Update prototypes.
3579         * config/mn10300/mn10300.h: Fold code to 80-character width.
3580         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
3581         MEM, CONST_INT and CONST_DOUBLE.
3582         (CPP_SPEC): Move to...
3583         (TARGET_CPU_CPP_BUILTINS): ... here.
3584         * config/mn10300/mn10300.md: Fold code to 80-character width.
3585         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
3586         MEM, CONST_INT and CONST_DOUBLE.
3587
3588 2010-10-21  Ira Rosen  <irar@il.ibm.com>
3589
3590         PR tree-optimization/46049
3591         PR tree-optimization/46052
3592         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
3593         (vect_get_slp_defs): Add arguments.
3594         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
3595         operands to vect_get_slp_defs.
3596         (vectorizable_reduction): Fix comment, pass scalar operands to
3597         vect_get_slp_defs.
3598         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
3599         type to determine number of units in the created vector.
3600         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
3601         (vectorizable_conversion): Fix comment.
3602         (vectorizable_shift): New function.
3603         (vectorizable_operation): Move code that handles shifts to
3604         vectorizable_shift.
3605         (vectorizable_type_demotion): Fix comment, pass scalar operands to
3606         vect_get_slp_defs.
3607         (vectorizable_type_promotion, vectorizable_store): Likewise.
3608         (vectorizable_condition): Fix comment.
3609         (vect_analyze_stmt): Call vectorizable_shift.
3610         (vect_transform_stmt): Likewise.
3611         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
3612         Use it as the operand to create vectors for, except reduction
3613         initial definition and store.  Use operands type.
3614         (vect_get_slp_defs): Add new arguments.  Pass them to
3615          vect_get_constant_vectors.
3616
3617 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3618
3619         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
3620         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
3621         * cfghooks.c (fixup_reorder_chain): Likewise.
3622         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3623         * cgraph.c (cgraph_add_thunk): Likewise.
3624         (cgraph_create_edge_1): Likewise.
3625         (cgraph_create_virtual_clone): Likewise.
3626         * ddg.c (add_cross_iteration_register_deps): Likewise.
3627         * dwarf2out.c (modified_type_die): Likewise.
3628         * emit-rtl.c (set_mem_alias_set): Likewise.
3629         * ggc-zone.c (zone_allocate_marks): Likewise.
3630         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
3631         * gimple.c (iterative_hash_gimple_type): Likewise.
3632         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
3633         (create_single_exit_edge): Likewise.
3634         * haifa-sched.c (choose_ready): Likewise.
3635         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3636         * passes.c (execute_todo): Likewise.
3637         * sched-ebb.c (begin_schedule_ready): Likewise.
3638         * sel-sched.c (code_motion_process_successors): Likewise.
3639         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
3640         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
3641         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
3642         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
3643         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
3644         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
3645         (ssa_conflicts_add): Likewise.
3646         * tree-ssa-copy.c (replace_exp): Likewise.
3647         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
3648         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
3649         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
3650         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
3651         (compute_antic): Likewise.
3652         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
3653         (add_dependence): Likewise.
3654         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
3655         * tree-vrp.c (supports_overflow_infinity): Likewise.
3656         (make_overflow_infinity, negative_overflow_infinity): Likewise.
3657         (avoid_overflow_infinity, register_new_assert_for): Likewise.
3658         (process_assert_insertions_for): Likewise.
3659         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
3660         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
3661         (intersect_loc_chains, variable_merge_over_cur): Likewise.
3662
3663 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3664
3665         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
3666         * reload1.c (has_nonexceptional_receiver): Likewise.
3667         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
3668         (create_new_def_for): Likewise.
3669         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
3670         (merge_phi_nodes): Likewise.
3671         (has_abnormal_incoming_edge_p): Delete.
3672
3673 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
3674
3675         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
3676
3677 2010-10-21  Richard Guenther  <rguenther@suse.de>
3678             Michael Matz  <matz@suse.de>
3679
3680         PR tree-optimization/45764
3681         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3682         Adjust initial misalignment for negative DR_STEP.
3683         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
3684         do not have the same alignment over the whole iteration domain.
3685
3686 2010-10-21  Richard Guenther  <rguenther@suse.de>
3687
3688         PR tree-optimization/46111
3689         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
3690
3691 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3692
3693         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
3694
3695 2010-10-21  Tristan Gingold  <gingold@adacore.com>
3696
3697         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
3698         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
3699
3700 2010-10-21  Tristan Gingold  <gingold@adacore.com>
3701
3702         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
3703         signal_frame.
3704         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
3705
3706 2010-10-21  Tristan Gingold  <gingold@adacore.com>
3707
3708         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
3709         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
3710
3711 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
3712
3713         * basic-block.h (find_fallthru_edge): Define.
3714         * cfgcleanup.c (merge_blocks_move): Use it.
3715         (try_crossjump_bb): Likewise.
3716         * cfglayout.c (fixup_reorder_chains): Likewise.
3717         (fixup_fallthru_exit_predecessor): Likewise.
3718         * cfgrtl.c (rtl_split_edge): Likewise.
3719         (rtl_verify_flow_info): Likewise.
3720         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3721         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
3722         * ifcvt.c (block_fallthru): Likewise.
3723         * reload1.c (fixup_abnormal_edges): Likewise.
3724         * sched-ebb.c (being_schedule_ready): Likewise.
3725         (schedule_ebb): Likwise.
3726         * sched-rgn.c (find_single_block_region): Likewise.
3727         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
3728         * tree-complex.c (expand_complex_move): Likewise.
3729         * sched-int.h (find_fallthru_edge): Rename to...
3730         (find_fallthru_edge_from): ...this.
3731         * haifa-sched.c (find_fallthru_edge): Rename to...
3732         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
3733         (init_before_recovery): Call find_fallthru_edge_from.
3734         * sel-sched-ir.c (merge_fences): Likewise.
3735         * sel-sched.c (in_fallthru_bb_p): Likewise.
3736         (move_cond_jump): Likewise.
3737
3738 2010-10-20  Paul Koning  <ni1d@arrl.net>
3739
3740         * config/pdp11/pdp11.md (various): Fix conditions on a number of
3741         insn to check for target 11/40 or higher.
3742
3743 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
3744
3745         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
3746         bool instead of a tree.
3747         (c_parser_objc_method_decl): Added bool argument.  Updated call to
3748         objc_build_method_signature.
3749         (c_parser_objc_method_definition): Do not call
3750         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
3751         c_parser_objc_method_decl and objc_start_method_definition.
3752         (c_parser_objc_methodproto): Do not call objc_set_method_type.
3753         Updated calls to c_parser_objc_method_type,
3754         c_parser_objc_method_decl and objc_add_method_declaration.
3755
3756 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
3757
3758         PR tree-optimization/45919
3759         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
3760         array members.
3761
3762         PR tree-optimization/46066
3763         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
3764         instead of gsi_last_bb.
3765
3766 2010-10-20  DJ Delorie  <dj@redhat.com>
3767
3768         * config/m32c/m32c.c (m32c_option_override): Always disable
3769         function-cse in 16-bit mode.  Indirect calls are always worse than
3770         direct calls as there is no 16-bit indirect call opcode.
3771         (m32c_override_options_after_change): New, likewise.
3772
3773 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
3774
3775         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
3776         emitting the conditional move in the inner mode of the SUBREG.
3777
3778 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
3779
3780         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
3781         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
3782         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
3783         (ia64_preferred_reload_class): Make static.  Change rclass argument
3784         and result types from enum reg_class to reg_class_t.
3785
3786 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
3787
3788         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
3789         call for single operand expression.
3790
3791 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
3792
3793         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
3794         if there is a call statement to pure or const function in the block.
3795
3796 2010-10-20  Paul Koning  <pkoning@equallogic.com>
3797
3798         Fix several build errors for pdp11 target.
3799         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
3800         (cbranchdf4): Conditional on TARGET_FPU.
3801         (movdf): Ditto; correct alternatives check.
3802         (movmemhi): Fix predicate and constraint.
3803         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
3804
3805 2010-10-20  Richard Guenther  <rguenther@suse.de>
3806
3807         PR lto/45667
3808         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
3809         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
3810         (verify_gimple_assign_single): Disable ADDR_EXPR type check
3811         when in LTO.
3812
3813 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
3814
3815         PR fortran/42169
3816         * ira-emit.c (store_can_be_removed_p): Return false instead of
3817         gcc_unreachable.
3818
3819 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
3820
3821         * fold-const.c (fold_binary_loc): New transformation.
3822
3823 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
3824
3825         PR target/46085
3826         * config/i386/sse.md (reduc_splus_v8sf): Updated.
3827         (reduc_splus_v4df): Likewise.
3828
3829 2010-10-20  Richard Guenther  <rguenther@suse.de>
3830
3831         PR tree-optimization/45860
3832         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
3833         conditional store replacement for non-register type stores.
3834
3835 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
3836
3837         * stor-layout.c (skip_simple_constant_arithmetic): New function.
3838         (self_referential_size): Use it instead of skip_simple_arithmetic.
3839
3840 2010-10-20  Olivier Hainque  <hainque@adacore.com>
3841
3842         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
3843         If the current function calls eh_return, claim live all registers
3844         that we need to check for liveness otherwise.
3845
3846 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
3847
3848         * c-decl.c (c_write_global_declarations): Call
3849         objc_write_global_declarations when compiling Objective-C.
3850         * c-lang.c (finish_file): Removed.
3851
3852 2010-10-19  DJ Delorie  <dj@redhat.com>
3853
3854         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
3855         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
3856         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
3857         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
3858         * doc/tm.texi: Regenerate.
3859         * targhooks.h (default_label_align_after_barrier_max_skip,
3860         default_loop_align_max_skip, default_label_align_max_skip,
3861         default_jump_align_max_skip): Declare.
3862         * target.def (label_align_after_barrier_max_skip): New.
3863         (loop_align_max_skip): New.
3864         (label_align_max_skip): New.
3865         (jump_align_max_skip): New.
3866         * system.h (poison): Add those macros to the list.
3867         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
3868         (LOOP_ALIGN_MAX_SKIP): Remove.
3869         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
3870         (JUMP_ALIGN_MAX_SKIP): Remove.
3871         (default_label_align_after_barrier_max_skip): New.
3872         (default_loop_align_max_skip): New.
3873         (default_label_align_max_skip): New.
3874         (default_jump_align_max_skip): New.
3875         (compute_alignments): Use the new hooks.
3876         (shorten_branches): Likewise.
3877
3878 2010-10-19  Richard Henderson  <rth@redhat.com>
3879
3880         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
3881         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
3882         (fma4i_fmadd_<mode>): New.
3883         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
3884         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
3885         standard fma patterns.
3886         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
3887         enable for FMA.
3888         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
3889         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
3890         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
3891
3892 2010-10-19  Paul Koning  <pkoning@equallogic.com>
3893
3894         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
3895         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
3896
3897 2010-10-19  Richard Henderson  <rth@redhat.com>
3898
3899         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
3900         (fmadf4, *fmsdf4, *nfmadf4): New.
3901         (fmaxf4, *fmsxf4, *nfmaxf4): New.
3902
3903 2010-10-19  Michael Eager  <eager@eagercon.com>
3904
3905         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
3906         Use sjlj unwind info for exceptions.
3907
3908 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
3909
3910         PR fortran/43414
3911         * dwarf2out.c (add_calling_convention_attribute): Flag main
3912         Fortran subroutine with DW_AT_main_subprogram.
3913
3914 2010-10-19  Nick Clifton  <nickc@redhat.com>
3915
3916         * config/rx/rx.c (rx_function_value): Small integer types are
3917         promoted to SImode.
3918         (rx_promote_function_mode): New function.
3919         (TARGET_PROMOTE_FUNCTION_MODE): Define.
3920
3921 2010-10-19  Nick Clifton  <nickc@redhat.com>
3922
3923         * config/mep/mep.c (mep_print_operand): Use
3924         targetm.strip_name_encoding.
3925         (mep_output_aligned_common): Likewise.
3926
3927 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
3928
3929         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
3930
3931 2010-10-18  Richard Henderson  <rth@redhat.com>
3932
3933         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
3934         (fma (neg a) (neg b) c) and (fma a (neg b) c).
3935
3936 2010-10-18  Richard Henderson  <rth@redhat.com>
3937
3938         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
3939         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
3940         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
3941         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
3942         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
3943         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
3944         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
3945         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
3946         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
3947         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
3948         (bdesc_multi_arg): Remove the corresponding builtins.
3949         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
3950         (UNSPEC_FMA4_FMSUBADD): Remove.
3951         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
3952         * config/i386/sse.md (FMA4MODEF4): Remove.
3953         (FMAMODE): Add.
3954         (fma<mode>4): New expander.
3955         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
3956         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
3957         (*fma4i_fmsub_<mode>): Similarly.
3958         (*fma4i_fnmadd_<mode>): Similarly.
3959         (*fma4i_fnmsub_<mode>): Similarly.
3960         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
3961         with the first operand.
3962         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
3963         of explicit arithmetic.  Macroize with AVXMODEF2P.
3964         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
3965         (xop_frcz<mode>2): Macroize with FMAMODE.
3966         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
3967         the first operand.
3968         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
3969         extra negations.
3970         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
3971         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
3972         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
3973         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
3974         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
3975         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
3976         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
3977         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
3978
3979 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
3980
3981         PR rtl-optimization/45966
3982         * combine.c (try_combine): If added_sets_2, deal with the case
3983         where i0 feeds i1 and i1 feeds i2.
3984
3985 2010-10-18  Jan Hubicka  <jh@suse.cz>
3986
3987         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
3988         preserve flags before trying to guess on visibility.
3989         (varpool_externally_visible_p): New function.
3990         (function_and_variable_visibility): Use it.
3991
3992 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
3993
3994         Implemented parsing @synthesize and @dynamic for Objective-C.
3995         * c-parser.c (c_parser_external_declaration): Recognize
3996         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
3997         (c_parser_objc_at_synthesize_declaration): New.
3998         (c_parser_objc_at_dynamic_declaration): New.
3999
4000 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4001
4002         * c-parser.c (c_parser_objc_class_declaration): After finding an
4003         error, parse the whole declaration then reset parser->error.
4004
4005 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4006
4007         PR target/46041
4008         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
4009         * builtins.c (mode_has_fma): Ditto.
4010
4011 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
4012
4013         PR target/36898
4014         PR middle-end/43760
4015         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
4016
4017 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
4018
4019         * config/i386/i386.c (ix86_option_override_internal): Define and
4020         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
4021         default.
4022         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4023         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
4024
4025 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4026
4027         Merge from 'apple/trunk' branch on FSF servers.
4028         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
4029         following Objective-C change:
4030
4031         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
4032
4033         Radar 4301047
4034         * c-parse.in (objc_quals): Build objc qualifier list same way
4035         as gcc-3.3
4036
4037 2010-10-18  Jan Hubicka  <jh@suse.cz>
4038
4039         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
4040         function_and_variable_visibility): Revert accidental commit.
4041
4042 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4043
4044         Merge from 'apple/trunk' branch on FSF servers.
4045         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
4046         the following Objective-C change:
4047
4048         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
4049
4050         Radar 4204796
4051         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
4052         'volatilized' type used in a typeof operator.
4053
4054 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
4055
4056         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
4057         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
4058         rewrite modelled on gimple_purge_dead_eh_edges.
4059         (gimple_purge_all_dead_abnormal_call_edges): New function.
4060         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
4061         directly instead of through gimple_purge_dead_abnormal_call_edges.
4062         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
4063         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
4064         removed AB side-effects from one of its statements.
4065         (init_pre): Initialize need_ab_cleanup.
4066         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
4067         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
4068
4069 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4070
4071         PR c/46015
4072         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
4073         on computed goto argument.
4074
4075 2010-10-18  Richard Guenther  <rguenther@suse.de>
4076
4077         PR tree-optimization/45967
4078         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
4079         (could_have_pointers): Likewise.
4080         (handle_rhs_call, handle_const_call, handle_pure_call,
4081         find_func_aliases, intra_create_variable_infos): Remove calls to them.
4082         (struct fieldoff): Add must_have_pointers field.
4083         (type_must_have_pointers): New function.
4084         (field_must_have_pointers): Likewise.
4085         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
4086         Adjust field merging.
4087         (create_function_info_for): May-have-pointers of varinfo is
4088         almost always true.
4089         (create_variable_info_for_1): Likewise.
4090
4091 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
4092
4093         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
4094         of operands to vec_concat.
4095
4096 2010-10-18  Richard Guenther  <rguenther@suse.de>
4097
4098         PR lto/44950
4099         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
4100         also clear references to entries of it.
4101
4102 2010-10-18  Andi Kleen  <ak@linux.intel.com>
4103
4104         PR other/43448
4105         * gccbug.in: Remove.
4106         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
4107         (doc, distclean, install-common): Remove reference to gccbug.
4108         * configure: Regenerate.
4109         * configure.ac (all_outputs): Remove gccbug.
4110         * doc/configfiles.texi: Remove references to gccbug.
4111         * doc/sourcebuild.texi: Dito.
4112
4113 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4114
4115         PR middle-end/46019
4116         * fold-const.c (fold_binary_loc): If integer_pow2p has
4117         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
4118
4119 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4120             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4121
4122         * gengtype.c (verbosity_level): Add variable.
4123         (set_gc_used): Count variables for verbosity.
4124         (close_output_files): Backing up files, counting written ones
4125         verbosily.
4126         (write_types): Count emitted functions for verbosity. Added
4127         debug messages.
4128         (write_enum_defn): Count structures for verbosity. Added debug
4129         messages.
4130         (gengtype_long_options): Add "verbose" & "backupdir".
4131         (print_usage): Ditto.
4132         (main): Verbose display of parsed files.
4133
4134         * gengtype.h (verbosity_level): Add declaration.
4135
4136 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4137
4138         * gengtype.c (parse_program_options): Add allocation of
4139         plugin_files, and correct test on nb_plugin_files.
4140
4141 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4142
4143         Merge from 'apple/trunk' branch on FSF servers.
4144
4145         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
4146
4147         Radar 4133425
4148         * c-decl.c (undeclared_variable): Issue diagnostic on
4149         private 'ivar' access.
4150
4151 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4152
4153         PR target/46051
4154         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
4155         generated sequence to match *avx_vperm2f128<mode>_nozero.
4156         (vec_interleave_lowv4df): Ditto.
4157         (vec_interleave_highv8sf): Ditto.
4158         (vec_interleave_lowv8sf): Ditto.
4159
4160 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
4161
4162         * libgcov.c (create_file_directory): Enable it for win32 case.
4163         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
4164         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
4165         (GCOV_PREFIX_SKIP): Likewise.
4166
4167 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4168
4169         * doc/objc.texi (GNU Objective-C runtime API): New section.
4170         (Modern GNU Objective-C runtime API): New section.
4171         (Traditional GNU Objective-C runtime API): New section.
4172         (Executing code before main): Mention that this section is
4173         specific to the GNU Objective-C runtime.
4174         (Garbage Collection): Same.
4175
4176 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4177
4178         * c-parser.c (c_parser_for_statement): Move initialization of
4179         cond and incr before if.
4180
4181 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
4182
4183         * target.def (preferred_output_reload_class): New hook.
4184         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
4185         * doc/tm.texi: Regenerate.
4186         * targhooks.c (default_preferred_output_reload_class): New function.
4187         * targhooks.h (default_preferred_output_reload_class): Declare.
4188         * reload.c (find_dummy_reload): Change rclass argument type from
4189         enum reg_class to reg_class_t. Change this_alternative array type
4190         from enum reg_class to reg_class_t.
4191         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4192         (push_reload): Change preferred_class variable type to reg_class_t.
4193         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4194         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
4195         argument type from enum reg_class to reg_class_t. Use
4196         HARD_REGISTER_NUM_P predicate.
4197         * recog.h (reg_fits_class_p): Update prototype.
4198
4199         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4200         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
4201         Remove.
4202         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
4203         static. Change regclass argument and result types from enum reg_class
4204         to reg_class_t.
4205         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4206
4207 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
4208
4209         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
4210         visibility enum, and handle @package.
4211
4212 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4213
4214         * doc/objc.texi (What you can and what you cannot do in +load):
4215         Document that sending messages to constant string objects in +load
4216         is not guaranteed to work.
4217
4218 2010-10-16  Jan Hubicka  <jh@suse.cz>
4219
4220         PR middle-end/44206
4221         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
4222         existence of refrences before removing the function.
4223
4224 2010-10-16  Jan Hubicka  <jh@suse.cz>
4225
4226         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
4227         only_called_at_startup and only_called_at_exit.
4228         (cgraph_propagate_frequency): Compute only_called_at_startup and
4229         only_called_at_exit.
4230         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
4231         only_called_at_exit.
4232         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
4233         flags.
4234         * predict.c (compute_function_frequency): Initialize the new flags.
4235
4236 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
4237
4238         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
4239         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
4240         on the bounds of its domain.
4241         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
4242
4243 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
4244
4245         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
4246         * config/avr/avr-protos.h (preferred_reload_class): Remove.
4247         * config/avr/avr.c (preferred_reload_class): Remove.
4248         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
4249         * config/pa/pa.c (emit_move_sequence): Update comment
4250         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
4251         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
4252         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
4253         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
4254         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
4255         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
4256         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
4257         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
4258         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
4259         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
4260         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
4261         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
4262         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
4263
4264 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
4265
4266         * opts.c (set_fast_math_flags,
4267         set_unsafe_math_optimizations_flags): Make static.
4268         * toplev.h (set_fast_math_flags,
4269         set_unsafe_math_optimizations_flags): Remove prototypes.
4270
4271 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
4272
4273         * config/arm/arm.c (arm_option_optimization): Set
4274         flag_section_anchors to 1 not 2.
4275         * config/i386/i386.c (ix86_option_override_internal): Check
4276         global_options_set.x_flag_zee and
4277         global_options_set.x_flag_omit_frame_pointer.
4278         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
4279         flag_zee to 2.
4280         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
4281         global_options_set.x_flag_omit_frame_pointer.
4282         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
4283         opts->x_flag_section_anchors to 1 not 2.
4284         * config/sh/sh.c (sh_option_optimization): Don't set
4285         flag_schedule_insns to 2.
4286         (sh_option_override): Check
4287         global_options_set.x_flag_schedule_insns.
4288         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
4289
4290 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
4291
4292         * configure.ac: Make sure inhibit_libc remains false for mingw targets
4293         as cross.
4294         * configure: Regenerated.
4295
4296 2010-10-15  Xinliang David Li  <davidxl@google.com>
4297
4298         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
4299         function.
4300         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
4301         into a recursive function.
4302
4303 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
4304
4305         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
4306         (*movdfcc_1): ditto.
4307
4308 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4309
4310         * target.def (target_option.init_struct): New hook.
4311         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
4312         * doc/tm.texi: Regenerate.
4313         * hooks.c (hook_void_gcc_optionsp): New.
4314         * hooks.h (hook_void_gcc_optionsp): Declare.
4315         * langhooks-def.h (lhd_init_options_struct): Remove.
4316         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
4317         * langhooks.c (lhd_init_options_struct): Remove.
4318         * opts.c (init_options_struct): Also call
4319         targetm.target_option.init_struct.
4320         * config/i386/i386.c (ix86_option_init_struct,
4321         TARGET_OPTION_INIT_STRUCT): New.
4322         (ix86_option_optimization): Move some settings to
4323         ix86_option_init_struct.
4324         * config/pdp11/pdp11.c (pdp11_option_init_struct,
4325         TARGET_OPTION_INIT_STRUCT): New.
4326         (pdp11_option_optimization): Move some settings to
4327         pdp11_option_init_struct.
4328         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
4329         rs6000_option_init_struct.  Use options structure pointer.
4330         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
4331         * config/s390/s390.c (s390_option_init_struct,
4332         TARGET_OPTION_INIT_STRUCT): New.
4333         (s390_option_optimization): Don't set
4334         flag_asynchronous_unwind_tables here.
4335         * config/sh/sh.c (sh_option_init_struct,
4336         TARGET_OPTION_INIT_STRUCT): New.
4337         (sh_option_optimization): Don't set flag_finite_math_only here.
4338         * config/spu/spu.c (spu_option_optimization): Replace by
4339         spu_option_optimization.  Use options structure pointer.
4340         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
4341
4342 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4343
4344         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
4345
4346         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
4347         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
4348         (Standard names): Document fma.
4349
4350         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
4351         __FP_FAST_FMAF, __FP_FAST_FMAL.
4352
4353         * builitns.c (expand_builtin_mathfn_ternary): New function for
4354         expanding ternary math functions, like fma.
4355         (expand_builtin): Call it for the fma builtins.
4356
4357         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
4358         ops at present.
4359
4360         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
4361         vectorizable functions to support vectorizing fma.
4362
4363         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4364         Handle fma builtins.
4365
4366         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
4367         (UNSPEC_VSX_MSUB): Ditto.
4368         (UNSPEC_VSX_NMADD): Ditto.
4369         (UNSPEC_VSX_NMSUB): Ditto.
4370         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
4371         of UNSPEC. Renumber combiner patterns.
4372         (vsx_fmsub<mode>4*): Ditto.
4373         (vsx_fnmadd<mode>4*): Ditto.
4374         (vsx_fnmsub<mode>4*): Ditto.
4375
4376         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
4377         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
4378         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
4379         (altivec_vmaddfp_1): Ditto.
4380         (altivec_vmaddfp_2): Ditto.
4381         (atlivec_mulv4sf3): Ditto.
4382         (altivec_vnmsubfp): Ditto.
4383         (altivec_vnmsubfp_1): Ditto.
4384         (altivec_vnmsubfp_2): Ditto.
4385         (altivec_vnmsubfp_3): Delete.
4386
4387         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
4388         (fmasf4_fpr): Ditto.
4389         (fmssf4_fpr): Ditto.
4390         (fnmasf4_fpr): Ditto.
4391         (fnmssf4_fpr): Ditto.
4392         (fmadf4): Ditto.
4393         (fmadf4_fpr): Ditto.
4394         (fmsdf4_fpr): Ditto.
4395         (fnmadf4_fpr): Ditto.
4396         (fnmsdf4_fpr): Ditto.
4397
4398         * optabs.h (OTI_fma): Add fma optab.
4399         (fma_optab): Ditto.
4400
4401         * genopinit.c (optabs): Set fma optab.
4402
4403         * rtl.def (FMA): Add FMA rtl.
4404
4405         * tree.h (mode_has_fma): New function to return if MODE supports a
4406         fast multiply and add instruction.
4407         * builtins.c (mode_has_fma): Ditto.
4408
4409 2010-10-15  Jan Hubicka  <jh@suse.cz>
4410
4411         * lto-streamer-out.c (write_symbol): Use pointer set of seen
4412         objects instead of bitmap.
4413         (produce_symtab): Likewise; output defined symbols first.
4414
4415 2010-10-15  Jie Zhang  <jie@codesourcery.com>
4416
4417         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
4418         Option Summary and Index.
4419
4420 2010-10-15  Richard Guenther  <rguenther@suse.de>
4421
4422         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
4423         for automatic variables again.
4424
4425 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4426
4427         * doc/extend.texi (Variable Length): Don't refer to VLAs not
4428         conforming to C99.
4429
4430 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4431
4432         * config/rx/rx.c (rx_option_optimization): Change to
4433         rx_override_options_after_change.  Don't change
4434         flag_lto_compression_level.  Don't check for changes to whether
4435         FPU instructions can be used.  Check and set only
4436         flag_finite_math_only, not other fast-math flags.
4437         (rx_option_override): Call rx_override_options_after_change.
4438         (TARGET_OPTION_OPTIMIZATION): Remove.
4439         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4440
4441 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4442
4443         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
4444         disable section anchors for lang_hooks.name[4] != 'O'.
4445
4446 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4447
4448         * config/frv/frv.c (frv_option_optimization,
4449         TARGET_OPTION_OPTIMIZATION): Remove.
4450         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
4451
4452 2010-10-15  Michael Matz  <matz@suse.de>
4453
4454         * cgraphunit.c (clone_of_p): Define unconditionally.
4455
4456 2010-10-15  Richard Guenther  <rguenther@suse.de>
4457
4458         PR lto/45957
4459         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
4460
4461 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
4462
4463         * ifcvt.c (find_active_insn_before): New function.
4464         (find_active_insn_after): New function.
4465         (cond_exec_process_if_block): Use new functions to replace
4466         prev_active_insn() and next_active_insn().
4467
4468 2010-10-14  Yao Qi  <yao@codesourcery.com>
4469
4470         PR target/45447
4471         * config/arm/arm.c (arm_build_builtin_va_list): Assign
4472         va_list_name to TYPE_STUB_DECL (va_list_type).
4473
4474 2010-10-14  Jan Hubicka  <jh@suse.cz>
4475
4476         PR middle-end/45621
4477         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
4478         redirected to clone, be happy.
4479         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
4480         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
4481         former_clone_of unconditionally.
4482
4483 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
4484
4485         Merge from FSF apple 'trunk' branch.
4486         2006 Fariborz Jahanian  <fjahanian@apple.com>
4487
4488         Radars 4436866, 4505126, 4506903, 4517826
4489         * c-parser.c (c_parser, objc_property_attr_context) New flag.
4490         (c_lex_one_token): Handle property attributes.
4491         (c_parser_external_declaration): Handle @property.
4492         (c_parser_declaration_or_fndef): Warn on invalid attributes before
4493         @alias, @class, @end and @property objc keywords.
4494         (c_parser_objc_methodprotolist): Handle @property.
4495         (c_parser_objc_property_attrlist): New.
4496         (c_parser_objc_at_property): New.
4497         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
4498         (build_modify_expr): Likewise.
4499
4500 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
4501
4502         PR tree-optimization/46008
4503         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
4504
4505 2010-10-14  Richard Guenther  <rguenther@suse.de>
4506
4507         PR tree-optimization/44913
4508         * tree-data-ref.c (disjoint_objects_p): Remove.
4509         (dr_may_alias_p): Simplify.  Only hand the base object to
4510         the alias-oracle.
4511         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4512         some more trees, bail out instead of asserting.
4513         (ptr_derefs_may_alias_p): Likewise.  Export.
4514         (refs_may_alias_p_1): Handle STRING_CSTs.
4515         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
4516
4517 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
4518
4519         PR c/45969
4520         * c-typeck.c (build_binary_op): Don't try to compute a semantic
4521         type with excess precision for boolean operations.
4522
4523 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
4524             Basile Starynkevitch  <basile@starynkevitch.net>
4525
4526         * gengtype.c:  Include getopt.h and version.h.
4527
4528         (lang_bitmap, struct outf, outf_p)
4529         (get_output_file_with_visibility, oprintf): Definitions moved to
4530         gengtype.h
4531         (output_files, header_file, srcdir, srcdir_len, this_file)
4532         (do_dump): No more static variables.
4533         (do_debug): New.
4534         (dbgprint_count_type_at): Added new function.
4535         (gengtype_long_options): New.
4536         (print_usage, print_version, parse_program_options): New.
4537         (main): Call parse_program_options, and removed old option
4538         handling code.  Added some debug output.
4539
4540         * gengtype.h:  Updated copyright year.
4541         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
4542         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
4543         Moved from gengtype.c to here.
4544         (do_debug, read_state_filename, write_state_filename): New variables.
4545         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
4546
4547         * Makefile.in:
4548         (REVISION): Always defined.
4549         (version.o): Removed ifdef REVISION_c.
4550         (s-gtype): Pass arguments to build/gengtype program.
4551         (build/version.o): Added building rule.
4552         (build/gengtype$(build_exeext)): Added build/version.o.
4553
4554 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
4555
4556         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
4557         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
4558         __strong macros.
4559
4560 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
4561
4562         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
4563         may_trap_or_fault_p instead of may_trap_p predicate.
4564         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
4565         (substitute_placeholder_in_expr): Likewise.
4566         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
4567         flag on MEM_REF nodes.
4568         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
4569         flags on INDIRECT_REF nodes.
4570
4571 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
4572
4573         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
4574         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
4575         (arm*-*-eabi*) <tm_file>: Likewise.
4576         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
4577         (frv-*-*linux*) <tm_file>: Likewise.
4578         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
4579         and associated helper macros.
4580         * config/frv/frv-abi.h: Delete.
4581
4582 2010-10-14  Richard Guenther  <rguenther@suse.de>
4583
4584         PR lto/44561
4585         * tree.def (NULLPTR_TYPE): New tree code.
4586         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
4587         * dwarf2out.c (is_base_type): Likewise.
4588         (gen_type_die_with_usage): Likewise.
4589         * sdbout.c (plain_type_1): Likewise.
4590         * tree.c (build_int_cst_wide): Likewise.
4591         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
4592
4593 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
4594
4595         * params.c (params_finished): New.
4596         (add_params): Assert !params_finished.
4597         (finish_params): New.
4598         (set_param_value_internal): Take params and params_set
4599         parameters.  Assert params_finished.
4600         (set_param_value, maybe_set_param_value): Take params and
4601         params_set parameters.  Update calls to set_param_value_internal.
4602         (set_default_param_value): Assert !params_finished.  Don't use
4603         set_param_value_internal.
4604         (default_param_value, init_param_values): New.
4605         * params.h (struct param_info): Change value to default_value.
4606         Remove set.
4607         (set_param_value, maybe_set_param_value): Add params and
4608         params_set parameters.
4609         (PARAM_VALUE): Get parameters from global_options.
4610         (PARAM_SET_P): Remove.
4611         (finish_params, default_param_value, init_param_values): New.
4612         * common.opt (param_values): New Variable.
4613         * config/arm/arm.c (arm_option_override): Pass extra arguments to
4614         maybe_set_param_value.
4615         * config/i386/i386.c (ix86_option_override_internal): Pass extra
4616         arguments to maybe_set_param_value.
4617         * config/picochip/picochip.c (picochip_option_override): Pass
4618         extra arguments to maybe_set_param_value.
4619         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
4620         extra arguments to maybe_set_param_value.
4621         * config/s390/s390.c (s390_option_override): Use
4622         maybe_set_param_value instead of set_param_value.  Pass extra
4623         arguments to maybe_set_param_value.
4624         * config/sparc/sparc.c (sparc_option_override): Pass extra
4625         arguments to maybe_set_param_value.
4626         * config/spu/spu.c (spu_option_override): Pass extra arguments to
4627         maybe_set_param_value.
4628         * opts.c (handle_param): Take opts and opts_set parameters.
4629         Update call to set_param_value.
4630         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
4631         initial_loop_invariant_max_bbs_in_loop): Remove.
4632         (init_options_once): Don't set them.
4633         (init_options_struct): Initialize parameters structures.
4634         (default_options_optimization): Use default_param_value when
4635         restoring defaults.  Update calls to maybe_set_param_value.
4636         (finish_options): Update calls to maybe_set_param_value.
4637         (common_handle_option): Update calls to handle_param and
4638         set_param_value.
4639         * toplev.c (DEFPARAM): Update definition for changes to param_info.
4640         (general_init): Call finish_params.
4641
4642 2010-10-14  Nick Clifton  <nickc@redhat.com>
4643
4644         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
4645         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
4646         (FIRST_PSEUDO_REGISTER): Increase by one.
4647         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
4648         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
4649         (MODES_TIEABLE): Call mn10300_modes_tieable.
4650         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
4651         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
4652         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
4653         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
4654         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
4655         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
4656         (mn10300_cc_status_mdep): Delete.
4657         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
4658         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
4659         the combine-stack-adjust pass.
4660         (print_operand): Use the mode of the comparison operation to
4661         select the comparison suffix.
4662         (notice_update_cc): Delete.
4663         (mn10300_secondary_reload_class): Remove test for stack pointer
4664         based arithmetic.
4665         (output_tst): Rename to mn10300_output_cmp.
4666         (impossible_plus_operand): Move into predicates.md.
4667         (mn10300_legitimize_address): Make static.
4668         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
4669         constant pic operands.
4670         (mn10300_legitimate_constant_p): New function.
4671         (mn10300_case_values_threshold): Make static.
4672         (mn10300_hard_regno_mode_ok): New function.
4673         (mn10300_modes_tieable): New function.
4674         (mn10300_select_cc_mode): New function.
4675         * config/mn10300/predicates.md (impossible_plus_operand): Define.
4676         * config/mn10300/mn10300-protos.h: Tidy.
4677         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
4678         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
4679         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
4680         with clobbers or sets of CC_REG.
4681         (CC_REG): Define.
4682         (mov*): Remove use of CLR instruction.
4683         (cbranch_si4_<code>): New pattern/split.
4684         (integer_conditional_branch): New pattern.
4685         (cbranch_sf4_<code>): New pattern/split.
4686         (float_conditional_branch): New pattern.
4687         (casesi): Use addsi3 pattern instead of movsi pattern to add and
4688         move a value at the same time.
4689         (cc0 peepholes): Remove.
4690
4691 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
4692
4693         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
4694         on RTX_FRAME_RELATED_P insns and the insn to which
4695         NOTE_INSN_EPILOGUE_BEG is attached.
4696         * sched-vis.c (print_value): Allow NULL value.
4697
4698 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
4699
4700         PR rtl-optimization/45570
4701         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
4702         assert that we are pipelining outer loops.  Allow returning
4703         zero predecessors.
4704
4705 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
4706
4707         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
4708         (tidy_control_flow): Tidy vertical space.
4709         (sel_remove_bb): New variable idx.  Use it to remember the basic
4710         block index before deleting the block.
4711         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
4712         (sel_merge_blocks): ... here.
4713         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
4714
4715 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
4716
4717         * cse.c (is_dead_reg): Change into inline function that is not
4718         called through for_each_rtx.
4719         (set_live_p): Adjust caller.
4720         (insn_live_p): Don't reset DEBUG_INSNs here.
4721         (struct dead_debug_insn_data): New data.
4722         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
4723         (delete_trivially_dead_insns): If there is just one setter for the
4724         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
4725         and add DEBUG_INSN for it right before the removed setter and
4726         use the DEBUG_EXPR instead of the dead pseudo.
4727
4728 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
4729
4730         * et-forest.c (et_nca): Return NULL immediately when
4731         the dominance forest has disjoint components.
4732
4733 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
4734
4735         * ira.c (setup_class_hard_regs): Fix typo in indexing
4736         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
4737
4738 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
4739
4740         * graph.c (inbb): New variable.
4741         (start_bb): Set inbb to 1 if output is inside of a building block.
4742         (end_bb): Check if output is inside of a building block.
4743
4744 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
4745
4746         PR rtl-optimization/45912
4747         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
4748         regno of registers instead of their index to compute the alignment.
4749
4750 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
4751
4752         * config/i386/i386.c (ix86_build_const_vector): Check vector
4753         mode instead of scalar mode.
4754         (ix86_build_signbit_mask): Likewise.
4755         (ix86_expand_fp_absneg_operator): Updated.
4756         (ix86_expand_copysign): Likewise.
4757         (ix86_expand_int_vcond): Likewise.
4758         (ix86_emit_swdivsf): Likewise.
4759         (ix86_sse_copysign_to_positive): Likewise.
4760         (ix86_expand_sse_fabs): Likewise.
4761         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
4762         * config/i386/sse.md (copysign<mode>3): Likewise.
4763         (sse2_cvtudq2ps): Likewise.
4764         (vec_unpacku_float_hi_v4si): Likewise.
4765         (vec_unpacku_float_lo_v4si): Likewise.
4766
4767         * config/i386/i386.c (ix86_builtins): Add
4768         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
4769         (bdesc_args): Likewise.
4770         (ix86_builtin_vectorized_function): Support
4771         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
4772         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
4773         and IX86_BUILTIN_CVTPS2DQ256.
4774         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
4775
4776         * config/i386/sse.md (STORENT_MODE): New.
4777         (VEC_FLOAT_MODE): Likewise.
4778         (VEC_EXTRACT_MODE): Likewise.
4779         (*avx_cvtdq2pd256_2): Likewise.
4780         (vec_pack_trunc_v4df): Likewise.
4781         (vec_interleave_highv8sf): Likewise.
4782         (vec_interleave_lowv8sf): Likewise.
4783         (storent<mode>): Macroized.
4784         (<code><mode>2: absneg): Likewise.
4785         (copysign<mode>3): Likewise.
4786         (vec_extract<mode>): Likewise.
4787
4788         PR target/44180
4789         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
4790         for V8SFmode.
4791
4792 2010-10-13  Richard Guenther  <rguenther@suse.de>
4793             H.J. Lu  <hongjiu.lu@intel.com>
4794
4795         * config/i386/sse.md (reduc_splus_v8sf): Add.
4796         (reduc_splus_v4df): Likewise.
4797         (vec_unpacks_hi_v8sf): Likewise.
4798         (vec_unpacks_lo_v8sf): Likewise.
4799         (*avx_cvtps2pd256_2): Likewise.
4800         (vec_unpacks_float_hi_v8si): Likewise.
4801         (vec_unpacks_float_lo_v8si): Likewise.
4802         (vec_interleave_highv4df): Likewise.
4803         (vec_interleave_lowv4df): Likewise.
4804
4805 2010-10-13  Richard Guenther  <rguenther@suse.de>
4806
4807         PR objc/45878
4808         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
4809         alone if there are no virtual methods.
4810
4811 2010-10-13  Richard Henderson  <rth@redhat.com>
4812
4813         * expr.c (build_personality_function): Take parameter LANG instead
4814         of parameter NAME.  Build the name based on the lang prefix and the
4815         unwind method in use.
4816         * tree.c (lhd_gcc_personality): Update call to
4817         build_personality_function.
4818
4819 2010-10-13  Richard Guenther  <rguenther@suse.de>
4820
4821         PR objc/45878
4822         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
4823
4824 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
4825
4826         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
4827         Canonicalize input operands of ASM_OPERANDS insns.
4828
4829 2010-10-13  Richard Guenther  <rguenther@suse.de>
4830
4831         PR tree-optimization/45788
4832         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
4833         EH update until fixup-cfg.
4834
4835 2010-10-13  Julian Brown  <julian@codesourcery.com>
4836
4837         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
4838         from CORE_REGS and GENERAL_REGS classes.
4839         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
4840         final constraint for register preferencing.
4841
4842 2010-10-13  Richard Guenther  <rguenther@suse.de>
4843
4844         PR tree-optimization/45970
4845         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
4846         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
4847         (stmt_kills_ref_p): Likewise.
4848         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
4849
4850 2010-10-13  Richard Guenther  <rguenther@suse.de>
4851
4852         PR tree-optimization/45982
4853         * tree-ssa-structalias.c (make_constraints_to): New function.
4854         (make_constraint_to): Implement in terms of make_constraints_to.
4855         (find_func_aliases): Properly make return values of pure/const
4856         functions escape if they assign to sth that is not a pointer.
4857
4858 2010-10-13  Richard Guenther  <rguenther@suse.de>
4859
4860         PR middle-end/45874
4861         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
4862         Fixup the CFG when EH was fixed up.
4863
4864 2010-10-13  Ira Rosen  <irar@il.ibm.com>
4865
4866         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
4867         Use operand's type for POINTER_PLUS_EXPR.
4868
4869 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
4870
4871         * c-parser.c (c_parser_for_statement): Initialize incr.
4872
4873 2010-10-12  Xinliang David Li  <davidxl@google.com>
4874
4875         PR tree-optimization/45972
4876         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
4877         with too many arguments.
4878
4879 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR fortran/45636
4882         * tree-ssa-forwprop.c: Include expr.h.
4883         (constant_pointer_difference, simplify_builtin_call): New functions.
4884         (tree_ssa_forward_propagate_single_use_vars): Call
4885         simplify_builtin_call on builtin calls.
4886
4887 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
4888
4889         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
4890         (*adddi3_extend_sp32): Likewise.
4891         (*subdi3_insn_sp32): Likewise.
4892         (*subdi3_extend_sp32): Likewise.
4893         (*negdi2_sp32): Use negative test for consistency.
4894
4895 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
4896
4897         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
4898         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
4899         * config/fixed-bit.h: Likewise.
4900         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
4901         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
4902         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
4903         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
4904         (DF_SIZE): Likewise.
4905         * doc/tm.texi: Regenerate.
4906
4907 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
4908
4909         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
4910         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
4911         (*isel_reversed_unsigned_<mode>): New.
4912         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
4913         as valid comparisons and adjust operands and output appropriately.
4914         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
4915
4916 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
4917
4918         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
4919         DATA_ALIGNMENT and add COND parameter. Update comments above.
4920         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
4921         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
4922
4923 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
4924
4925         PR bootstrap/45958
4926         * exec-tool.in: Support '-plugin' as the second option to the linker.
4927
4928 2010-10-12  Richard Henderson  <rth@redhat.com>
4929
4930         PR middle-end/45962
4931         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
4932         (expand_stack_vars): Assert large base allocated when used.
4933
4934 2010-10-12  Richard Guenther  <rguenther@suse.de>
4935
4936         * tree-ssa-structalias.c (get_constraint_for_1): Constants
4937         only point to nonlocal, not anything.
4938
4939 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
4940
4941         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
4942         unwind info for exceptions.
4943
4944 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4945
4946         PR testsuite/45851
4947         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
4948         Document optional target selector.
4949
4950 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
4951
4952         * flag-types.h: New.
4953         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
4954         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
4955         options.h.
4956         (OPTIONS_H): Define.
4957         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
4958         of options.h.
4959         * configure.ac (tm_include_list): Include options.h not flags.h.
4960         * configure: Regenerate.
4961         * flags.h: Include flag-types.h.  Include options.h at top of file
4962         again.
4963         (enum debug_info_type, enum debug_info_level, enum
4964         debug_info_usage, enum symbol_visibility, struct visibility_flags,
4965         enum ira_algorithm, enum ira_region, enum excess_precision, enum
4966         graph_dump_types, enum stack_check_type,
4967         enum warn_strict_overflow_code): Move to flag-types.h
4968         * opth-gen.awk: Include flag-types.h in options.h.
4969
4970 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
4971
4972         * expr.c (store_expr): Share code for STRING_CST and
4973         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
4974         check if target is a MEM.
4975
4976         * rtl.h: Include hashtab.h.
4977         (iterative_hash_rtx): New prototype.
4978         * rtl.c (iterative_hash_rtx): New function.
4979         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
4980         (output_loc_list): Return immediately if emitted is set, set it.
4981         (hash_loc_operands, hash_locs, hash_loc_list,
4982         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
4983         optimize_location_lists_1, optimize_location_lists): New function.
4984         (dwarf2out_finish): Call optimize_location_lists.
4985         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
4986
4987 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4988
4989         PR testsuite/45974
4990         Revert:
4991         * Makefile.in ($(lang_checks_parallel))
4992         ($(lang_checks_parallelized)): Use single quotes for
4993         $(RUNTESTFLAGS), to allow passing quoted content.
4994
4995 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4996
4997         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
4998         actual_oldval.  Use __builtin_expect.
4999         (SUBWORD_VAL_CAS): Likewise.
5000
5001 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5002
5003         * recog.c (nonmemory_operand): Call immediate_operand for
5004         CONSTANT_P operands.
5005
5006 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
5007
5008         * config/i386/i386.md (movmem<mode>): Macroize expander from
5009         movmem{si,di} using SWI48 mode iterator.
5010         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
5011         *strmovsi_rex_1 using P mode iterator.
5012         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
5013         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
5014         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
5015         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
5016         (setmem<mode>): Macroize expander from setmem{si,di} using
5017         SWI48 mode iterator.
5018         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
5019         *strsetsi_rex_1 using P mode iterator.
5020         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
5021         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
5022         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
5023         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
5024         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
5025         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
5026         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
5027         mode iterator.
5028         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
5029         *strlenqi_rex_1 using P mode iterator.
5030
5031 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
5032
5033         PR bootstrap/45445
5034         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
5035         static functions.
5036         (mark_ref_live, mark_ref_dead): Use them.
5037         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
5038         Save the original reg, and use the new functions.
5039         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
5040         changed.
5041         (check_and_make_def_conflict): Save the original reg.
5042
5043 2010-10-11  Martin Jambor  <mjambor@suse.cz>
5044
5045         PR middle-end/45699
5046         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
5047         thunks.
5048
5049 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5050
5051         * Makefile.in ($(lang_checks_parallel))
5052         ($(lang_checks_parallelized)): Use single quotes for
5053         $(RUNTESTFLAGS), to allow passing quoted content.
5054
5055         PR bootstrap/35855
5056         * opt-functions.awk (BEGIN): New section.
5057         (lower, upper, digit, alnum): New variables.
5058         (static_var, opt_sanitized_name): Use alnum instead of character
5059         classes, for non-C locale.
5060         * optc-gen.awk: Likewise.
5061         * opth-gen.awk: Likewise.
5062
5063 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
5064
5065         * target.def (preferred_reload_class): New hook.
5066         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
5067         * doc/tm.texi: Regenerate.
5068         * targhooks.c (default_preferred_reload_class): New function.
5069         * targhooks.h (default_preferred_reload_class): Declare.
5070         * reload.c (find_dummy_reload): Change preferred_class variable type
5071         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
5072         target hook.
5073         (find_reloads): Change goal_alternative array type from int to
5074         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
5075         (push_reload, find_reloads_address_part): Use
5076         TARGET_PREFERRED_RELOAD_CLASS target hook.
5077         * reload1.c (emit_input_reload_insns): Ditto.
5078         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
5079         hook. Change rclass argument and secondary_class variable types from
5080         'enum reg_class' to reg_class_t.
5081
5082         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
5083         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
5084         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
5085         Change regclass argument and result types from enum reg_class to
5086         reg_class_t.
5087         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5088
5089 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
5090
5091         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
5092         in masking operations.
5093         (simplify_const_unary_operation): Likewise.
5094         (simplify_binary_operation_1): Likewise.
5095         (simplify_const_binary_operation): Likewise.
5096         (simplify_const_relational_operation): Likewise.
5097         (simplify_ternary_operation): Likewise.
5098         (simplify_immed_subreg): Likewise.
5099
5100 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5101
5102         PR middle-end/45862
5103         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
5104         (TARGET_SUPPORTS_WEAK): New.
5105         * doc/tm.texi: Regenerate.
5106         * defaults.h (SUPPORTS_WEAK): Update comment.
5107         (TARGET_SUPPORTS_WEAK): New.
5108         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
5109         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
5110         SUPPORTS_WEAK.
5111         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
5112         make_decl_one_only): Likewise.
5113         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
5114         TARGET_SUPPORTS_WEAK.
5115         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
5116         instead of SUPPORTS_WEAK.
5117
5118 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5119
5120         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
5121
5122 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5123
5124         * vec.h (VEC_qsort): Define.
5125         * dbxout.c (output_used_types): Use it.
5126         * df-scan.c (df_sort_and_compress_refs): Likewise.
5127         (df_sort_and_compress_mws): Likewise.
5128         * genautomata.c (uniq_sort_alt_states): Likewise.
5129         (evaluate_equiv_classes): Likewise.
5130         (output_trans_table): Likewise.
5131         (output_state): Likewise.
5132         * gimplify.c (compare_case_labels): Likewise.
5133         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
5134         * ipa.c (build_cdtor_fns): Likewise.
5135         * lto.c (lto_wpa_write_files): Likewise.
5136         * sel-sched.c (fill_vec_av_set): Likewise.
5137         * tree-predcom.c (determine_roots_comp): Likewise.
5138         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
5139         (splice_param_accesses): Likewise.
5140         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
5141         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
5142         (reassociate_bb): Likewise.
5143         * tree-ssa-sccvn.c (sort_scc): Likewise.
5144         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
5145
5146 2010-10-11  Ian Lance Taylor  <iant@google.com>
5147
5148         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
5149         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
5150         TREE_THIS_NOTRAP when appropriate.
5151         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
5152         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
5153         newly created MEM_REF.
5154
5155 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5156
5157         Nathan Froyds patch to hooks FUNCTION_ARG etc.
5158         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
5159         (picochip_incoming_function_arg): Delete.
5160         (picochip_arg_advance): Delete.
5161         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
5162         (FUNCTION_INCOMING_ARG): Delete.
5163         (FUNCTION_ARG_ADVANCE): Delete.
5164         * config/picochip/picochip.c (picochip_function_arg): Take a
5165         const_tree and a bool.
5166         (picochip_incoming_function_arg): Likewise.
5167         (picochip_arg_advance): Likewise.
5168         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5169         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5170
5171 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5172
5173         PR middle-end/45955
5174         * ipa.c (build_cdtor): Delete endless loop.
5175
5176 2010-10-07  Andi Kleen  <ak@linux.intel.com>
5177
5178         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
5179         checksum-options.
5180         (checksum-options): Add.
5181         (cc1-dummy): Remove.
5182         (cc1-checksum): Change to run checksum over object files
5183         and options only.
5184         * dummy-checksum.c: Remove.
5185         * genchecksum.c: Update copyright.
5186         (usage): Allow multiple arguments.
5187         (BLOCKSIZE): Add.
5188         (dosum): Change for incremental checksum. Remove C output.
5189         (main): Iterate over all argument files. Add C output.
5190
5191 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
5192
5193         * params.c (set_param_value_internal): New.
5194         (set_param_value): Use set_param_value_internal.
5195         (maybe_set_param_value, set_default_param_value): New.
5196         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
5197         (maybe_set_param_value, set_default_param_value): Declare.
5198         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
5199         * config/i386/i386.c (ix86_option_override_internal): Use
5200         maybe_set_param_value.
5201         * config/ia64/ia64.c (ia64_option_default_params,
5202         TARGET_OPTION_DEFAULT_PARAMS): New.
5203         (ia64_option_optimization): Move some code to
5204         ia64_option_default_params.
5205         * config/picochip/picochip.c (picochip_option_override): Use
5206         maybe_set_param_value.
5207         * config/rs6000/rs6000.c (rs6000_option_default_params,
5208         TARGET_OPTION_DEFAULT_PARAMS): New.
5209         (rs6000_option_override_internal): Use maybe_set_param_value.
5210         (rs6000_option_optimization): Move some code to
5211         rs6000_option_default_params.
5212         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
5213         * config/sh/sh.c (sh_option_default_params,
5214         TARGET_OPTION_DEFAULT_PARAMS): New.
5215         (sh_option_optimization): Move some code to sh_option_default_params.
5216         * config/sparc/sparc.c (sparc_option_override): Use
5217         maybe_set_param_value.
5218         * config/spu/spu.c (spu_option_default_params,
5219         TARGET_OPTION_DEFAULT_PARAMS): New.
5220         (spu_option_optimization): Move some code to spu_option_default_params.
5221         (spu_option_override): Use maybe_set_param_value.
5222         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
5223         * doc/tm.texi: Regenerate.
5224         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
5225         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
5226         compiler_params.
5227         (default_options_optimization): Use maybe_set_param_value.
5228         (finish_options): Use maybe_set_param_value.
5229         * target.def (target_option.default_params): New hook.
5230         * toplev.c (general_init): Call targetm.target_option.default_params.
5231
5232 2010-10-11  Ira Rosen  <irar@il.ibm.com>
5233
5234         PR tree-optimization/45902
5235         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
5236         vector type for constants, unless it's a pointer.
5237
5238 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5239
5240         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
5241
5242 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
5243
5244         PR target/45870
5245         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
5246         (ix86_delegitimize_address): Use it.
5247
5248 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
5249
5250         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
5251
5252 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
5253
5254         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
5255         to cum struct in the call to function_arg_advance.
5256         (alpha_function_arg_advance): Mark named as unused.
5257
5258 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
5259
5260         * config/mips/mips.c (mips_handle_option): Make "value" with
5261         ATTRIBUTE_UNUSED.
5262
5263 2010-10-09  Richard Henderson  <rth@redhat.com>
5264
5265         PR rtl-opt/33721
5266         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
5267         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
5268         required_align, tidy the code a bit.  Emit split_stack code in the
5269         right place.  Mark the return value with the alignment properly.
5270         * expr.h (allocate_dynamic_stack_space): Update decl.
5271         * builtins.c (expand_builtin_apply): Update call to
5272         allocate_dynamic_stack_space.
5273         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
5274         * calls.c (initialize_argument_information): Update call to
5275         allocate_dynamic_stack_space.
5276         (expand_call): Likewise.
5277
5278         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
5279         Don't update_stack_alignment here.
5280         (alloc_stack_frame_space): Make ALIGN unsigned.
5281         (stack_var_cmp): Sort by alignment too.
5282         (partition_stack_vars): Don't merge large and small alignment vars.
5283         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
5284         Take care when BASE is not virtual_stack_vars_rtx.
5285         (expand_stack_vars): Allocate dynamic stack space for large
5286         alignment variables.
5287         (expand_one_stack_var): Update all to expand_one_stack_var_at.
5288         (defer_stack_allocation): True for large alignment vars.
5289         (update_stack_alignment): Merge into ...
5290         (expand_one_var): ... here.
5291         (gimple_expand_cfg): Place code from expand_stack_vars.
5292
5293 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5294
5295         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5296         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
5297         (pdp11_function_arg_advance): New function.
5298         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5299
5300 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5301
5302         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
5303         * libgcc2.c: Likewise.
5304
5305 2010-10-09  Richard Guenther  <rguenther@suse.de>
5306
5307         PR lto/45956
5308         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
5309         Properly check if a decl is an automatic var.
5310
5311 2010-10-09  Richard Guenther  <rguenther@suse.de>
5312
5313         PR lto/45947
5314         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
5315
5316 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5317
5318         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
5319         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5320         * config/mmix/mmix.c (mmix_function_arg): Rename to...
5321         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
5322         bool arguments.
5323         (mmix_function_arg): New function.
5324         (mmix_function_incoming_arg): New function.
5325         (mmix_function_arg_advance): New function.
5326         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5327         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5328
5329 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5330
5331         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5332         * config/vax/vax.c (vax_function_arg): New function.
5333         (vax_function_arg_advance): New function.
5334         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5335
5336 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5337
5338         * config/pa/pa-protos.h (function_arg): Delete.
5339         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5340         * config/pa/pa.c (function_arg): Rename to...
5341         (pa_function_arg): ...this.  Make static.  Take a const_tree and
5342         a bool.
5343         (pa_function_arg_advance): New function.
5344         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5345
5346 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5347
5348         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5349         * config/m68k/m68k.c (m68k_function_arg): New function.
5350         (m68k_function_arg_advance): New function.
5351         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5352
5353 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5354
5355         * config/avr/avr-protos.h (function_arg): Delete.
5356         (function_arg_advance): Delete.
5357         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5358         * config/avr/avr.c (function_arg): Rename to...
5359         (avr_function_arg): ...this.  Make static.  Take a const_tree and
5360         a bool.
5361         (function_arg_advance): Rename to...
5362         (avr_function_arg_advance): ...this.  Make static.  Take a
5363         const_tree and a bool.
5364         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5365
5366 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5367
5368         * config/alpha/alpha-protos.h (function_arg): Delete.
5369         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5370         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
5371         * config/alpha/alpha.c (function_arg): Rename to...
5372         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
5373         a bool.  Delete TARGET_ABI_UNICOSMK code.
5374         (alpha_function_arg_advance): New function.
5375         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5376
5377 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5378
5379         * config/mep/mep-protos.h (mep_function_arg): Delete.
5380         (mep_function_arg_advance): Delete.
5381         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5382         * config/mep/mep.c (mep_function_arg): Make static.  Take a
5383         const_tree and a bool.
5384         (mep_function_arg_advance): Likewise.
5385         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5386
5387 2010-10-09  Richard Guenther  <rguenther@suse.de>
5388
5389         PR tree-optimization/45945
5390         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
5391
5392 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
5393
5394         PR tree-optimization/45612
5395         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
5396         Test LABEL_DECLs as well.  Fix formatting issues.
5397         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
5398         whose label is present in NON_SSA_VARS.
5399         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
5400         as well.  Fix formatting issues.
5401         (visit_bb): Fix typos and formatting issue.
5402
5403 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5404
5405         PR tree-optimization/45950
5406         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
5407         before initializing vno->op.
5408
5409 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
5410
5411         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
5412         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
5413
5414 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
5415
5416         PR target/45913
5417         * config/i386/i386.c (ix86_binary_operator_ok): Support
5418         "andhi/andsi/anddi" as a zero-extending move.
5419
5420 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5421
5422         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
5423         into a temporary array.
5424
5425 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
5426
5427         PR tree-optimization/45903
5428         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
5429         of {A,L}SHIFTRT of MEM.
5430
5431 2010-10-08  Richard Guenther  <rguenther@suse.de>
5432
5433         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
5434         Re-construct BLOCK_VARS.
5435         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
5436         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
5437         * tree.c (free_lang_data_in_block): Remove.
5438         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
5439         Do not touch the BLOCK tree.
5440         * expr.c (expand_expr_real_1): Allow externals.
5441
5442 2010-10-08  Richard Guenther  <rguenther@suse.de>
5443
5444         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
5445         Do not output BLOCK_SUBBLOCKS.
5446         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
5447         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
5448         Re-construct BLOCK_SUBBLOCKS of parent block.
5449         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
5450         for BINFO_BASE_ACCESSES.
5451
5452 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
5453
5454         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
5455         (TREE_H): Include $(FLAGS_H) instead of options.h.
5456         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
5457         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
5458         * common.opt (flag_complex_method, flag_evaluation_order,
5459         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
5460         Variable declarations.
5461         * configure.ac (tm_include_list): Include flags.h instead of options.h.
5462         * configure: Regenerate.
5463         * flags.h: Condition out contents for target libraries.  Include
5464         options.h at end of file.
5465         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
5466         flag_evaluation_order, flag_warn_unused_result): Remove.
5467         * gcc.c (main): Intialize global_options with global_options_init.
5468         * langhooks-def.h (lhd_init_options_struct): Declare.
5469         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
5470         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
5471         * langhooks.c (lhd_init_options_struct): New.
5472         * langhooks.h (struct lang_hooks): Add init_options_struct.
5473         Update comment on init_options.
5474         * optc-gen.awk: Generate initializer for global_options_init, not
5475         global_options.
5476         * opth-gen.awk: Condition out structure declarations for target
5477         libraries.  Declare global_options_init.
5478         * opts-common.c: Include flags.h instead of options.h.
5479         * opts.c (flag_warn_unused_result): Remove.
5480         (read_cmdline_options): Take gcc_options parameters.  Pass them to
5481         read_cmdline_option.
5482         (initial_lang_mask, initial_min_crossjump_insns,
5483         initial_max_fields_for_field_sensitive,
5484         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
5485         (init_options_once): New.  Split out of decode_options.
5486         (init_options_struct): New.  Split out of decode_options.
5487         (decode_cmdline_options_to_array_default_mask): New.
5488         (default_options_optimization): New.  Split out of decode_options.
5489         (decode_options): Move most code to other functions.  Update call
5490         to read_cmdline_options.
5491         (finish_options): New.  Split out of decode_options.
5492         * opts.h (decode_options): Add gcc_options parameters.
5493         (init_options_once, init_options_struct,
5494         decode_cmdline_options_to_array_default_mask): New.
5495         * toplev.c (flag_complex_method, flag_ira_algorithm,
5496         flag_ira_region, flag_evaluation_order): Remove.
5497         (general_init): Use global_options_init for initial flag values
5498         for global_dc.
5499         (toplev_main): Call init_options_once, init_options_struct,
5500         lang_hooks.init_options_struct,
5501         decode_cmdline_options_to_array_default_mask and
5502         lang_hooks.init_option before decode_options.  Update arguments to
5503         decode_options.
5504         * tree.h: Include flags.h instead of options.h.
5505
5506 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5507
5508         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
5509
5510 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5511
5512         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
5513         Delete.
5514         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
5515         (FUNCTION_INCOMING_ARG): Delete.
5516         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
5517         (function_arg_slotno): Likewise.  Take bool arguments.
5518         (sparc_arg_partial_bytes): Update call to it.
5519         (function_arg): Rename to...
5520         (sparc_function_arg_1): ...this.  Take bool arguments.
5521         (sparc_function_arg, sparc_function_incoming_arg): New functions.
5522         (function_arg_advance): Rename to...
5523         (sparc_function_arg_advance): ...this.  Take bool argument.
5524         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
5525         (TARGET_FUNCTION_INCOMING_ARG): Define.
5526
5527 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5528
5529         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
5530         Delete.
5531         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5532         * config/bfin/bfin.c (function_arg_advance): Rename to...
5533         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
5534         and bool arguments.
5535         (function_arg): Rename to...
5536         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
5537         arguments.
5538         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5539
5540 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5541
5542         * config/score/score-protos.h (score_function_arg): Delete.
5543         (score_function_arg_advance): Delete.
5544         * config/score/score3.h (score3_function_arg_advance): Take a
5545         const_tree and a bool.
5546         (score3_function_arg): Likewise.
5547         * config/score/score7.h (score7_function_arg_advance): Likewise.
5548         (score7_function_arg): Likewise.
5549         * config/score/score3.c (score3_classify_arg): Likewise.
5550         (score3_function_arg_advance, score3_function_arg): Likewise.
5551         * config/score/score7.c (score7_classify_arg): Likewise.
5552         (score7_function_arg_advance, score7_function_arg): Likewise.
5553         * config/score/score.c (score_function_arg_advance): Likewise.
5554         (score_function_arg): Likewise.  De-const-ify `cum' argument.
5555         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5556
5557 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5558
5559         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
5560         (s390_function_arg): Delete.
5561         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5562         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
5563         (s390_function_arg_integer): Likewise.
5564         (s390_function_arg_advance): Make static.  Take a const_tree and
5565         a bool.
5566         (s390_function_arg): Likewise.
5567         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5568
5569 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5570
5571         * config/spu/spu-protos.h (spu_function_arg): Delete.
5572         * config/spu/spu.h (FUNCTION_ARG): Delete.
5573         (FUNCTION_ARG_ADVANCE): Move code to ...
5574         * config/spu/spu.c (spu_function_arg_advance): New function.
5575         (spu_function_arg): Make static.  Take a const_tree and a bool.
5576         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
5577         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5578
5579 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5580
5581         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
5582
5583 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5584
5585         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
5586         (init_vn_nary_op_from_op): New function.
5587         (init_vn_nary_op_from_stmt): New function.
5588         (vn_nary_op_lookup_1): New function.
5589         (sizeof_vn_nary_op): New function.
5590         (alloc_vn_nary_op_noinit): New function.
5591         (alloc_vn_nary_op): New function.
5592         (vn_nary_op_insert_into): New function.
5593         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
5594         (vn_nary_op_lookup): Likewise.
5595         (vn_nary_op_lookup_stmt): Likewise.
5596         (vn_nary_op_insert_pieces): Likewise.
5597         (vn_nary_op_insert): Likewise.
5598         (vn_nary_op_insert_stmt): Likewise.
5599         (copy_nary): Likewise.
5600         (set_value_id_for_result): New function.
5601         (set_hashtable_value_ids): Call it.
5602
5603 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5604
5605         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
5606         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
5607
5608 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5609
5610         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
5611         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
5612
5613 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
5614
5615         PR debug/45656
5616         * cse.c (cse_extended_basic_block): Preserve cc0 info across
5617         debug isnsn.  Skip them when searching for cc0 setter.
5618         (set_live_p): Skip debug insns when searching for cc0 user.
5619
5620 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
5621
5622         PR debug/45673
5623         PR debug/45604
5624         PR debug/45419
5625         PR debug/45408
5626         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
5627         type of MEM_REFs to INTEGER_CSTs.
5628
5629 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
5630
5631         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
5632         m68hc11_print_operand_address.
5633
5634 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
5635
5636         * builtins.c (rewrite_call_expr): Move code to...
5637         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
5638         (rewrite_call_expr_array): New function.
5639         (fold_builtin_sprintf_chk_1): New function.
5640         (fold_builtin_sprintf_chk): Call it.
5641         (gimple_fold_builtin_sprintf_chk): Likewise.
5642         (fold_builtin_snprintf_chk_1): New function.
5643         (fold_builtin_snprintf_chk): Call it.
5644         (gimple_fold_builtin_snprintf_chk): Likewise.
5645         (gimple_rewrite_call_expr): Delete.
5646
5647 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
5648
5649         * config.host: Update copyright year.
5650
5651 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
5652
5653         * config.host (host_lto_plugin_soname): New shell variable.
5654         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
5655         * config.in: Regenerate.
5656         * configure: Regenerate.
5657         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
5658         LTO plugin shared library.
5659
5660 2010-10-07  Richard Henderson  <rth@redhat.com>
5661
5662         * target.h (enum unwind_info_type): Move ...
5663         * coretypes.h: ... here.
5664
5665 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
5666
5667         * doc/objc.texi (Fast enumeration protocol): Mention that
5668         'unsigned int' can also be used instead of 'unsigned long' in
5669         countByEnumeratingWithState:objects:count:.
5670
5671 2010-10-07  Martin Jambor  <mjambor@suse.cz>
5672
5673         * tree-sra.c (struct access): New field grp_assignment_write.
5674         (dump_access): Dump grp_assignment_write.
5675         (build_accesses_from_assign): Set grp_assignment_write.
5676         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
5677         (mark_read_status): Renamed to mark_rw_status, individual values
5678         renamed too.
5679         (analyze_access_subtree): Changed type of mark_write to
5680         mark_read_status.  Fixed propagating of mark_read and
5681         mark_write.  Changed benefit estimate.  Updated comment.
5682
5683 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
5684
5685         PR Tree-Vect/45847
5686         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
5687         check for vectype_out returned by get_vectype_for_scalar_type().
5688
5689 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
5690
5691         PR target/45805
5692         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
5693         constraint, add register specifier in instruction template.
5694         (neon_vec_pack_trunc_<mode>): Likewise.
5695         (neon_vec_<US>mult_<mode>): Add register specifier to
5696         instruction template.
5697
5698 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
5699
5700         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
5701         cygwin2.o.
5702         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
5703         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
5704         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
5705         (cygwin2.o): Likewise.
5706         * config/i386/cygwin1.c: Delete file.
5707         * config/i386/cygwin2.c: Likewise.
5708         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
5709         make all {%!mno-cygwin} ones unconditional.
5710         (STARTFILE_SPEC): Likewise.
5711         (REAL_LIBGCC_SPEC): Likewise.
5712         (LIB_SPEC): Likewise.
5713         (CXX_WRAP_SPEC): Likewise.
5714         (LINK_SPEC): Likewise.
5715         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
5716         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
5717         (cygwin_gplusplus_include_dir): Delete now-unused array.
5718         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
5719         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
5720         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
5721         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
5722         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
5723         (cygwin_local_include_dir): Delete now-unused array.
5724         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
5725         (cygwin_cross_include_dir): Delete now-unused array.
5726         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
5727         (cygwin_tool_include_dir): Delete now-unused array.
5728         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
5729         (cygwin_standard_include_dir): Delete now-unused array.
5730         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
5731         (GEN_CVT_ARRAY): Delete now-unused macro definition.
5732         (cvt_to_mingw): Delete now-unused array.
5733         (mingw_scan): Remove prototype of deleted function.
5734         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
5735         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
5736         * doc/invoke.texi (-mcygwin): Don't document removed option.
5737         (-mno-cygwin): Likewise.
5738
5739 2010-10-07  Richard Guenther  <rguenther@suse.de>
5740
5741         * machmode.h (mode_for_vector): Declare.
5742         * stor-layout.c (mode_for_vector): New function, split out from ...
5743         (layout_type): ... here.
5744         * tree-vectorizer.h (current_vector_size): Declare.
5745         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
5746         mask vector type is available.
5747         (get_vectype_for_scalar_type): Rename to ...
5748         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
5749         size argument.
5750         (get_vectype_for_scalar_type): New wrapper around
5751         get_vectype_for_scalar_type_and_size using current_vector_size.
5752         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
5753         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
5754         of vect_analyze_loop here.
5755         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
5756         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
5757         to autodetect.
5758         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
5759         V8SF to V8SI conversion builtin.
5760
5761 2010-10-07  Richard Guenther  <rguenther@suse.de>
5762
5763         * target.def (autovectorize_vector_sizes): New target hook.
5764         * targhooks.c (default_autovectorize_vector_sizes): New function.
5765         * targhooks.h (default_autovectorize_vector_sizes): Declare.
5766         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
5767         Document.
5768         * doc/tm.texi: Update.
5769         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
5770         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5771
5772 2010-10-07  Richard Guenther  <rguenther@suse.de>
5773
5774         * target.def (units_per_simd_word): Rename to ...
5775         (preferred_simd_mode): ... this.  Return mode instead of size.
5776         * targhooks.c (default_units_per_simd_word): Rename to ...
5777         (default_preferred_simd_mode): ... this.  Return word_mode.
5778         * targhooks.h (default_preferred_simd_mode): Declare.
5779         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
5780         (arm_preferred_simd_mode): ... this.  Re-implement.
5781         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
5782         (ix86_preferred_simd_mode): ... this.  Re-implement.
5783         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
5784         (sparc_preferred_simd_mode): ... this.  Re-implement.
5785         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
5786         (mips_preferred_simd_mode): ... this.  Re-implement.
5787         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
5788         (rs6000_preferred_simd_mode): ... this.  Re-implement.
5789         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
5790         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
5791         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
5792         * doc/tm.texi: Update.
5793
5794 2010-10-07  Richard Guenther  <rguenther@suse.de>
5795
5796         PR middle-end/45869
5797         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
5798         of pointers.
5799
5800 2010-10-07  Alan Modra  <amodra@gmail.com>
5801
5802         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
5803         rather than sign extension by hand.
5804
5805 2010-10-07  Jan Hubicka  <jh@suse.cz>
5806
5807         PR middle-end/45926
5808         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
5809
5810 2010-10-07  Richard Guenther  <rguenther@suse.de>
5811
5812         PR bootstrap/45914
5813         * configure.ac: Fix typo.
5814         * configure: Regenerated.
5815
5816 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5817
5818         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
5819         define_builtin_std where it's unnecessary.
5820         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
5821
5822 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
5823
5824         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
5825         * doc/tm.texi.in: Regenerate.
5826         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
5827         * targhooks.c (default_class_likely_spilled_p): Don't use the
5828         CLASS_LIKELY_SPILLED_P macro.
5829
5830         * config/arm/arm.md: Update comment.
5831
5832 2010-10-06  Jan Hubicka  <jh@suse.cz>
5833
5834         * ipa.c (cgraph_remove_unreachable_nodes): External references can
5835         always be removed.
5836         (cgraph_externally_visible_p): We can not bring local comdats that
5837         are known to linker; fix handling of internal visibility.
5838         (function_and_variable_visibility): Likewise.
5839
5840 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
5841
5842         PR rtl-optimization/45394
5843         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
5844         (struct rtx_subst_pair): Remove AFTER field.
5845         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
5846         (propagate_for_debug): Remove MOVE parameter and adjust.
5847         (try_combine): In the special case where I2 is a PARALLEL, combine only
5848         destinations of SETs and set I2SRC to the I2 source.
5849         Adjust calls to propagate_for_debug throughout.
5850         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
5851         insns.
5852
5853 2010-10-06  Olivier Hainque  <hainque@adacore.com>
5854
5855         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
5856         switch on insn codes as sequence of ifs.
5857
5858 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
5859
5860         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
5861         be UI_NONE for picochip.
5862         (picochip_option_override): Do not disable exception flags.
5863         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
5864         Declare.
5865
5866 2010-10-06  Richard Guenther  <rguenther@suse.de>
5867
5868         * Makefile.in (regmove.o): Depend on $(TARGET_H).
5869
5870 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
5871
5872         Implemented fast enumeration for Objective-C.
5873         * c-parser.c (objc_could_be_foreach_context): New.
5874         (c_lex_one_token): Recognize RID_IN keyword in a potential
5875         Objective-C foreach context.
5876         (c_parser_declaration_or_fndef): Added parameter.  Accept
5877         Objective-C RID_IN keyword as terminating a declaration; in that
5878         case, return the declaration in the new parameter.
5879         (c_parser_extenral_declaration): Updated calls to
5880         c_parser_declaration_or_fndef.
5881         (c_parser_declaration_or_fndef): Same change.
5882         (c_parser_compound_statement_nostart): Same change.
5883         (c_parser_label): Same change.
5884         (c_parser_objc_methodprotolist): Same change.
5885         (c_parser_omp_for_loop): Same change.
5886         (c_parser_for_statement): Detect and parse Objective-C foreach
5887         statements.
5888         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
5889         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
5890         fast enumeration parsing code to turn off the c99 error but still
5891         perform checks on the loop declarations.
5892         * c-tree.h (check_for_loop_decls): Updated declaration.
5893         * doc/objc.texi: Document fast enumeration.
5894
5895 2010-10-06  Nick Clifton  <nickc@redhat.com>
5896
5897         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
5898         (MDR_REGNUM): Define.
5899         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
5900         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
5901         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
5902         (REGISTER_NAMES): Add MDR.
5903         (DWARF2_DEBUGGING_INFO): Define to 1.
5904         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
5905         (F): New function.  Sets RTX_FRAME_RELATED_P.
5906         (mn10300_gen_multiple_store): Use F.
5907         (expand_prologue): Use F.  Use gen_movsf() to push floating
5908         point registers.
5909         (expand_epilogue): Use gen_movsf() to pop floating point registers.
5910         (mn10300_option_override): Disable combine stack adjust pass.
5911
5912 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
5913
5914         PR target/45901
5915         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
5916         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
5917
5918 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
5919
5920         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
5921         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
5922         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
5923         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
5924         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
5925         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
5926         BUILT_IN_TOUPPER): Mark as leaf.
5927
5928         PR middle-end/45838
5929         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
5930         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
5931         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
5932         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
5933         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
5934         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
5935         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
5936
5937 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
5938
5939         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
5940         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5941         (m68hc11_class_likely_spilled_p): New function.
5942
5943 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
5944
5945         * c-parser.c (c_parser_objc_method_definition): Updated comment.
5946
5947 2010-10-05  Jan Hubicka  <jh@suse.cz>
5948
5949         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
5950         Document.
5951         * opts.c (decode_options): Handle lto partitions.
5952         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
5953         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
5954
5955 2010-10-05  Jan Hubicka  <jh@suse.cz>
5956
5957         * cgraphunit.c (assemble_function): Output thunks and aliases before
5958         the function itself.
5959
5960 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
5961
5962         * config/picochip/picochip.c (picochip_option_override): Disable
5963         exception flags for picochip.
5964
5965 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
5966
5967         * opts-common.c (handle_option, handle_generated_option,
5968         read_cmdline_option, set_option): Add diagnostic_context
5969         parameter.  Update calls among these functions.
5970         (set_option): Don't use global_dc.
5971         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
5972         (decode_options): Pass global_dc to enable_warning_as_error.
5973         (common_handle_option): Pass global_dc to enable_warning_as_error.
5974         (enable_warning_as_error): Add diagnostic_context parameter.
5975         Document parameters.  Don't use global_dc.  Pass
5976         diagnostic_context parameter to handle_generated_option.
5977         * opts.h (set_option, handle_option, handle_generated_option,
5978         read_cmdline_option, enable_warning_as_error): Add
5979         diagnostic_context parameter.
5980         * Makefile.in (lto-opts.o): Update dependencies.
5981         * coretypes.h (struct diagnostic_context, diagnostic_context):
5982         Declare here.
5983         * diagnostic.h (diagnostic_context): Don't declare typedef here.
5984         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
5985         * langhooks-def.h (struct diagnostic_context): Don't declare here.
5986         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
5987         using diagnostic_context typedef.
5988         * langhooks.c (lhd_initialize_diagnostics): Declare using
5989         diagnostic_context typedef.
5990         * langhooks.h (struct diagnostic_context): Don't declare here.
5991         (initialize_diagnostics, print_error_function): Declare using
5992         diagnostic_context typedef.
5993         * lto-opts.c: Include diagnostic.h.
5994         (lto_reissue_options): Pass global_dc to set_option.  Pass
5995         DK_UNSPECIFIED not 0.
5996         * plugin.c (plugins_internal_error_function): Declare using
5997         diagnostic_context typedef.
5998         * plugin.h (struct diagnostic_context): Don't declare here.
5999         (plugins_internal_error_function): Declare using
6000         diagnostic_context typedef.
6001
6002 2010-10-05  Olivier Hainque  <hainque@adacore.com>
6003             Nicolas Roche  <roche@adacore.com>
6004
6005         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
6006         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
6007
6008 2010-10-05  Ira Rosen  <irar@il.ibm.com>
6009
6010         PR tree-optimization/45752
6011         * tree-vect-slp.c (vect_get_mask_element): Remove static
6012         variables, make them function arguments.
6013         (vect_transform_slp_perm_load): Pass new arguments to
6014         vect_get_mask_element.
6015
6016 2010-10-05  Richard Guenther  <rguenther@suse.de>
6017
6018         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
6019         (gimple_mod_pow2): Likewise.
6020         (gimple_mod_subtract): Likewise.
6021         (gimple_ic): Likewise.
6022         (gimple_stringop_fixed_value): Likewise.
6023         * tree-profile.c (tree_init_edge_profiler): Mark profile
6024         functions nothrow and leaf.
6025         (add_abnormal_goto_call_edges): Remove.
6026         (tree_gen_edge_profiler): Work on SSA form.
6027         (tree_gen_ic_profiler): Likewise.  Simplify.
6028         (do_tree_profiling): Update SSA form.
6029         (pass_tree_profile): Remove.
6030         (do_tree_profiling): Likewise.
6031         (gate_tree_profile_ipa): New function.
6032         (pass_ipa_tree_profile): New.
6033         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
6034         state of instrumented functions.
6035         * passes.c (init_optimization_passes): Remove early non-SSA
6036         inlining.  Move profiling after early optimizations.
6037         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
6038         (pass_ipa_early_inline): Likewise.
6039         * tree-pass.h (pass_ipa_early_inline): Remove.
6040         (pass_tree_profile): Likewise.
6041         (pass_ipa_tree_profile): Declare.
6042
6043 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6044             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
6045
6046         * config/s390/s390.c (z196_cost): New.
6047         (s390_handle_arch_option): Add -march=z196.
6048         (s390_option_override): Use the new cost function and use the z10
6049         defaults also for z196.
6050         (legitimate_reload_constant_p): Adjust comment.
6051         (legitimate_reload_fp_constant_p): New function.
6052         (s390_preferred_reload_class): Distingiush between FP and Int constants.
6053         (preferred_la_operand_p): Avoid la with index on z196.
6054         (s390_adjust_priority): Trigger also for z196.
6055         (s390_issue_rate): Issue rate for z196 is 3.
6056         (s390_z10_fix_long_loop_prediction): Rename to ...
6057         (s390_fix_long_loop_prediction): ... this.
6058         (s390_reorg): Apply the z10 adjustments also for z196.
6059         (s390_loop_unroll_adjust): Do this also for z196.
6060         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
6061         (enum processor_flags): Add PF_Z196.
6062         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
6063         (TARGET_CPU_Z196, TARGET_Z196): New macros.
6064         * config.gcc: Enable z196 for --with-arch.
6065         * config/s390/2817.md: New file.
6066         * config/s390/2084.md: New type for multiply and add.
6067         * config/s390/2097.md: Likewise.
6068         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
6069         (UNSPECV_ATOMIC_OP): New constants.
6070         (fmadddf, fmaddsf): New values for type attribute.
6071         (z196prop): New insn attribute.
6072         (cpu, cpu_facility): Add z196.
6073         (ATOMIC_Z196): New code iterator.
6074         (noxa): New code attribute.
6075         (gk): New mode attribute.
6076         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
6077         Support load zero for fp constants.
6078         (fixuns_truncdddi2, fixuns_trunctddi2)
6079         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
6080         for z196.
6081         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
6082         (popcounthi2, popcountqi2): New expander.
6083         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
6084         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
6085         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
6086         insn definition.
6087         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
6088         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
6089         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
6090         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
6091         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
6092         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
6093         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
6094         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
6095         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
6096         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
6097         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
6098         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
6099         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
6100         Support new z196 instructions.
6101
6102 2010-10-05  Richard Guenther  <rguenther@suse.de>
6103
6104         PR middle-end/45877
6105         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
6106         case where gimplification optimizes away the stmt.
6107
6108 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6109
6110         PR debug/45849
6111         * var-tracking.c (strip_pointer_flags): New function.
6112         (emit_note_insn_var_location): If rtx_equal_p check failed,
6113         retry on locations simplified with simplify_replace_fn_rtx
6114         and strip_pointer_flags as its callback.
6115
6116 2010-10-04  Jan Hubicka  <jh@suse.cz>
6117
6118         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
6119         (can_refer_decl_in_current_unit_p): ... this one; reverse return
6120         value; handle comdats too.
6121         (canonicalize_constructor_val): Use it; handle function_decls
6122         correctly.
6123         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6124         * gimple.c (get_base_address): Accept all kinds of decls.
6125
6126 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6127
6128         * flags.h (g_switch_value, g_switch_set): Remove.
6129         * opts.c (g_switch_value, g_switch_set): Remove.
6130         * config/g.opt (G): Add Var(g_switch_value).
6131         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
6132         (alpha_option_override): Check global_options_set.x_g_switch_value
6133         instead of g_switch_set.
6134         (alpha_in_small_data_p): Remove cast in comparison with
6135         g_switch_value.
6136         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
6137         g_switch_value to unsigned HOST_WIDE_INT.
6138         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
6139         with g_switch_value.
6140         (frv_handle_option): Don't handle -G here.
6141         (frv_option_override): Check global_options_set.x_g_switch_value
6142         instead of g_switch_set.  Don't modify g_switch_set.
6143         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
6144         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
6145         g_switch_value to unsigned HOST_WIDE_INT.
6146         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
6147         (ia64_option_override): Check global_options_set.x_g_switch_value
6148         instead of g_switch_set.
6149         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
6150         Remove.
6151         (lm32_in_small_data_p): Remove cast in comparison with
6152         g_switch_value.
6153         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
6154         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
6155         HOST_WIDE_INT.
6156         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
6157         (m32r_init): Check global_options_set.x_g_switch_value instead of
6158         g_switch_set.
6159         (m32r_in_small_data_p): Remove cast in comparison with
6160         g_switch_value.
6161         (m32r_file_start): Format g_switch_value with %d.
6162         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
6163         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
6164         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
6165         handle -G here.
6166         (microblaze_option_override): Check
6167         global_options_set.x_g_switch_value instead of g_switch_set.
6168         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
6169         (mips_option_override): Check global_options_set.x_g_switch_value
6170         instead of g_switch_set.
6171         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
6172         (rs6000_file_start): Format g_switch_value with %d.
6173         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
6174         comparisons with g_switch_value.
6175         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6176         global_options_set.x_g_switch_value instead of g_switch_set.
6177         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
6178         global_options_set.x_g_switch_value instead of g_switch_set.
6179         * config/score/score.c (score_handle_option): Don't handle -G here.
6180         * config/score/score3.c (score3_option_override): Check
6181         global_options_set.x_g_switch_value instead of g_switch_set.
6182         * config/score/score7.c (score7_option_override): Check
6183         global_options_set.x_g_switch_value instead of g_switch_set.
6184
6185 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
6186
6187         * common.opt (fira-coalesce): Remove.
6188
6189         * doc/invoke.texi (flag_ira_coalesce): Remove.
6190
6191         * ira-color.c (allocno_coalesced_p): Move before
6192         copy_freq_compare_func.
6193         processed_coalesced_allocno_bitmap): Ditto.
6194         (update_conflict_hard_regno_costs): Don't use
6195         ALLOCNO_FIRST_COALESCED_ALLOCNO.
6196         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
6197         (assign_hard_reg): Assume no coalesced allocnos.
6198         (get_coalesced_allocnos_attributes): Remove.
6199         (bucket_allocno_compare_func): Assume no coalesced allocnos.
6200         (push_allocno_to_stack): Ditto.
6201         (remove_allocno_from_bucket_and_push): Use
6202         ira_print_expanded_allocno instead of print_coalesced_allocno.
6203         (push_allocnos_to_stack): Assume uncoalesced allocnos.
6204         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
6205         all_conflicting_hard_regs.
6206         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
6207         (setup_allocno_left_conflicts_size): Ditto.
6208         (put_allocno_into_bucket): Ditto.
6209         (copy_freq_compare_func): Remove.
6210         (copy_freq_compare_func, merge_allocnos): Move before
6211         coalesced_pseudo_reg_freq_compare.
6212         coalesced_allocno_conflict_p): Ditto.
6213         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
6214         parameter.  Assume it true.
6215         (color_allocnos): Assume uncoalesced allocnos.  Use
6216         ira_print_expanded_allocno instead of print_coalesced_allocno.
6217         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
6218         parameter.
6219
6220         * ira.c: Remove comment about coalescing.
6221
6222 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6223
6224         * config/mips/mips.h (target_flags_explicit): Declare for
6225         GENERATOR_FILE.
6226
6227 2010-10-04  Andi Kleen  <ak@linux.intel.com>
6228
6229         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
6230         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
6231
6232 2010-10-04  Matthias Klose  <doko@ubuntu.com>
6233
6234         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
6235         multilib osdirname if it exists.
6236         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
6237
6238 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6239
6240         PR middle-end/45876
6241         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
6242         arg0's type or its unsigned counterpart as utype.  Convert
6243         arg1 to utype unconditionally.
6244
6245 2010-10-04  Julian Brown  <julian@codesourcery.com>
6246
6247         * expr.c (expand_assignment): Add assertion to prevent emitting
6248         null rtx for movmisalign pattern.
6249         (expand_expr_real_1): Likewise.
6250         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
6251         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
6252         (arm_vector_alignment_reachable): New.
6253         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
6254         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
6255         (arm_print_operand): Include alignment qualifier in %A.
6256         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
6257         (movmisalign<mode>): New expander.
6258         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
6259         insn patterns.
6260
6261 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6262
6263         * optc-gen.awk: Define global_options_set.  Don't define
6264         target_flags_explicit.
6265         * opth-gen.awk: Declare global_options_set.  Define
6266         target_flags_explicit as macro.
6267         * opts-common.c (handle_option): Take opts_set and generated_p
6268         parameters.
6269         (handle_generated_option, read_cmdline_option, set_option): Take
6270         opts_set parameter.
6271         (set_option): Use opts_set instead of hardcoding target_flags and
6272         target_flags_explicit.
6273         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
6274         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
6275         flag_value_profile_transformations_set, flag_peel_loops_set,
6276         flag_branch_probabilities_set, flag_inline_functions_set,
6277         flag_ipa_cp_set, flag_ipa_cp_clone_set,
6278         flag_predictive_commoning_set, flag_unswitch_loops_set,
6279         flag_gcse_after_reload_set): Remove.
6280         (common_handle_option, lang_handle_option, target_handle_option):
6281         Take opts_set parameter.  Assert that it is &global_options_set.
6282         (common_handle_option): Don't set _set variables.  Check opts_set
6283         instead of such variables.
6284         (enable_warning_as_error): Pass &global_options_set to
6285         handle_generated_option.
6286         * opts.h (cl_option_handler_func.handler, set_option,
6287         handle_option, handle_generated_option, read_cmdline_option): Add
6288         opts_set parameters.
6289         (handle_option): Add generated_p parameter.
6290         * config/i386/i386.c (ix86_function_specific_save,
6291         ix86_function_specific_restore): Updat for renaming of
6292         target_flags_explicit field.
6293         * config/i386/i386.opt (target_flags_explicit): Rename to
6294         ix86_target_flags_explicit.
6295         * config/ia64/ia64.c (ia64_override_options_after_change): Check
6296         global_options_set.x_flag_selective_scheduling and
6297         global_options_set.x_flag_selective_scheduling2, not
6298         sel_sched_switch_set.
6299         * flags.h (sel_sched_switch_set,
6300         flag_speculative_prefetching_set): Remove.
6301         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
6302         that it is &global_options_set.
6303         (process_command): Pass &global_options_set to read_cmdline_option.
6304         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
6305         set_option.
6306         * toplev.c (target_flags_explicit): Remove.
6307
6308 2010-10-04  Jan Hubicka  <jh@suse.cz>
6309
6310         PR middle-end/45871
6311         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
6312         use get_ref_base_and_offset to handle references.
6313         (fold_const_aggregate_ref): Update.
6314
6315 2010-10-04  Martin Jambor  <mjambor@suse.cz>
6316
6317         PR tree-optimization/45572
6318         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
6319         ipa_check_create_node_params.
6320         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
6321
6322 2010-10-04  Yao Qi  <yao@codesourcery.com>
6323
6324         * doc/passes.texi: Clean up.
6325
6326 2010-10-03  Ian Lance Taylor  <iant@google.com>
6327
6328         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
6329         referring to a field using a typedef name.
6330         (find_anonymous_field_with_type): New static function.
6331         (convert_to_anonymous_field): New static function.
6332         (convert_for_assignment): If -fplan9-extensions, permit converting
6333         pointer to struct to pointer to anonymous field.
6334         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
6335         (is_duplicate_field): New static function.
6336         (detect_field_duplicates_hash): If -fplan9-extensions, check for
6337         typedef names duplicating field names.
6338         (detect_field_duplicates): Likewise.
6339         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
6340         (C Dialect Options): Document -fplan9-extensions.
6341         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
6342
6343 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
6344
6345         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
6346         revision 164914.
6347         (vect_create_data_ref_ptr): Likewise.
6348         * tree-vect-stmts.c (vectorizable_store): Likewise.
6349         (perm_mask_for_reverse): Likewise.
6350         (reverse_vec_elements): Likewise.
6351         (vectorizable_load): Likewise.
6352
6353 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6354
6355         * cppbuiltin.c: New file.
6356         * cppbuiltin.h: New file.
6357         * Makefile.in: Take into account cppbuiltin.{h,c}.
6358
6359 2010-10-03  Andi Kleen  <ak@linux.intel.com>
6360
6361         * lto-cgraph.c (input_cgraph): Check for missing sections.
6362
6363 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
6364
6365         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
6366         to nonimmediate_operand.  Force operand 2 to register when allowed.
6367         (*<shiftrt_insn><mode>3_mask): Ditto.
6368         (*<rotate_insn><mode>3_mask): Ditto.
6369
6370 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
6371
6372         PR tree-optimization/45720
6373         PR tree-optimization/45764
6374         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
6375         Don't accept backwards consecutive accesses.
6376         (vect_create_data_ref_ptr): Disallow negative steps.
6377
6378         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
6379         (perm_mask_for_reverse): Removed.
6380         (reverse_vec_elements): Likewise.
6381         (vectorizable_load): Don't handle negative steps.
6382
6383 2010-10-02  Jan Hubicka  <jh@suse.cz>
6384
6385         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
6386         call destination is known.
6387
6388 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6389
6390         PR target/45820
6391         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
6392         earlier.
6393
6394 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6395
6396         * doc/install.texi (Configuration): Document build_configargs,
6397         host_configargs, target_configargs.
6398
6399 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
6400
6401         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
6402         (*<shiftrt_insn><mode>3_mask): Ditto.
6403         (*<rotate_insn><mode>3_mask): Ditto.
6404
6405 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
6406
6407         PR tree-optimization/44716
6408         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
6409         (HOT_TEXT_SECTION_NAME): Define.
6410
6411 2010-10-01  Nick Clifton  <nickc@redhat.com>
6412
6413         * common.opt: Add -fcombine-stack-adjustments.
6414         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
6415         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
6416         flag_combine_stack_adjustments.
6417         * doc/invoke.texi: Document the new option.
6418
6419 2010-10-01  Richard Guenther  <rguenther@suse.de>
6420
6421         PR tree-optimization/45854
6422         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
6423
6424 2010-10-01  Anthony Green  <green@moxielogic.com>
6425
6426         * config.gcc: Fix moxie-*-rtems* configuration.
6427
6428 2010-10-01  Richard Guenther  <rguenther@suse.de>
6429
6430         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
6431         (gen_decl_die): Likewise.
6432
6433 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6434
6435         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
6436         to the function code for SPU MD builtins.
6437         (spu_expand_builtin): Update.
6438         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
6439
6440 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6441
6442         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
6443         sjlj_except_unwind_info.
6444
6445 2010-10-01  Tristan Gingold  <gingold@adacore.com>
6446
6447         * configure.ac: Define the nop insn for avr*-*-*
6448         * configure: Regenerate.
6449
6450 2010-10-01  Alan Modra  <amodra@gmail.com>
6451
6452         PR target/45807
6453         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
6454         extend toc_restore_insn.
6455
6456 2010-09-30  Richard Guenther  <rguenther@suse.de>
6457
6458         PR tree-optimization/43959
6459         * function.c (gimplify_parameters): Use create_tmp_reg instead of
6460         create_tmp_var.
6461
6462 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6463
6464         * config/sh/sh.c (sh_expand_prologue): Set
6465         current_function_static_stack_size.
6466
6467 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6468
6469         * configure.ac: Check for Solaris 8 ld with .hidden support.
6470         * configure: Regenerate.
6471
6472 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6473
6474         PR middle-end/45758
6475         * graphite.c (graphite_initialize): Call scev_reset.
6476
6477 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6478
6479         * sese.h (scev_analyzable_p): Return false for real or floating
6480         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
6481
6482 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6483
6484         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
6485         and ps.
6486         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
6487         domain.
6488         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
6489         Do not allocate ub_expr, it is passed in initialized.
6490
6491 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6492
6493         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
6494         (build_cloog_prog): Dump CLooG input file when
6495         flag_graphite_dump_cloog is set.  This is disabled on trunk.
6496         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
6497
6498 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6499
6500         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
6501         verify_dominators for CDI_POST_DOMINATORS.
6502         * sese.h: Remove comment about CDI_POST_DOMINATORS.
6503         (recompute_all_dominators): Remove call to free_dominance_info
6504         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
6505         for CDI_POST_DOMINATORS.
6506
6507 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6508
6509         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
6510         over pbb_dim_iter_domain.
6511
6512 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6513
6514         * graphite-flattening.c: Fix comments.
6515
6516 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6517
6518         * Makefile.in (OBJS-common): Add graphite-flattening.o.
6519         (graphite-flattening.o): New rule.
6520         * common.opt (floop-flatten): New flag.
6521         * doc/invoke.texi (-floop-flatten): Documented.
6522         * graphite-flattening.c: New.
6523         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
6524         * graphite-poly.h (flatten_all_loops): Declared.
6525         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
6526         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
6527         is set, also set flag_graphite.
6528
6529 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6530
6531         * graphite-poly.c (cloog_checksum): New.
6532         * graphite-poly.h (cloog_checksum): Declared.
6533
6534 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6535
6536         * graphite-poly.c (pbb_number_of_iterations): Removed.
6537         (pbb_number_of_iterations_at_time): Correctly compute the number
6538         of iterations in the transformed loop.
6539         * graphite-poly.h (pbb_number_of_iterations): Removed.
6540
6541 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6542
6543         * graphite-poly.h (lst_update_scattering_seq): Removed.
6544         (lst_update_scattering): Correctly handle outermost loop dewey
6545         renumbering.
6546
6547 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6548
6549         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
6550         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
6551         * graphite-poly.h (lst_niter_for_loop): New.
6552
6553 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6554
6555         * graphite-poly.c (apply_poly_transforms): Do not abort when the
6556         transform read from disk is not legal.  Call fatal_error instead.
6557
6558 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6559
6560         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
6561         (print_scop_header): Removed.  Inlined in the only call place...
6562         (print_scop): ... here.
6563
6564 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6565
6566         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
6567
6568 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6569
6570         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
6571
6572 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6573
6574         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
6575         (dot_deps_stmt): Same.
6576         * graphite-poly.c (dot_lst): Same.
6577
6578 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6579
6580         * graphite-blocking.c (scop_do_strip_mine): Do not call
6581         graphite_legal_transform.
6582         (scop_do_block): Same.
6583
6584 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
6585
6586         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
6587         description.
6588
6589 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6590
6591         * tree-scalar-evolution.c (instantiate_array_ref): New.
6592         (instantiate_scev_r): Also handle ARRAY_REFs.
6593
6594 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6595
6596         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6597         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
6598         RESULT_DECL, and FIELD_DECL.  Return false for an
6599         SSA_NAME_IS_DEFAULT_DEF.
6600         (compute_scalar_evolution_in_loop): Do not further analyze the
6601         scalar evolution when no_evolution_in_loop_p returns true.
6602
6603 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6604
6605         * tree-chrec.h (evolution_function_is_affine_p): Do not check
6606         whether CHREC_LEFT is invariant.  A function is affine when
6607         CHREC_RIGHT is invariant.
6608
6609 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6610
6611         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
6612         is_gimple_reg.
6613         (rewrite_degenerate_phi): Same.
6614         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
6615
6616 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
6617
6618         * graphite-scop-detection.c (graphite_can_represent_scev,
6619         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
6620         graphite_can_represent_loop): Remove outermost_loop.
6621
6622 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6623
6624         PR middle-end/45229
6625         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
6626         handle GIMPLE_CALLs with no LHS.
6627
6628 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
6629
6630         * graphite-poly.c (init_graphite_out_file): New.
6631         (init_graphite_in_file): New.
6632         (apply_poly_transforms): Updated to enable reading and writing of
6633         multiple scop files.
6634
6635 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
6636
6637         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
6638         redundant checks.
6639
6640 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6641
6642         * graphite-clast-to-gimple.c (precision_for_value): Adjust
6643         computation of precision by 1.
6644
6645 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
6646
6647         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
6648         (openscop_read_polyhedron_matrix): New.
6649         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
6650         (openscop_read_N_int): Same.
6651         * graphite-poly.c (openscop_read_N_int): New.
6652         (openscop_read_one_int): New.
6653         (openscop_read_N_string): New.
6654         (openscop_read_one_string): New.
6655         (openscop_read_powerset_matrix): New.
6656         (graphite_read_transforms): Remove.
6657         (graphite_read_scatt): New.
6658         (graphite_read_scop_file): New.
6659         (apply_poly_transforms): Updated to call graphite_read_scop_file.
6660
6661 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6662
6663         * graphite-poly.c: Change include order.
6664
6665 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6666
6667         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
6668         (cloog_matrix_nrows): New.
6669
6670 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
6671
6672         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
6673         from matrix lines.
6674         * graphite-poly.c (openscop_print_scattering_function_1): Same.
6675         (print_scattering_function_1): Same.
6676         (openscop_print_pbb_domain): Same.
6677         (openscop_print_scop_context): Same.
6678         (print_scop_context): Same.
6679
6680 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
6681
6682         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
6683         (openscop_print_pdr_polyhedron): Print pph.
6684
6685 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6686
6687         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
6688         priority signed types.
6689
6690 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6691
6692         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
6693         the call to lang_hooks.types.type_for_size.  Call
6694         build_nonstandard_integer_type.
6695
6696 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
6697
6698         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
6699         (openscop_print_polyhedron_matrix): New.
6700         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
6701         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
6702         (openscop_print_pdr_powerset): New.
6703         (openscop_print_powerset_matrix): New.
6704         (openscop_print_scattering_function_1): New.
6705         (print_scattering_function): Add support for scattering names and
6706         OpenScop format.
6707         (graphite_write_transforms): Remove.
6708         (print_pdr_access_layout): Updated to support OpenScop format.
6709         (print_pdr): Same.
6710         (openscop_print_pbb_domain): New.
6711         (print_pbb_body): Added a parameter to allow indicating that pbb_body
6712         is not provided.
6713         (print_pbb): Updated to call the new print_pbb_body.
6714         (openscop_print_scop_context): New.
6715         (print_scop_header): New.
6716         (print_scop): Updated to call print_scop_header.
6717         * graphite-poly.h: Document OpenScop format.
6718
6719 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
6720
6721         * config/cris/m32c.c (cris_memory_move_cost): New.
6722         (cris_register_move_cost): Make static. Change arguments type from
6723         enum reg_class to reg_class_t.
6724         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6725         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6726         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
6727
6728 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
6729
6730         PR target/45843
6731         * config/i386/i386.c (ix86_gimplify_va_arg): Use
6732         INTVAL (XEXP (slot, 1)) as prev_size.
6733
6734 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
6735
6736         PR target/45837
6737         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
6738         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
6739         defined.
6740         * config/rs6000/option-defaults.h (toplevel): Change #if
6741         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
6742         global option changes.
6743
6744 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
6745
6746         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
6747
6748         PR tree-optimization/31261
6749         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
6750         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
6751
6752 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6753
6754         PR bootstrap/45796
6755         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
6756         special-casing for generators and turn into ...
6757         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
6758         rule, for better error messages in case of toplevel dependency errors.
6759         (genprog): Add hooks, rename to ...
6760         (genprogerr): ... this, and let genprog also contain check,
6761         checksum, condmd.
6762         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
6763         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
6764         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
6765
6766 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
6767             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6768
6769         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
6770         for GMP, MPFR and MPC.
6771
6772 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6773
6774         * config/sparc/sparc.opt (mimpure-text): Move ...
6775         * config/sol2.opt: ... here.  Correct description.
6776         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
6777         * doc/invoke.texi (Option Summary, SPARC Options): Move
6778         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
6779         (Option Summary, Solaris 2 Options): ... here.
6780         (Submodel Options, Solaris 2 Options): New menu entry.
6781         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
6782         (Solaris 2 Options): ... here.
6783
6784 2010-09-30  Michael Eager  <eager@eagercon.com>
6785
6786         * extend.texi (interrupt_handler): Add MicroBlaze to list.
6787         (save_volatiles): Describe option for MicroBlaze.
6788         * invoke.texi: Add MicroBlaze Options.
6789         * contrib.texi: Add acknowledgment.
6790         * md.texi: Add MicroBlaze d and z constraints.
6791         * install.texi: Add microblaze-*-elf.
6792         * configure.ac: Add microblaze-*-* to target list.
6793         * configure: Regenerate.
6794         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
6795         * config/microblaze/microblaze-protos.h: New.
6796         * config/microblaze/crti.s: New.
6797         * config/microblaze/predicates.md: New.
6798         * config/microblaze/linux.h: New.
6799         * config/microblaze/microblaze.md: New.
6800         * config/microblaze/constraints.md: New.
6801         * config/microblaze/crtn.s: New.
6802         * config/microblaze/microblaze.opt: New.
6803         * config/microblaze/microblaze-c.c: New.
6804         * config/microblaze/t-microblaze: New.
6805         * config/microblaze/microblaze.c: New.
6806         * config/microblaze/microblaze.h: New.
6807
6808 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
6809
6810         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
6811         parse @optional/@required and set the flags as appropriate.
6812
6813 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
6814
6815         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
6816
6817 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
6818
6819         * opt-functions.awk (static_var): Update comment.
6820         (var_ref): Return offsetof expression or -1, not variable address.
6821         * optc-gen.awk: Generate structure field initializers instead of
6822         static variables.  Expect -1 for missing variables instead of null
6823         pointer.  Add gcc_options parameters to generated functions.
6824         * opth-gen.awk: Generate structure fields for static variables.
6825         Add gcc_options parameters to generated functions.
6826         * common.opt (optimize, optimize_size): Add variables.
6827         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
6828         &global_options to cl_target_option_restore.
6829         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
6830         &global_options to cl_optimization_restore, cl_target_option_save
6831         and cl_target_option_restore.
6832         (ix86_set_current_function): Pass &global_options to
6833         cl_target_option_restore.
6834         * config/pdp11/pdp11.h (optimize): Remove.
6835         * config/rs6000/rs6000.h (optimize): Remove.
6836         * config/sh/sh.h (optimize): Remove.
6837         * config/xtensa/xtensa.h (optimize): Remove.
6838         * coretypes.h (struct gcc_options): Declare.
6839         * diagnostic.c (diagnostic_initialize): Initialize
6840         context->option_state.
6841         (diagnostic_report_diagnostic): Pass option_state to
6842         option_enabled hook.
6843         * diagnostic.h (diagnostic_context.option_enabled): Add void *
6844         parameter.
6845         (diagnostic_context.option_state): New field.
6846         * final.c (final_start_function, final, final_scan_insn): Rename
6847         optimize parameter to optimize_p.
6848         * flags.h (optimize, optimize_size): Remove.
6849         * function.c (invoke_set_current_function_hook): Pass
6850         &global_options to cl_optimization_restore.
6851         * gcc.c (driver_handle_option): Take gcc_options parameter.
6852         Assert that it is &global_options.
6853         (process_command): Pass &global_options to read_cmdline_option.
6854         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
6855         option_enabled.
6856         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
6857         &global_options to set_option.
6858         * opts-common.c (handle_option, handle_generated_option,
6859         read_cmdline_option, set_option): Take explicit gcc_options
6860         parameters.  Use option_flag_var.
6861         (option_flag_var): New.
6862         * opts.c (common_handle_option, lang_handle_option,
6863         target_handle_option): Take gcc_options parameter.  Assert that it
6864         is &global_options.
6865         (read_cmdline_options): Pass &global_options to read_cmdline_option.
6866         (print_filtered_help): Use option_flag_var.  Pass &global_options
6867         to option_enabled.
6868         (common_handle_option): Use option_flag_var.
6869         (option_enabled): Take opts parameter.  Use option_flag_var.
6870         (get_option_state): Take gcc_options parameter.  Use
6871         option_flag_var.  Pass gcc_options parameter to option_enabled.
6872         (enable_warning_as_error): Pass &global_options to
6873         handle_generated_option.
6874         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
6875         (cl_option_handler_func.handler): Take gcc_options parameter.
6876         (option_enabled, get_option_state, set_option, handle_option,
6877         handle_generated_option, read_cmdline_option): Take gcc_options
6878         parameters.
6879         * toplev.c (optimize, optimize_size): Remove.
6880         (print_switch_values): Pass &global_options to option_enabled.
6881         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
6882         to get_option_state.
6883         (general_init): Initialize global_dc->option_state.
6884         * tree.c (build_optimization_node): Pass &global_options to
6885         cl_optimization_save.
6886         (build_target_option_node): Pass &global_options to
6887         cl_target_option_save.
6888
6889 2010-09-30  Martin Jambor  <mjambor@suse.cz>
6890
6891         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
6892         zero sized bit-fields.
6893
6894 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
6895
6896         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
6897         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
6898         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
6899         (c_parser_objc_class_declaration): Same change.
6900         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
6901         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
6902         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
6903         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
6904         and RID_AT_PUBLIC instead of RID_PUBLIC.
6905         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
6906         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
6907
6908 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
6909
6910         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
6911         Add links to current providers of packages for Solaris and IRIX.
6912
6913 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
6914
6915         Merge from 'apple/trunk' branch on FSF servers.
6916         * c-parser.c: Applied change originally in c-parse.in.
6917
6918         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
6919
6920         Radar 4281748
6921         * c-decl.c (start_decl): Check for redeclaration of class name.
6922         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
6923
6924 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
6925
6926         * config/ia64/ia64.c (ia64_builtin_decl): New.
6927         (TARGET_BUILTIN_DECL): Define.
6928         (ia64_builtins): New.
6929         (ia64_init_builtins): Save decls in ia64_builtins.
6930
6931 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
6932
6933         PR target/40457
6934         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
6935         (move2add_use_add3_insn): Likewise.
6936         (reload_cse_move2add): Likewise.
6937         * rtlanal.c (get_full_rtx_cost): New function.
6938         * rtl.h (struct full_rtx_costs): New.
6939         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
6940         costs_add_n_insns): New inline functions.
6941         (get_full_rtx_cost): Declare.
6942
6943         PR c/45054
6944         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
6945         invariants.  Check for reg_equiv_invariant.
6946         (reload): Assert that spilled_pseudos is empty when returning.
6947
6948 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
6949
6950         * config/i386/mingw32.h (TARGET_64BIT): replaced by
6951         TARGET_64BIT_DEFAULT in #if check.
6952
6953 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
6954
6955         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
6956
6957 2010-09-29  Mike Stump  <mikestump@comcast.net>
6958
6959         * config/darwin.h (flag_mkernel): Remove.
6960         (flag_apple_kext): Likewise.
6961
6962 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
6963             Jack Howarth  <howarth@bromo.med.uc.edu>
6964
6965         * config/darwin.opt (undefined): Add.
6966
6967 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
6968
6969         PR testsuite/45664
6970         * configure.ac: Add --enable-indirect-function option.
6971         * config.gcc: Add default_gnu_indirect_function.
6972         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
6973         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
6974         * varasm.c (do_assemble_alias): Adjust for macro name change.
6975         * configure: Rebuilt.
6976         * doc/install.texi: Document --enable-indirect-function.
6977
6978 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
6979
6980         * doc/options.texi (Variable, Var, Init): Update documentation
6981         without reference to VarExists.
6982         (VarExists): Remove.
6983         * common.opt, config/i386/i386.opt, config/linux.opt,
6984         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
6985         Don't use VarExists.
6986
6987 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
6988
6989         * optc-gen.awk: Generate global_options initializer instead of
6990         individual variables.  Add x_ prefix to names of structure members.
6991         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
6992         names of structure members.
6993         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
6994         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
6995         * doc/tm.texi: Regenerate.
6996         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
6997         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
6998         * c-parser.c (disable_extension_diagnostics,
6999         restore_extension_diagnostics): Update names of cpp_options members.
7000         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7001         * common.opt (fcompare-debug-second): Don't use Var.
7002         * config/alpha/alpha.h (target_flags): Remove.
7003         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7004         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7005         * config/bfin/bfin.h (target_flags): Remove.
7006         * config/cris/cris.h (target_flags): Remove.
7007         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
7008         cl_target_option members.
7009         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
7010         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
7011         ix86_can_inline_p): Update names of cl_target_option members.
7012         * config/i386/i386.h (ix86_isa_flags): Remove.
7013         * config/lm32/lm32.h (target_flags): Remove.
7014         * config/mcore/mcore.h (mcore_stack_increment): Remove.
7015         * config/mcore/mcore.md (addsi3): Remove extern declaration of
7016         flag_omit_frame_pointer.
7017         * config/mep/mep.h (target_flags): Remove.
7018         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7019         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7020         * config/mmix/mmix.h (target_flags): Remove.
7021         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
7022         flag_expensive_optimizations): Remove.
7023         * config/s390/s390.h (flag_pic): Remove.
7024         * config/score/score-conv.h (target_flags): Remove.
7025         * config/sh/sh.h (sh_fixed_range_str): Remove.
7026         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
7027         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7028         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7029         * diagnostic.c (diagnostic_initialize): Update names of
7030         diagnostic_context members.
7031         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
7032         warn_system_headers.
7033         (diagnostic_report_warnings_p): Update for new names.
7034         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7035         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
7036         HARD_FRAME_POINTER_IS_ARG_POINTER.
7037         * flags.h (flag_compare_debug): Declare.
7038         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7039         * opts.c (flag_compare_debug): Define.
7040         (common_handle_option): Update names of diagnostic_context
7041         members.  Handle -fcompare-debug-second.
7042         (fast_math_flags_struct_set_p): Update names of cl_optimization
7043         members.
7044         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7045         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7046         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7047         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7048         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7049         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7050         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
7051         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7052         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7053
7054 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7055
7056         * config/picochip/picochip.c (picochip_output_internal_label):
7057         This function can now be called for debug CFI labels, which can come
7058         in the middle of a vliw instruction.  Postpone until end of vliw.
7059
7060 2010-09-29  Richard Guenther  <rguenther@suse.de>
7061
7062         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
7063         (DECL_FILE_SCOPE_P): Use it.
7064         (TYPE_FILE_SCOPE_P): New macro.
7065
7066 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7067
7068         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
7069         a CPP_NAME which is a reserved word, clearly separate cases for
7070         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
7071
7072 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7073
7074         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
7075         token->value with the canonical spelling.  Do exactly like C and
7076         C++ and leave it as it is.
7077
7078 2010-09-28  Richard Henderson  <rth@redhat.com>
7079
7080         * config/alpha/alpha.c (alpha_builtins): New.
7081         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
7082         (alpha_builtin_function): New.
7083         (alpha_add_builtins, alpha_init_builtins): Use it.
7084
7085 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
7086
7087         * doc/standards.texi (Standards): Expanded the section on
7088         Objective-C and Objective-C++.
7089
7090 2010-09-28  DJ Delorie  <dj@redhat.com>
7091
7092         PR target/45800
7093         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
7094         volatile MEMs.
7095
7096 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7097
7098         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
7099         attributes on methods.
7100          (c_parser_objc_method_definition): Handle attributes.
7101         (c_parser_objc_methodproto): Likewise.
7102         (c_parser_objc_maybe_method_attributes): New.
7103         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
7104         missing definition, similar to that in ObjC++.
7105
7106 2010-09-28  Richard Henderson  <rth@redhat.com>
7107
7108         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
7109         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7110         (CONFIG_SJLJ_EXCEPTIONS): Remove.
7111         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
7112         (STACK_CHECK_PROTECT): Likewise.
7113         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
7114         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
7115         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
7116         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
7117         (dwarf2out_assembly_start): Likewise.
7118         * except.c (init_eh): Use targetm.except_unwind_info.
7119         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
7120         (output_one_function_exception_table): Likewise.
7121         * final.c: Unconditionally include dwarf2out.h.
7122         (final_start_function): Unconditionally call dwarf2out routines.
7123         (final_end_function, final_scan_insn): Likewise.
7124         * function.c (expand_function_end): Use targetm.except_unwind_info.
7125         * opts.c (decode_options): Use targetm.except_unwind_info.
7126         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
7127         * target.def (debug_unwind_info, except_unwind_info): New.
7128         * target.h (enum unwind_info_type): New.
7129         * targhooks.c (default_debug_unwind_info): New.
7130         (default_except_unwind_info): New.
7131         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
7132         * targhooks.h: Declare them.
7133         * tree-tailcall.c: Include "target.h"
7134         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
7135         * Makefile.in (tree-tailcall.o): Update.
7136         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
7137         (lhd_gcc_personality): Likewise.
7138
7139         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
7140         (TARGET_EXCEPT_UNWIND_INFO): New.
7141         (DWARF2_UNWIND_INFO): Update.
7142         (TARGET_DEBUG_UNWIND_INFO): New.
7143         * doc/tm.texi: Rebuild.
7144
7145         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
7146         targetm.except_unwind_info.
7147
7148         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
7149         (arm_except_unwind_info): New.
7150         (arm_compute_func_type): Use it.
7151         (arm_expand_prologue, thumb_pushpop): Likewise.
7152         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
7153         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
7154         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
7155         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
7156         (DWARF2_UNWIND_INFO): Remove.
7157         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7158         (ARM_EABI_UNWIND_TABLES): Remove.
7159
7160         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
7161         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
7162         (ia64_except_unwind_info): New.
7163         (ia64_output_function_prologue): Use it.
7164         (ia64_add_bundle_selector_before): Likewise.
7165         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
7166         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
7167         (TARGET_UNWIND_INFO): Remove.
7168
7169         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
7170
7171 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7172
7173         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
7174         (c_parser_objc_protocol_definition): Likewise.
7175         (c_parser_external_declaration): Provide dummy attribute arguments.
7176         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
7177         (c_parser_objc_class_definition): Handle attributes.
7178         (c_parser_objc_protocol_definition): Likewise.
7179
7180 2010-09-28  Tobias Burnus  <burnus@net-b.de>
7181
7182         PR fortran/40569
7183         PR fortran/40568
7184         * toplev.h (save_decoded_options, save_decoded_options_count):
7185         New global variables.
7186         * toplev.c (save_decoded_options, save_decoded_options_count):
7187         Export variables.
7188
7189 2010-09-28  Ian Lance Taylor  <iant@google.com>
7190
7191         * config/i386/i386.c (ix86_supports_split_stack): Test
7192         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
7193
7194 2010-09-28  Ian Lance Taylor  <iant@google.com>
7195
7196         PR target/45815
7197         * opts.c (decode_options): Don't test whether the target supports
7198         split stack if flag_split_stack == 0.
7199
7200 2010-09-28  Jan Hubicka  <jh@suse.cz>
7201
7202         * builtin-attrs.def (ATTR_LEAF): New attribute.
7203         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
7204         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
7205         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
7206         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
7207         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
7208         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
7209         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
7210         * sync-builtins.def: Annotate all builtins by leaf.
7211         * omp-builtins.def: Annotate all builtins by leaf.
7212         * builtins.def: Annotate relevant builtins with leaf attribute.
7213         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
7214         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
7215         leaf.
7216
7217 2010-09-28  Jan Hubicka  <jh@suse.cz>
7218
7219         * tree-ssa-ccp.c (fold_ctor_reference): New function.
7220         (fold_const_aggregate_ref): Use it.
7221         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
7222         into external static.
7223
7224 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7225
7226         PR target/44452
7227         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
7228         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
7229         (ix86_solaris_return_in_memory): Remove.
7230         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
7231         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7232         (TARGET_SUBTARGET_DEFAULT): Redefine.
7233         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
7234         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7235         (TARGET_SUBTARGET_DEFAULT): Redefine.
7236         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
7237         -mvect8-ret-in-mem.
7238         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
7239
7240 2010-09-29  Alan Modra  <amodra@gmail.com>
7241
7242         PR target/45807
7243         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
7244         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
7245         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
7246         Delete.
7247         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
7248         (rs6000_emit_prologue): Don't just create frame save info for r2,
7249         actually save r2.
7250
7251 2010-09-28  Richard Henderson  <rth@redhat.com>
7252
7253         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
7254         when 8 bytes are requested.
7255
7256 2010-09-28  Tristan Gingold  <gingold@adacore.com>
7257
7258         * config/avr/avr.c (expand_prologue): Set
7259         current_function_static_stack_size.
7260
7261 2010-09-28  Tristan Gingold  <gingold@adacore.com>
7262
7263         * config/alpha/alpha.md: Change the initial condition of the
7264         probing loop.
7265
7266 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
7267
7268         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
7269         Split from *avx_<maxmin:code><mode>3.
7270         (*avx_<smaxmin:code><mode>3): Ditto.
7271         * config/i386/i386.md (maxmin): Remove code iterator.
7272
7273 2010-09-27  Ian Lance Taylor  <iant@google.com>
7274
7275         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
7276         requires assembler support for CFI directives.
7277
7278 2010-09-27  Richard Henderson  <rth@redhat.com>
7279
7280         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
7281
7282 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
7283
7284         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
7285         that AFTER is not in the range FROM..TO, inclusive.
7286
7287 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
7288             Bernd Schmidt  <bernds@codesourcery.com>
7289
7290         PR rtl-optimization/45792
7291         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
7292         If not all insns are to be merged, for each edge, stash the
7293         next candidate after the to-be-merged insns before doing the
7294         merge, and use them for the retry at the new insertion point.
7295         Handle CC0 targets when retrying.
7296
7297 2010-09-27  Ian Lance Taylor  <iant@google.com>
7298
7299         * common.opt (fsplit-stack): New option.
7300         * opts.c (decode_options): Set flag_split_stack to final value.
7301         * target.def (supports_split_stack): New hook.
7302         * gcc.c (STACK_SPLIT_SPEC): Define.
7303         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
7304         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
7305         (Code Gen Options): Document -fsplit-stack.
7306         * doc/extend.texi (Function Attributes): Mention no_split_stack.
7307         (Function Attributes): Document no_split_stack.
7308         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
7309         TARGET_SUPPORTS_SPLIT_STACK.
7310         * doc/tm.texi: Rebuild.
7311         * function.c (thread_prologue_and_epilogue_insns): If
7312         flag_split_stack, add split stack prologue.
7313         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
7314         * varasm.c (saw_no_split_stack): New static variable.
7315         (assemble_start_function): Set saw_no_split_stack if the function
7316         has the no_split_stack attribute.
7317         (file_end_indicate_split_stack): New function.
7318         * output.h (file_end_indicate_split_stack): Declare.
7319         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
7320         and function.
7321         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
7322         routines.
7323         * config/i386/i386.c (ix86_option_override_internal): Don't set
7324         expand_builtin_va_start to NULL if -fsplit-stack.
7325         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
7326         -fsplit-stack.
7327         (ix86_va_start): If -fsplit-stack, get overflow pointer from
7328         scratch register set by prologue.
7329         (ix86_code_end): If -fsplit-stack, call
7330         file_end_indicate_split_stack.
7331         (ix86_supports_split_stack): New static function.
7332         (SPLIT_STACK_AVAILABLE): Define.
7333         (split_stack_prologue_scratch_regno): New static function.
7334         (split_stack_fn): New static variable.
7335         (ix86_expand_split_stack_prologue): New function.
7336         (ix86_live_on_entry): New static function.
7337         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
7338         (output_pic_addr_const): Likewise.
7339         (i386_asm_output_addr_const_extra): Likewise.
7340         (ix86_expand_call): Change return type to rtx.  Return the new
7341         call instruction.
7342         (TARGET_SUPPORTS_SPLIT_STACK): Define.
7343         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
7344         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
7345         (split_stack_prologue, split_stack_return): New insns.
7346         (split_stack_space_check): New insn.
7347         * config/i386/i386.h (struct machine_function): Add
7348         split_stack_varargs_pointer field.
7349         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
7350         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
7351         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
7352         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
7353         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
7354         Declare.
7355         (ix86_expand_call): Update declaration.
7356
7357 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7358
7359         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
7360         code.  Added byref, which was missing in the list of codes.
7361         Explain that enumeration values are encoded as the integer type
7362         that the compiler uses to store them.  Explain and make examples
7363         of how 'const' interacts with pointers, and the complication of
7364         the encoding of 'const char *'.
7365         (Legacy type encoding): New subsection, explaining that GCC emits
7366         incorrect type encodings for the NeXT runtime for compatibility
7367         reasons.
7368         (@@encode): New subsection, explaining @encode and particularly
7369         that protocol qualifiers are not recognized inside an @encode()
7370         expression.
7371         (Method signatures): New subsection, explaining how method
7372         signatures are encoded.
7373
7374 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7375
7376         Merge from 'apple/trunk' branch on FSF servers.  Removed small
7377         change in build_conditional_expr that had been added when fixing
7378         PR objc/27377 and which did the same check in a less complete way.
7379
7380         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
7381
7382         Radar 4229905
7383         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
7384         looking for objective-c common pointer types.
7385
7386         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
7387
7388         Radar 4154928
7389         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
7390         use their ObjC common type.
7391
7392 2010-09-27  Richard Guenther  <rguenther@suse.de>
7393
7394         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
7395
7396 2010-09-27  Jie Zhang  <jie@codesourcery.com>
7397
7398         * print-tree.c (print_node): Print in-constant-pool.
7399
7400 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
7401
7402         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
7403         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
7404         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
7405         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
7406
7407 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
7408
7409         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
7410         from pro_epilogue_adjust_stack_<mode>_{1,2}.
7411         (pro_epilogue_adjust_stack_<mode>_add): Rename from
7412         pro_epilogue_adjust_stack_<mode>_3.
7413         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
7414         renamed pro_epilogue_adjust_stack_{si,di}_add.
7415         (ix86_expand_prologue): Use indirect functions.  Update for renamed
7416         pro_epilogue_adjust_stack_{si,di}_sub.
7417
7418 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
7419
7420         * config/i386/i386.md (movmsk_df): New insn.
7421         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
7422         sequence for TARGET_SSE_MATH.
7423
7424 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
7425
7426         * config/mips/mips.c (mips_builtin_decls): Declare.
7427         (mips_init_builtins): Store function declarations in
7428         mips_builtin_decls.
7429         (mips_builtin_decl): New function.
7430         (TARGET_BUILTIN_DECL): Define.
7431
7432 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
7433             Richard Henderson  <rth@redhat.com>
7434
7435         * config/i386/cygwin.asm: Include auto-host.h.
7436         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
7437         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
7438         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
7439         alignment code from the 64-bit path.  Use gas local labels.
7440         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
7441         from _di_2.  Remove the useless constant integer argument.
7442         (pro_epilogue_adjust_stack_<mode>_3): New.
7443         (allocate_stack_worker_probe_<mode>): Macroize from
7444         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
7445         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
7446         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
7447         (__chkstk_ms): New function.
7448         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
7449         * config/i386/t-interix: Likewise.
7450         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
7451         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
7452         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
7453         * configure, config.in: Rebuild.
7454
7455 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
7456
7457         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
7458         statements because of the return slot optimization.
7459
7460 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
7461
7462         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
7463         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
7464         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7465         (class_likely_spilled_p): Rename to...
7466         (avr_class_likely_spilled_p): ...this. Make static. Change argument
7467         type to reg_class_t.
7468
7469 2010-09-24  Jan Hubicka  <jh@suse.cz>
7470
7471         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
7472         (lto_symtab_resolve_symbols): Set it.
7473         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
7474         store resolution field in cgraph/varpool.
7475         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
7476         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
7477         (cgraph_dump_node): Drop used_from_object_file.
7478         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
7479         (cgraph_function_body_availability): Use decl_replaceable_p.
7480         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
7481         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
7482         cgraph_used_from_object_file_p.
7483         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
7484         cgraph_used_from_object_file_p.
7485         (resolution_used_from_other_file_p): New functoin.
7486         (cgraph_used_from_object_file_p): New predicate.
7487         * cgraph.h: Include plugin-api.h
7488         (struct cgraph_local_info): Remove used_from_object_file.
7489         (struct cgraph_node): Add resolution field.
7490         (struct varpool_node): Likewise; remove used_from_object_file;
7491         reove const_value_known.
7492         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
7493         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
7494         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
7495         varpool_used_from_object_file_p): Declare.
7496         (varpool_get_node, varpool_extra_name_alias): Update prototype.
7497         * tree.h (DECL_REPLACEABLE_P): Remove.
7498         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
7499         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
7500         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
7501         input_overwrite_node, input_node, input_varpool_node): Stream
7502         resolution.
7503         * expr.c (expand_expr_real_1): Use const_value_known_p
7504         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
7505         const_value_known.
7506         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
7507         (function_and_variable_visibility): Set resolution for local vars
7508         and functions; use varpool_used_from_object_file_p.
7509         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
7510         static functions.
7511         (default_binds_local_p_1): Use resolutoin info.
7512         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
7513         * varpool.c (varpool_get_node): Constify.
7514         (const_value_known_p): Do not use vnode->const_value_known;
7515         use decl_replaceable_p.
7516         (varpool_finalize_decl): Do not set const_value_known.
7517         (cgraph_variable_initializer_availability): Use decl_replaceable_p
7518         (varpool_extra_name_alias): Return new node.
7519         (varpool_used_from_object_file_p): New function.
7520
7521 2010-09-24  Richard Henderson  <rth@redhat.com>
7522
7523         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
7524         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
7525         (do_spill): Use REG_CFA_OFFSET.
7526         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
7527         as appropriate.
7528         (ia64_expand_epilogue): Likewise.
7529         (process_set): Split into ...
7530         (process_cfa_adjust_cfa): this,
7531         (process_cfa_register): this,
7532         (process_cfa_offset): and this new function.
7533         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
7534         instead of REG_FRAME_RELATED_EXPR.
7535
7536 2010-09-24  Olivier Hainque  <hainque@adacore.com>
7537
7538         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
7539
7540 2010-09-24  Jan Hubicka  <jh@suse.cz>
7541
7542         * doc/extend.texi: (attribute leaf): Document.
7543         * tree.c (local_define_builtin): Handle ECF_LEAF.
7544         (build_common_builtin_nodes): Set ECF_LEAF where needed.
7545         * tree.h (ECF_LEAF): New.
7546         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
7547         overwrittable and unavailable functions.
7548         (ipa_init): Put all_module_statics into optimization_summary_obstack.
7549         (copy_global_bitmap): Do not copy all_module_statics.
7550         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
7551         (propagate): Handle overwritable and unavailable leaf functions;
7552         initialize global info for overwritable and unavailable leaf functions;
7553         do not free all module statics.
7554         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
7555         local statics.
7556         * calls.c (flags_from_decl_or_type): Handle leaf.
7557         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
7558         abnormal gotos.
7559
7560 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
7561
7562         * gengtype.c: Reindented.
7563         * gengtype.h: Reindented.
7564         * gengtype-parse.c: Reindented.
7565
7566 2010-09-24  Jan Hubicka  <jh@suse.cz>
7567
7568         PR tree-optimization/45738
7569         PR tree-optimization/45741
7570         * expr.c (string_constant): Allow CONST_DECL too;
7571         check that DECL_INITIAL is set.
7572         * varpool.c (const_value_known_p): Only look into VAR_DECL
7573         and CONST_DECL.
7574
7575 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
7576
7577         * common.opt (undef): New.
7578
7579 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR middle-end/45234
7582         * rtl.h (enum global_rtl_index): Add
7583         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
7584         (LAST_VIRTUAL_POINTER_REGISTER): Define.
7585         (virtual_preferred_stack_boundary_rtx,
7586         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
7587         (LAST_VIRTUAL_REGISTER): Increase by one.
7588         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
7589         instead of LAST_VIRTUAL_REGISTER.
7590         * function.c (instantiate_new_reg): Handle
7591         virtual_preferred_stack_boundary_rtx.
7592         * emit-rtl.c (init_virtual_regs): Handle
7593         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
7594         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
7595         * explow.c (round_push): If crtl->preferred_stack_boundary
7596         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
7597         virtual_preferred_stack_boundary_rtx alignment instead of
7598         crtl->preferred_stack_boundary alignment.
7599         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
7600         macros.  Never decrease crtl->preferred_stack_boundary,
7601         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
7602         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
7603         stack_pointer_delta in dynamic allocation, even when size
7604         is constant.
7605         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
7606         macro.
7607         * print-rtl.c (print_rtx): Handle
7608         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
7609         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
7610         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
7611         * config/frv/frv.c (frv_emit_movsi): Likewise.
7612         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
7613         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
7614         Likewise.
7615
7616         Revert:
7617         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
7618
7619         PR middle-end/45234
7620         * calls.c (expand_call): Make sure that all variable sized
7621         adjustments are multiple of preferred stack boundary after
7622         stack alignment.
7623
7624 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
7625             Dominique Dhumieres  <dominiq@lps.ens.fr>
7626
7627         PR bootstrap/45751
7628         * config/darwin-driver.c (darwin_default_min_version):
7629         Adjust size passed to memcpy in two places.
7630
7631 2010-09-24  Richard Guenther  <rguenther@suse.de>
7632
7633         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
7634         Make sure to not call set_type_context with error_mark_node.
7635         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
7636
7637 2010-09-24  Richard Guenther  <rguenther@suse.de>
7638
7639         * Makefile.in (OBJS-onestep): Remove.
7640         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
7641         (libbackend.a): Remove onestep support.
7642         (libbackend.o): Remove.
7643         * configure.ac (--enable-intermodule): Remove.
7644         * configure: Regenerate.
7645
7646 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
7647
7648         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
7649         reaching the end of a block if it occurs at a DEBUG_INSN.
7650
7651 2010-09-09  Tristan Gingold  <gingold@adacore.com>
7652
7653         PR target/44242
7654         * config/vms/vms-crt0-64.c: Removed.
7655         * config/vms/vms-crt0.c: Removed.
7656         * config/vms/vms-psxcrt0-64.c: Removed.
7657         * config/vms/vms-psxcrt0.c: Removed.
7658         * config/vms/vms-ucrt0.c: New file.
7659         * config/vms/t-vms64: Removed.
7660         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
7661         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
7662         * config.gcc (alpha-dec-vms): Use t-vms.
7663
7664 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
7665
7666         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
7667         underfull hbox in DVI output.
7668         (-fobjc-class-cxx-cdtors): Same change.
7669         (-fobjc-exceptions): Tidied up documentation.  Explain what the
7670         option does, but moved the (lenghty) description of the exception
7671         syntax into objc.texi.
7672         (-fobjc-gc): Explain that the option is not useful with the GNU
7673         runtime.
7674         (-fzero-link): Explain that the GNU runtime always works in
7675         "zero-link" mode.
7676         * doc/objc.texi: All sections: simplified @node declarations
7677         removing specification of next, previous, up node.
7678         (Objective-C): Updated introduction.
7679         (Garbage Collection): Updated.  The bohem-gc library is now
7680         included in gcc itself.  Mention that this section only applies to
7681         the GNU Objective-C runtime.
7682         (compatibility_alias): Small tidy up.
7683         (Exceptions): New section mostly containing text previously in the
7684         description of the -fobjc-exception command-line option.
7685         (Synchronization): Same.
7686
7687 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
7688
7689         * config/i386/i386.md (ix86_code_end): Move the initialization of
7690         xops array near the consumer.  Use AX_REG and SP_REG instead of
7691         numerical constants.
7692
7693 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
7694
7695         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
7696         method [methodname]' for an Objective-C method instead of the less
7697         satisfactory 'too many arguments to function' (with no method name).
7698
7699 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
7700
7701         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
7702         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
7703         (execute_update_addresses_taken): Remove parameter.  Execute the
7704         optimization unconditionally.
7705         * passes.c (execute_function_todo): Call execute_update_addresses_taken
7706         unconditionally if TODO_rebuild_alias is set, else only when optimizing
7707         if TODO_update_address_taken is set.
7708
7709 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
7710
7711         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7712         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
7713         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7714         (arm_output_addr_const_extra): Make static.
7715
7716 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
7717
7718         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
7719         define as unspec_volatile.
7720         ("nops"): Define as unspec_volatile. Use fputs to write to
7721         asm_out_file directly.  Output NOPs on separate lines using while loop.
7722         * config/i386/i386.c (ix86_code_end): Use fputs to write to
7723         asm_out_file directly.  Output NOPs on separate lines using while loop.
7724
7725 2010-09-23  Richard Guenther  <rguenther@suse.de>
7726
7727         PR tree-optimization/45565
7728         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
7729         Make sure to adjust the fndecl before replacing the stmt.
7730
7731 2010-09-23  Richard Guenther  <rguenther@suse.de>
7732
7733         PR middle-end/45750
7734         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
7735         gimplifying MEM_REF.
7736
7737 2010-09-23  Alan Modra  <amodra@gmail.com>
7738
7739         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
7740         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
7741
7742 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
7743
7744         PR rtl-optimization/44374
7745         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
7746         * df-core.c (df_set_bb_dirty): Set it.
7747         * ifcvt.c (find_memory): Remove function.
7748         (dead_or_predicable): Use can_move_insns_across.
7749         * df.h (can_move_insns_across): Declare function.
7750         * cfgcleanup.c (block_was_dirty): New static variable.
7751         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
7752         than df_get_bb_dirty.
7753         (try_head_merge_bb): New static function.
7754         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
7755         is set.
7756         * df-problems.c: Include "target.h"
7757         (df_simulate_find_uses): New static function.
7758         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
7759         (find_memory, find_memory_store): New static functions.
7760         (can_move_insns_across): New function.
7761         * Makefile.in (df-problems.o): Update dependencies.
7762
7763 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
7764
7765         PR java/44095
7766         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
7767         is specified and the suffix of the file isn't ".c".
7768         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7769
7770 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7771
7772         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
7773         * doc/cppopts.texi: Fix markup of index entry.
7774         * doc/extend.texi (Constructing Calls): Fix markup of
7775         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
7776         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
7777         (Vague Linkage, C++ Attributes): Fix markup of index entries and
7778         keywords.
7779         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
7780         avoid long lines.
7781         (C Dialect Options, C++ Dialect Options, Warning Options)
7782         (Debugging Options, Spec Files, Darwin Options)
7783         (i386 and x86-64 Options, MIPS Options)
7784         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
7785         index entries, avoid abbreviations, allow URLs to wrap, avoid
7786         long lines, avoid overlong pages from long @itemx lists.
7787         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
7788         * doc/standards.texi (Standards): Likewise.
7789         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
7790
7791 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
7792
7793         * opts-common.c (prune_options): Make static.  Work with decoded
7794         options.
7795         (decode_cmdline_options_to_array): Call prune_options.  Don't
7796         resize option array here.
7797         * opts.h (prune_options): Remove prototype.
7798         * gcc.c (process_command): Take decoded options; don't call
7799         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
7800         (main): Call decode_cmdline_options_to_array here instead of
7801         prune_options.  Update call to process_command.
7802         * config/darwin-driver.c: Include opts.h.
7803         (darwin_default_min_version): Work with decoded options.  Don't
7804         handle -b or -V here.
7805         * config/darwin.h (darwin_default_min_version): Update prototype.
7806         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
7807         darwin_default_min_version.
7808         * config/i386/cygwin.h (mingw_scan): Update prototype.
7809         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
7810         * config/i386/cygwin1.c: Include opts.h.
7811         (mingw_scan): Work with decoded options.
7812         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
7813         * config/t-darwin (darwin-driver.o): Update dependencies.
7814
7815 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
7816
7817         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
7818         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
7819         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
7820         -force-link, -force-link=, -language, -language=,
7821         -library-directory, -library-directory=, -no-canonical-prefixes,
7822         -no-standard-libraries, -no-warnings, -optimize, -output,
7823         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
7824         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
7825         -print-file-name=, -print-libgcc-file-name,
7826         -print-multi-directory, -print-multi-lib,
7827         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
7828         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
7829         -profile, -save-temps, -shared, -specs, -specs=, -static,
7830         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
7831         symbolic): New.
7832         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
7833         * gcc.c (A Short Introduction to Adding a Command-Line Option):
7834         Remove comment.
7835         (cc1_options): Correct specs for passing down --help,
7836         --target-help and --help=*.  Add spec for passing down --version.
7837         (struct option_map, option_map, target_option_translations,
7838         translate_options): Remove.
7839         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
7840         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
7841         OPT_fhelp_ and OPT_ftarget_help.
7842         (process_command): Don't call translate_options.  Call
7843         decode_cmdline_options_to_array before checking for
7844         -no-canonical-prefixes using decoded options.
7845         * opts-common.c (tm.h): Update comment on #include.
7846         (find_opt): Allow abbreviations of long options.
7847         (struct option_map, option_map): New.
7848         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
7849         and -mno handling.
7850         (target_option_translations): New.
7851         (decode_cmdline_options_to_array): Handle
7852         TARGET_OPTION_TRANSLATE_TABLE in driver.
7853         * opts.c (common_handle_option): Don't handle OPT_fhelp,
7854         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
7855
7856 2010-09-22  Richard Guenther  <rguenther@suse.de>
7857
7858         * tree-inline.c (optimize_inline_calls): Schedule cleanups
7859         only if we inlined something.  Block compaction and conditional
7860         folding are done by cfg cleanup.  Schedule update-address-taken.
7861         (tree_function_versioning): Remove redundant call to number_blocks.
7862         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
7863         folding is done by cfg cleanup.
7864         * passes.c (init_optimization_passes): Remove update-address-taken
7865         pass after IPA inlining.
7866
7867 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
7868
7869         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
7870         to update conditions. Fix reg_mode[] check.
7871
7872 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
7873
7874         * config/picochip/picochip.md (movhicc): Use expand to check whether
7875         movhicc is available and split it after reload.
7876
7877 2010-09-22  Richard Guenther  <rguenther@suse.de>
7878
7879         * tree-ssanames.c (release_dead_ssa_names): Do not remove
7880         callee edges here.
7881         * passes.c (init_optimization_passes): Remove early CFG cleanup.
7882         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
7883         (pass_cleanup_cfg): Likewise.
7884         (execute_fixup_cfg): Cleanup.
7885         * tree-pass.h (pass_cleanup_cfg): Remove.
7886
7887 2010-09-22  Martin Jambor  <mjambor@suse.cz>
7888
7889         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
7890         builtins if it is true.
7891         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
7892         parameter.
7893
7894 2010-09-22  Martin Jambor  <mjambor@suse.cz>
7895
7896         * tree-sra.c (struct access): New field grp_no_warning.
7897         (create_access_replacement): Set TREE_NO_WARNING according to
7898          grp_no_warning.
7899         (create_artificial_child_access): Use build_ref_for_model and set
7900         grp_no_warning if build_user_friendly_ref_for_offset fails.
7901         (propagate_subaccesses_across_link): Likewise.
7902
7903 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
7904
7905         PR target/35664
7906         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
7907         ('f'): Likewise.
7908
7909 2010-09-22  Tristan Gingold  <gingold@adacore.com>
7910
7911         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
7912
7913 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
7914
7915         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
7916         * config/i386/i386.c (decide_alg): Update for rename.
7917
7918 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
7919
7920         PR rtl-optimization/45739
7921         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
7922         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
7923
7924 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
7925
7926         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
7927         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
7928         Remove.
7929         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
7930         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7931
7932 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7933
7934         PR objc/23710
7935         * c-parser.c (c_parser_objc_method_definition): Check the return
7936         value of objc_start_method_definition and if false is returned,
7937         parse the method definition but emit no code.
7938
7939 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
7940
7941         PR objc/25965
7942         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
7943         call objc_get_interface_ivars ().
7944
7945 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
7946
7947         PR target/45694
7948         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
7949         static chain-register is used for 64-bit.
7950
7951 2010-09-21  Richard Guenther  <rguenther@suse.de>
7952
7953         * dwarf2out.c (is_cu_die): New function.
7954         (add_pubtype): Use it.
7955         (gen_subprogram_die): Likewise.
7956         (gen_struct_or_union_type_die): Likewise.
7957         (dwarf2out_finish): Likewise.
7958         (comp_unit_die): Rename to ...
7959         (single_comp_unit_die): ... this.
7960         (comp_unit_die): New function lazily constructing and
7961         returning single_comp_unit_die.
7962         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
7963         base_type_die, subrange_type_die, modified_type_die,
7964         lower_bound_default, add_bound_info, add_prototyped_attribute,
7965         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
7966         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
7967         force_decl_die, gen_namespace_die, dwarf2out_decl,
7968         dwarf2out_start_source_file, dwarf2out_end_source_file,
7969         prune_unused_types, dwarf2out_finish): Use it.
7970         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
7971         the global list of translation-unit decls.
7972         (dwarf2out_init): Do not create single_comp_unit_die here.
7973         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
7974
7975 2010-09-21  Richard Guenther  <rguenther@suse.de>
7976
7977         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
7978         for bool for C++.
7979
7980 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
7981
7982         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
7983         (qhs_extenddi_cstr): Likewise.
7984         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
7985         them for the source operand.
7986
7987 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
7988
7989         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
7990         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
7991         (ix86_split_ashr): Ditto.
7992         (ix86_split_lshr): Ditto.
7993
7994 2010-09-21  Richard Guenther  <rguenther@suse.de>
7995
7996         PR tree-optimization/45580
7997         * tree-ssa-propagate.c (substitute_and_fold): Always replace
7998         regular uses.
7999         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
8000         virtuals fold the call into a regular indirect one.
8001
8002 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8003
8004         PR rtl-optimization/42775
8005         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
8006         scheduling is enabled.
8007
8008 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8009
8010         PR rtl-optimization/45728
8011         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
8012         gen_lowpart_common first and if that fails, force_reg first
8013         before calling gen_lowpart.
8014
8015         PR middle-end/45678
8016         * cfgexpand.c (expand_one_stack_var_at): Use
8017         crtl->max_used_stack_slot_alignment as max_align, instead
8018         of maximum of that and PREFERRED_STACK_BOUNDARY.
8019         Don't call update_stack_alignment.
8020
8021 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8022
8023         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
8024         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
8025         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
8026         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
8027         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
8028         (build_nonstandard_integer_type): Likewise.
8029         (build_range_type_1): New function, built from...
8030         (build_range_type): ...this.  Call build_range_type_1.
8031         (build_nonshared_range_type): New function.
8032         (build_array_type_1): New function, built from...
8033         (build_array_type: ...this.  Call build_array_type_1.
8034         (build_nonshared_array_type): New function.
8035         * tree.h (build_nonshared_range_type): Declare.
8036         (build_nonshared_array_type): Likewise.
8037
8038 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
8039
8040         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
8041         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8042         (arm_class_likely_spilled_p): New function.
8043
8044 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
8045
8046         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
8047         indirect functions.
8048         (ix86_split_ashl): Ditto.
8049         (ix86_split_ashr): Ditto.
8050         (ix86_split_lshr): Ditto.
8051         (ix86_adjust_counter): Ditto.
8052
8053 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8054
8055         * c-family/c-common.h (constant_string_class): Documented with
8056         comment identical to the one already in c-common.c.
8057
8058 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8059
8060         * dwarf2out.c (any_cfis_emitted): New static variable.
8061         (add_fde_cfi): Set it.
8062         (dwarf2out_frame_debug): Clear it before processing,
8063         if it is set afterwards, flush any queued reg saves.
8064
8065         PR debug/45124
8066         * dwarf2out.c (add_accessibility_attribute): Assume
8067         DW_ACCESS_private as the default for dwarf_version > 2
8068         and DW_TAG_class_type parent.
8069         (gen_inheritance_die): Assume DW_ACCESS_public as the default
8070         for dwarf_version > 2 and parent other than DW_TAG_class_type.
8071
8072 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8073
8074         PR target/45726
8075         * arm.md (arm_movt): Only enable on machines with MOVT.
8076
8077 2010-09-20  Jie Zhang  <jie@codesourcery.com>
8078
8079         * config/arm/arm.c (arm_address_offset_is_imm): New.
8080         (arm_early_store_addr_dep): New.
8081         (arm_early_load_addr_dep): New.
8082         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
8083         (arm_early_load_addr_dep): Declare.
8084         (arm_address_offset_is_imm): Declare.
8085         * config/arm/cortex-m4.md: New file.
8086         * config/arm/cortex-m4-fpu.md: New file.
8087         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
8088         (attr generic_sched): Exclude cortexm4.
8089         (attr generic_vfp): Exclude cortexm4.
8090
8091 2010-09-20  Richard Guenther  <rguenther@suse.de>
8092
8093         PR middle-end/45704
8094         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
8095
8096 2010-09-20  Jan Hubicka  <jh@suse.cz>
8097
8098         PR tree-optimize/45605
8099         * cgraph.h (const_value_known_p): Declare.
8100         (varpool_decide_const_value_known): Remove.
8101         * tree-ssa-ccp.c (get_base_constructor): Use it.
8102         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
8103         * expr.c (string_constant): Likewise.
8104         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
8105         * ipa.c (ipa_discover_readonly_nonaddressable_var,
8106         function_and_variable_visibility): Likewise.
8107         * gimplify.c (gimplify_call_expr): Likewise.
8108         * gimple-fold.c (get_symbol_constant_value): Likewise.
8109         * varpool.c (varpool_decide_const_value_known): Replace by...
8110         (const_value_known_p): ... this one; handle other kinds of DECLs
8111         too and work for automatic vars.
8112         (varpool_finalize_decl): Use const_value_known_p.
8113
8114 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8115
8116         PR target/45726
8117         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
8118
8119 2010-09-20  Richard Guenther  <rguenther@suse.de>
8120
8121         PR tree-optimization/45705
8122         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
8123
8124 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8125
8126         PR rtl-optimization/45695
8127         * combine.c (try_combine): When splitting a two set pattern,
8128         make sure the pattern which will be put into i2 doesn't use REGs
8129         or MEMs set by insns in between i2 and i3.
8130
8131 2010-09-19  Jan Hubicka  <jh@suse.cz>
8132
8133         PR lto/44246
8134         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
8135         processing same node twice.
8136
8137 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
8138
8139         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
8140         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8141         (bfin_class_likely_spilled_p): New function
8142
8143 2010-09-19  Ira Rosen  <irar@il.ibm.com>
8144
8145         PR tree-optimization/45714
8146         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
8147         created in vectorizable_call instead of the original statement in
8148         def stmt updates.
8149
8150 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
8151
8152         * config/i386/i386-protos.h (split_double_mode): New prototype.
8153         (split_di, split_ti): Remove prototypes.
8154         * config/i386/i386.c (split_double_mode): New function.
8155         (split_di, split_ti): Remove.
8156         (ix86_expand_branch): Use split_double_mode.
8157         (ix86_split_to_parts): Ditto.
8158         (ix86_split_ashl): Ditto.
8159         (ix86_split_ashr): Ditto.
8160         (ix86_split_lshr): Ditto.
8161         (ix86_force_to_memory): Ditto.
8162         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
8163
8164 2010-09-18  Jan Hubicka  <jh@suse.cz>
8165
8166         PR tree-optimization/45453
8167         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
8168         virtual functions are reachable.
8169         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
8170         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
8171         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
8172         when modifying function.
8173
8174 2010-09-18  Jan Hubicka  <jh@suse.cz>
8175
8176         PR tree-optimization/45605
8177         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
8178         * gimple-fold.c (static_object_in_other_unit_p): New function.
8179         (canonicalize_constructor_val): Use it.
8180         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
8181         returning NULL.
8182         (gimple_fold_obj_type_ref_known_binfo): Use
8183         static_object_in_other_unit_p.
8184
8185 2010-09-18  Richard Guenther  <rguenther@suse.de>
8186
8187         PR tree-optimization/45709
8188         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
8189         insertions until after all PHI nodes of the block are processed.
8190
8191 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
8192
8193         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
8194
8195 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
8196
8197         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
8198
8199 2010-09-18  Richard Guenther  <rguenther@suse.de>
8200
8201         PR tree-optimization/45709
8202         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
8203
8204 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8205
8206         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
8207         (dot_deps_stmt): Same.
8208         * graphite-poly.c (dot_lst): Same.
8209         * graphite-scop-detection.c (dot_all_scops): Same.
8210         (dot_scop): Same.
8211
8212 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8213
8214         Revert:
8215         2009-12-16  Ben Elliston  <bje@au.ibm.com>
8216
8217         * tree-data-ref.c (dot_rdg_1): Added back.
8218         (dot_rdg): Same.  Added "#if 0" around system call.
8219
8220 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8221             Richard Henderson  <rth@redhat.com>
8222
8223         * config/i386/i386.c (initial_ix86_tune_features): Add
8224         X86_TUNE_PAD_SHORT_FUNCTION.
8225         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
8226         (ix86_count_insn): New.
8227         (ix86_pad_short_function): Likewise.
8228         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
8229
8230         * config/i386/i386.h (ix86_tune_indices): Add
8231         X86_TUNE_PAD_SHORT_FUNCTION.
8232         (TARGET_PAD_SHORT_FUNCTION): New.
8233
8234         * config/i386/i386.md (UNSPEC_NOPS): New.
8235         (nops): Likewise.
8236
8237 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8238
8239         PR middle-end/45234
8240         * calls.c (expand_call): Make sure that all variable sized
8241         adjustments are multiple of preferred stack boundary after
8242         stack alignment.
8243
8244 2010-09-17  DJ Delorie  <dj@redhat.com>
8245
8246         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
8247         passed an invalid value, print an error instead of ICEing.
8248         (valid_psw_flag): New.
8249         (rx_expand_builtin): Call it for setpsw/clrpsw.
8250         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
8251
8252         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
8253         (bitclr_in_memory): Likewise.
8254         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
8255
8256 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8257
8258         PR middle-end/45678
8259         * cfgexpand.c (update_stack_alignment): New.
8260         (get_decl_align_unit): Use it.
8261         (expand_one_stack_var_at): Call update_stack_alignment.
8262
8263 2010-09-17  Richard Guenther  <rguenther@suse.de>
8264
8265         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
8266         Properly copy the read string.
8267
8268 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
8269
8270         * doc/options.texi (Variable): Document.
8271         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
8272         generate target_flags declarations explicitly.  Don't define
8273         VarExists variables for the driver.
8274         * common.opt (target_flags): New Variable record.
8275         (flag_dump_unnumbered, flag_dump_unnumbered_links,
8276         flag_var_tracking, flag_var_tracking_assignments,
8277         flag_var_tracking_assignments_toggle): Don't mark variables with
8278         VarExists.
8279         * config/i386/i386.c (ix86_isa_flags): Don't define here.
8280         * config/i386/i386.opt (ix86_isa_flags): Define here.
8281         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
8282         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
8283         VarExists.
8284         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
8285         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
8286         Only define for generator programs.
8287         * rtlanal.c (target_flags): Remove.
8288         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
8289         flag_var_tracking_assignments_toggle): Remove.
8290
8291 2010-09-17  Michael Matz  <matz@suse.de>
8292
8293         PR tree-optimization/43432
8294         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8295         Accept backwards consecutive accesses.
8296         (vect_create_data_ref_ptr): If step is negative generate
8297         decreasing IVs.
8298         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
8299         (perm_mask_for_reverse, reverse_vec_elements): New functions.
8300         (vectorizable_load): Handle loads with negative steps when easily
8301         possible.
8302
8303 2010-09-03  Jan Hubicka  <jh@suse.cz>
8304
8305         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
8306
8307 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
8308
8309         * config/v850/v850.c (v850_function_value_regno_p): Make static.
8310         Adjust comments. Declare.
8311         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
8312         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
8313
8314 2010-09-17  Richard Guenther  <rguenther@suse.de>
8315
8316         * common.opt (combine): Remove.
8317         * gcc.c (default_compilers): Remove specs testing combine.
8318         The C compilers no longer can combine.
8319         (option_map): Remove -combine.
8320         (display_help): Remove -combine.
8321         (driver_handle_option): Remove OPT_combine handling.
8322         (compile_input_file_p): Remove.
8323         (do_spec): Remove code concerning combine.
8324         (main): Likewise.
8325         * doc/invoke.texi: Remove traces of -combine.
8326         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
8327
8328 2010-09-17  Richard Guenther  <rguenther@suse.de>
8329
8330         PR middle-end/45678
8331         * builtins.c (fold_builtin_memory_op): Always properly adjust
8332         alignment of memory accesses.
8333
8334 2010-09-16  Jan Hubicka  <jh@suse.cz>
8335
8336         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
8337         processing clone.
8338
8339 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
8340
8341         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
8342
8343         * config/i386/i386.c (predict_jump): Add prototype.
8344         (flag_opts): Add -m8bit-idiv.
8345         (ix86_split_idivmod): New.
8346
8347         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
8348         Add 2 splitters for SI/DI mode divide.
8349         (divmod<mode>4_1): New pattern.
8350         (udivmod<mode>4_1): Likewise.
8351         (testdi_ccno_1): Likewise.
8352
8353         * config/i386/i386.opt (m8bit-idiv): New.
8354
8355         * doc/invoke.texi: Document -m8bit-idiv.
8356
8357 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
8358
8359         PR bootstrap/45680
8360         * config/i386/i386.c (min_insn_size): Moved out of the
8361         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
8362
8363 2010-09-16  Jan Hubicka  <jh@suse.cz>
8364
8365         * lto-cgraph.c (lto_output_node): Fix handling of clones.
8366         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
8367         unreachable clones with reachable clones.
8368         * tree-inline.c (copy_bb): Fix sanity checking when producing
8369         unreachable clone.
8370
8371 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
8372
8373         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
8374         (TARGET_MEMORY_MOVE_COST): Define.
8375         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
8376
8377 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
8378
8379         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
8380         maybe_tidy_empty_bb.
8381
8382         Revert:
8383         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
8384         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
8385
8386 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
8387
8388         * target.def (target_option.optimization): New hook.
8389         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
8390         TARGET_OPTION_OPTIMIZATION hook.
8391         * doc/tm.texi: Regenerate.
8392         * hooks.c (hook_void_int_int): New.
8393         * hooks.h (hook_void_int_int): Declare.
8394         * opts.c: Don't include tm_p.h.
8395         (decode_options): Use targetm.target_option.optimization instead
8396         of OPTIMIZATION_OPTIONS.
8397         * system.h (OPTIMIZATION_OPTIONS): Poison.
8398         * config/arm/arm-protos.h (arm_optimization_options): Remove.
8399         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
8400         (arm_optimization_options): Rename to arm_option_optimization.
8401         Make static.
8402         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
8403         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
8404         (cris_option_optimization): New.
8405         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
8406         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
8407         (crx_option_optimization): New.
8408         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
8409         * config/frv/frv-protos.h (frv_optimization_options): Remove.
8410         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
8411         (frv_optimization_options): Rename to frv_option_optimization.
8412         Make static.
8413         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
8414         * config/h8300/h8300.c (h8300_option_optimization): New.
8415         (TARGET_OPTION_OPTIMIZATION): Define.
8416         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
8417         * config/i386/i386-protos.h (optimization_options): Remove.
8418         * config/i386/i386.c (optimization_options): Rename to
8419         ix86_option_optimization.  Make static.
8420         (TARGET_OPTION_OPTIMIZATION): Define.
8421         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
8422         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
8423         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
8424         (ia64_optimization_options): Rename to ia64_option_optimization.
8425         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
8426         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
8427         commented-out definition.
8428         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8429         instead of OPTIMIZATION_OPTIONS.
8430         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
8431         (m32r_option_optimization): New.
8432         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
8433         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
8434         Remove.
8435         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
8436         (mcore_option_optimization): New.
8437         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
8438         * config/mep/mep-protos.h (mep_optimization_options): Remove.
8439         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
8440         (mep_optimization_options): Rename to mep_option_optimization.
8441         Make static.  Take unused level and size parameters.
8442         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
8443         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
8444         (mmix_option_optimization): New.
8445         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
8446         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
8447         (pdp11_option_optimization): New.
8448         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
8449         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
8450         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
8451         (optimization_options): Rename to rs6000_option_optimization.
8452         Make static.
8453         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
8454         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
8455         * config/rx/rx.c (rx_set_optimization_options): Rename to
8456         rx_option_optimization.  Make static.  Take unused level and size
8457         parameters.
8458         (TARGET_OPTION_OPTIMIZATION): Define.
8459         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
8460         * config/s390/s390-protos.h (optimization_options): Remove.
8461         * config/s390/s390.c (optimization_options): Rename to
8462         s390_option_optimization.  Make static.  Don't mark size parameter
8463         unused.
8464         (TARGET_OPTION_OPTIMIZATION): Define.
8465         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
8466         * config/sh/sh-protos.h (sh_optimization_options): Remove.
8467         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
8468         (sh_optimization_options): Rename to sh_option_optimization.  Make
8469         static.  Don't mark parameters unused.
8470         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
8471         * config/spu/spu-protos.h (spu_optimization_options): Remove.
8472         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
8473         (spu_optimization_options): Rename to spu_option_optimization.
8474         Make static.
8475         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
8476         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
8477         (v850_option_optimization): New.
8478         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
8479         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
8480         (xtensa_option_optimization): New.
8481         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
8482
8483 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
8484
8485         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
8486         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
8487         * doc/tm.texi: Regenerate.
8488         * system.h (OVERRIDE_OPTIONS): Poison.
8489         * target.def (override): Default to hook_void_void.
8490         * targhooks.c (default_target_option_override): Remove.
8491         * genmodes.c, machmode.def: Update comments mentioning
8492         OVERRIDE_OPTIONS.
8493         * config/alpha/alpha-modes.def: Update comment mentioning
8494         alpha_override_options.
8495         * config/alpha/alpha-protos.h (override_options): Remove.
8496         * config/alpha/alpha.c (override_options): Rename to
8497         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
8498         (TARGET_OPTION_OVERRIDE): Define.
8499         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
8500         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
8501         of OVERRIDE_OPTIONS.
8502         * config/arc/arc-protos.h (arc_init): Remove.
8503         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
8504         (arc_init): Rename to arc_option_override.  Make static.
8505         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
8506         (OVERRIDE_OPTIONS): Remove.
8507         * config/arm/arm-protos.h (arm_override_options): Remove.
8508         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
8509         (arm_override_options): Rename to arm_option_override.  Make
8510         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
8511         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
8512         * config/arm/arm.md: Update comment referring to arm_override_options.
8513         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
8514         instead of OVERRIDE_OPTIONS.
8515         * config/avr/avr-protos.h (avr_override_options): Remove.
8516         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
8517         (avr_override_options): Rename to avr_option_override.  Make static.
8518         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
8519         * config/bfin/bfin-protos.h (override_options): Remove (twice).
8520         * config/bfin/bfin.c (override_options): Rename to
8521         bfin_option_override.  Make static.
8522         (TARGET_OPTION_OVERRIDE): Define.
8523         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
8524         * config/cris/cris-protos.h (cris_override_options): Remove.
8525         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
8526         (cris_override_options): Rename to cris_option_override.  Make static.
8527         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
8528         * config/frv/frv-protos.h (frv_override_options): Remove.
8529         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
8530         (frv_override_options): Rename to frv_option_override.  Make static.
8531         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
8532         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
8533         * config/h8300/h8300.c (h8300_init_once): Rename to
8534         h8300_option_override.  Make static.
8535         (TARGET_OPTION_OVERRIDE): Define.
8536         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
8537         * config/i386/i386-protos.h (override_options): Remove.
8538         * config/i386/i386.c (override_options): Rename to
8539         ix86_option_override_internal.  Make static.  Comments referring
8540         to this function and callers changed.
8541         (ix86_option_override): New.
8542         (TARGET_OPTION_OVERRIDE): Define.
8543         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
8544         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
8545         * config/ia64/ia64.c (ia64_file_start): Update comment referring
8546         to ia64_override_options.
8547         * config/iq2000/iq2000-protos.h (override_options): Remove.
8548         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
8549         (override_options): Rename to iq2000_option_override.  Make static.
8550         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
8551         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
8552         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
8553         (lm32_override_options): Rename to lm32_option_override.  Make static.
8554         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
8555         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
8556         (m32r_option_override): New.
8557         (m32r_init): Update comment.
8558         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
8559         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
8560         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
8561         (m68hc11_override_options): Rename to m68hc11_option_override.
8562         Make static.  Return void.
8563         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
8564         * config/m68k/m68k-protos.h (override_options): Remove.
8565         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
8566         (override_options): Rename to m68k_option_override.  Make static.
8567         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
8568         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
8569         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
8570         (mcore_override_options): Rename to mcore_option_override.  Make
8571         static.
8572         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
8573         * config/mep/mep-protos.h (mep_override_options): Remove.
8574         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
8575         (mep_override_options): Rename to mep_option_override.  Make static.
8576         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
8577         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
8578         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
8579         (mmix_override_options): Rename to mmix_option_override.  Make static.
8580         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
8581         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
8582         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
8583         (mn10300_override_options): Rename to mn10300_option_override.
8584         Make static.
8585         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
8586         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
8587         * config/moxie/moxie.c (moxie_override_options): Rename to
8588         moxie_option_override.  Make static.
8589         (TARGET_OPTION_OVERRIDE): Define.
8590         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
8591         * config/picochip/picochip-protos.h (picochip_override_options):
8592         Remove.  Update comment referring to picochip_override_options.
8593         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
8594         (picochip_override_options): Rename to picochip_option_override.
8595         Make static.  Update comment and definition of
8596         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
8597         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
8598         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8599         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8600         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8601         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8602         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8603         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
8604         instead of OVERRIDE_OPTIONS.
8605         * config/rs6000/rs6000-modes.def: Update comment referring to
8606         rs6000_override_options.
8607         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
8608         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
8609         (rs6000_override_options): Rename to
8610         rs6000_option_override_internal.  Make static.  Commented
8611         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
8612         (rs6000_option_override): New.
8613         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
8614         instead of OVERRIDE_OPTIONS.
8615         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
8616         * config/s390/s390-protos.h (override_options): Remove.
8617         * config/s390/s390.c (override_options): Rename to
8618         s390_option_override.  Make static.
8619         (TARGET_OPTION_OVERRIDE): Define.
8620         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
8621         * config/score/score-protos.h (score_override_options): Remove.
8622         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
8623         (score_override_options): Rename to score_option_override.  Make
8624         static.
8625         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
8626         Update comment referring to override_options.
8627         * config/score/score3.c (score3_override_options): Rename to
8628         score3_option_override.
8629         * config/score/score3.h (score3_override_options): Rename to
8630         score3_option_override.
8631         * config/score/score7.c (score7_override_options): Rename to
8632         score7_option_override.
8633         * config/score/score7.h (score7_override_options): Rename to
8634         score7_option_override.
8635         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
8636         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
8637         (sparc_override_options): Rename to sparc_option_override.  Make
8638         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
8639         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
8640         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
8641         instead of OVERRIDE_OPTIONS.
8642         * config/spu/spu-protos.h (spu_override_options): Remove.
8643         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
8644         (spu_override_options): Rename to spu_option_override.  Make
8645         static.
8646         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
8647         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
8648         OVERRIDE_OPTIONS.
8649         * config/vax/vax-protos.h (override_options): Remove.
8650         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
8651         (override_options): Rename to vax_option_override.  Make static.
8652         Call SUBTARGET_OVERRIDE_OPTIONS.
8653         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
8654         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
8655         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
8656         * config/xtensa/xtensa-protos.h (override_options): Remove.
8657         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
8658         (override_options): Rename to xtensa_option_override.  Make static.
8659         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
8660
8661 2010-09-16  Richard Guenther  <rguenther@suse.de>
8662
8663         PR tree-optimization/45623
8664         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
8665         (get_constraint_for_component_ref): If computing a constraint
8666         for the rhs handle type punning through unions.
8667         (get_constraint_for_address_of): Adjust.
8668         (get_constraint_for_1): Likewise.
8669         (get_constraint_for): Likewise.
8670         (get_constraint_for_rhs): New function.
8671         (do_structure_copy): Adjust.
8672         (make_constraint_to): Likewise.
8673         (handle_const_call): Likewise.
8674         (find_func_aliases): Likewise.
8675         (process_ipa_clobber): Likewise.
8676         (create_variable_info_for): Likewise.
8677
8678 2010-09-16  Ira Rosen  <irar@il.ibm.com>
8679
8680         * tree-vectorizer.c: Fix documentation.
8681         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
8682         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
8683         is_pattern_stmt_p, is_loop_header_bb_p,
8684         stmt_vinfo_set_inside_of_loop_cost,
8685         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
8686         known_alignment_for_access_p): Likewise.
8687         * tree-vect-loop.c: Fix documentation.
8688         (vect_get_cost): Start function name from new line.
8689         * tree-vect-data-refs.c: Fix documentation.
8690         * tree-vect_stmts.c: Likewise.
8691         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
8692         (vectorizable_store): Free vec_oprnds if allocated.
8693         (vectorizable_condition): Initialize several variables to avoid
8694         warnings.
8695         * tree-vect-slp.c: Fix documentation.
8696
8697 2010-09-16  Richard Guenther  <rguenther@suse.de>
8698
8699         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
8700         is TS_TRANSLATION_UNIT_DECL.
8701         (initialize_tree_contains_struct): Adjust.
8702         (all_translation_units): New global vector.
8703         (build_translation_unit_decl): New function.
8704         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
8705         (struct tree_translation_unit_decl): New.
8706         (all_translation_units): Declare.
8707         (union tree_node): Add translation_unit_decl member.
8708         (build_translation_unit_decl): Declare.
8709         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
8710         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
8711         New function.
8712         (pack_value_fields): Call it.
8713         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
8714         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
8715         (lto_output_tree_pointers): Call it.
8716         * lto-streamer-in.c (lto_input_tree_ref): Handle references
8717         to TRANSLATION_UNIT_DECL.
8718         (unpack_ts_translation_unit_decl_value_fields): New function.
8719         (unpack_value_fields): Call it.
8720         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
8721         (lto_input_tree_pointers): Call it.
8722         * lto-streamer.c (check_handled_ts_structures): Adjust.
8723         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
8724         * c-decl.c (all_translation_units): Remove.
8725         (pop_scope): Use build_translation_unit_decl.
8726         (collect_all_refs): Adjust.
8727         (for_each_global_decl): Likewise.
8728         (c_write_global_declarations): Likewise.
8729
8730 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
8731
8732         PR bootstrap/45686
8733         * fold-const.c (fold_checksum_tree): Change slot from const void **
8734         to void **, use CONST_CAST_TREE to store into *slot.
8735
8736 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
8737
8738         * config/i386/i386.md: Remove unneeded empty conditions and
8739         preparation statements from expanders.
8740         * config/i386/mmx.md: Ditto.
8741         * config/i386/sse.md: Ditto.
8742
8743 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
8744
8745         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
8746
8747 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
8748
8749         PR rtl-optimization/45593
8750         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
8751         insns that were in delay slots as stand-alone insns.
8752
8753 2010-09-15  Ian Lance Taylor  <iant@google.com>
8754
8755         * incpath.c (remove_duplicates): If name is not a directory, issue
8756         a warning rather than an error.
8757
8758 2010-09-15  Martin Jambor  <mjambor@suse.cz>
8759
8760         PR middle-end/45644
8761         * tree-sra.c (create_access): Check for bit-fields directly.
8762
8763 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
8764
8765         PR tree-optimization/45633
8766         * tree-cfg.c (verify_gimple_assign_binary): Allow
8767         MINUS_EXPR with lhs and rhs1 pointer vector and
8768         rhs2 sizetype vector.
8769         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
8770         or vector pointer use TER to optimize pointer subtraction.
8771
8772 2010-09-15  Jie Zhang  <jie@codesourcery.com>
8773
8774         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
8775         fcmpd to fcmps.
8776
8777 2010-09-15  Ian Lance Taylor  <iant@google.com>
8778
8779         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
8780
8781 2010-09-15  Ian Lance Taylor  <iant@google.com>
8782
8783         * function.c (get_arg_pointer_save_area): Set
8784         arg_pointer_save_area_init to true.
8785
8786 2010-09-15  Martin Jambor  <mjambor@suse.cz>
8787
8788         * tree-sra.c (generate_subtree_copies): Updated comment.
8789         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
8790         obtained from the statement iterator instead.
8791         (load_assign_lhs_subreplacements): Removed parameters lhs and
8792         right_offset, which is obtained from top_racc instead.  Parameter lacc
8793         is now expected to be the root of the processed tree rather than root's
8794         first child.  Updated all callers.
8795
8796 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
8797
8798         * config/pdp11/pdp11.c (register_move_cost): Rename to
8799         pdp11_register_move_cost.
8800         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
8801         pdp11_register_move_cost.
8802         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
8803         pdp11_register_move_cost instead of register_move_cost.
8804
8805 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
8806
8807         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
8808         pattern for vmovn. Expansion in case of non
8809         -mvectorize-with-neon-quad.
8810         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
8811         non- -mvectorize-with-neon-quad case.
8812         (move_lo_quad_<mode>): New expansion to vmov into low part.
8813         (move_hi_quad_<mode>): New expansion to vmov into high part.
8814         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
8815         (move_lo_quad_v4sf): Likewise.
8816         (move_lo_quad_v8hi): Likewise.
8817         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
8818         low part.
8819         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
8820         high part.
8821         * config/arm/iterators.md (ANY128): New mode iterator.
8822         (V_narrow_pack): New mode attribute.
8823         (V_HALF): Add attribute.
8824         (V_DOUBLE): Add attribute.
8825         (V_mode_nunits): Add attribute.
8826
8827 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
8828
8829         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
8830         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
8831
8832 2010-09-15  Olivier Hainque  <hainque@adacore.com>
8833             Jose Ruiz  <ruiz@adacore.com>
8834
8835         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
8836         * config/alpha/osf5-unwind.h: New file.
8837
8838 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
8839
8840         PR bootstrap/45672
8841         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
8842         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
8843         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
8844
8845 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8846
8847         * c-lang.h (struct lang_type): Add variable_size GTY option.
8848
8849 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
8850
8851         PR bootstrap/45672
8852         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
8853
8854 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
8855
8856         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
8857         result isn't used in memory address.
8858
8859 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
8860
8861         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
8862         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
8863         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
8864         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8865         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8866         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8867
8868         * target.def: Add units_per_simd_word to vectorize.
8869
8870         * targhooks.c (default_units_per_simd_word): New.
8871         * targhooks.h (default_units_per_simd_word): Likewise.
8872         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
8873         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
8874         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
8875         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
8876         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
8877         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
8878         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
8879         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
8880
8881         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
8882         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
8883
8884         * tree-vect-stmts.c: Don't include "tm_p.h".
8885         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
8886         with targetm.vectorize.units_per_simd_word.
8887
8888         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
8889
8890         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
8891
8892         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
8893         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
8894
8895         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
8896         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
8897
8898         * doc/tm.texi: Regenerated.
8899
8900 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
8901
8902         * tree-vect-stmts.c: Include "tm_p.h".
8903
8904         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
8905         out of RTX_CODE.
8906
8907 2010-09-14  Martin Jambor  <mjambor@suse.cz>
8908
8909         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
8910         location of generated statement.  Changed all callers.
8911         (build_ref_for_model): New parameter loc which used to set location of
8912         all generated expressions.  Changed all callers.
8913         (generate_subtree_copies): Likewise.
8914         (init_subtree_with_zero): Likewise.
8915         (sra_modify_expr): Set locations of all generated statements and
8916         expressions to the location the original statement.
8917         (handle_unscalarized_data_in_subtree): Likewise.
8918         (load_assign_lhs_subreplacements): Likewise.
8919         (sra_modify_constructor_assign): Likewise.
8920         (sra_modify_assign): Likewise.
8921
8922 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
8923
8924         PR target/45277
8925         PR target/45363
8926         PR target/45407
8927         * doc/install.texi (sparc*-*-*): New section.
8928         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
8929
8930 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
8931
8932         PR middle-end/45567
8933         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
8934         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
8935         (expand_builtin): Adjust caller.
8936         (expand_builtin_unop): Only use subtarget if it has the right mode.
8937
8938 2010-09-14  Tristan Gingold  <gingold@adacore.com>
8939
8940         * configure.ac (plugins): Fix typos.
8941         * configure: Regenerate.
8942
8943 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
8944
8945         PR debug/45660
8946         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
8947         gen_type_die for function/method return type.
8948
8949 2010-09-14  Ira Rosen  <irar@il.ibm.com>
8950
8951         PR tree-optimization/45470
8952         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
8953         can throw an exception.
8954         * tree-vect-stmts.c (vectorizable_call): Likewise.
8955
8956 2010-09-14  DJ Delorie  <dj@redhat.com>
8957
8958         PR target/44749
8959         * config/mep/mep-protos.h (mep_save_register_info,
8960         mep_reinit_regs, mep_init_regs): Declare.
8961
8962         * config/mep/mep.c: Move all target definitions to the end of the
8963         file to avoid the need for duplicate declarations.
8964         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
8965         (mep_reorg_erepeat): Remove unused variables.
8966         (mep_expand_builtin): Likewise.
8967
8968         * config/mep/mep-pragma.c: Don't include rtl.h.
8969         (INVALID_REGNUM): New.
8970         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
8971         functions.
8972         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
8973         Avoid enum/integer math.
8974
8975 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
8976
8977         PR target/44749
8978         * config/mep/t-mep (GTM_H): Add insn-constants.h.
8979         * config/mep/mep.c (mep_conditional_register_usage): Take no
8980         parameters.
8981         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
8982         prototype.
8983         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
8984         call to mep_conditional_register_usage.
8985
8986 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
8987
8988         PR debug/43937
8989         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
8990         the DECL as well.
8991
8992 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
8993
8994         PR rtl-optimization/45617
8995         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
8996         even if low N bits of X aren't known to be zero.
8997
8998 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
8999
9000         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
9001
9002         * config/i386/i386.c (initial_ix86_tune_features): Add
9003         X86_TUNE_VECTORIZE_DOUBLE.
9004         (ix86_units_per_simd_word): New.
9005
9006         * config/i386/i386.h (ix86_tune_indices): Add
9007         X86_TUNE_VECTORIZE_DOUBLE.
9008         (TARGET_VECTORIZE_DOUBLE): New.
9009         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
9010
9011 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
9012
9013         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
9014         (new_temp_expr_table): Allocate call_cnt vector.
9015         (free_temp_expr_table): Free it.
9016         (process_replaceable): Add call_cnt parm and set in vector.
9017         (find_replaceable_in_bb): Skip replacement if def/use span a call.
9018         (debug_ter): Dump call_cnt value, remove stderr uses.
9019
9020 2010-09-13  Jan Hubicka  <jh@suse.cz>
9021
9022         * tree.c (build_zero_cst): New.
9023         * tree.h (build_zero_cst): Declare.
9024         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
9025         (get_base_constructor): Break out from ...
9026         (fold_const_aggregate_ref): Here; handle empty constructors.
9027
9028 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9029
9030         * config/arm/arm.md: (define_attr "conds"): Update comment.
9031         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
9032         conds attribute to clob.
9033         (arm_sync_compare_and_swapsi): Likewise.
9034         (arm_sync_compare_and_swap<mode>): Likewise.
9035         (arm_sync_lock_test_and_setsi): Likewise.
9036         (arm_sync_lock_test_and_set<mode>): Likewise.
9037         (arm_sync_new_<sync_optab>si): Likewise.
9038         (arm_sync_new_nandsi): Likewise.
9039         (arm_sync_new_<sync_optab><mode>): Likewise.
9040         (arm_sync_new_nand<mode>): Likewise.
9041         (arm_sync_old_<sync_optab>si): Likewise.
9042         (arm_sync_old_nandsi): Likewise.
9043         (arm_sync_old_<sync_optab><mode>): Likewise.
9044         (arm_sync_old_nand<mode>): Likewise.
9045
9046 2010-09-13  Olivier Hainque  <hainque@adacore.com>
9047
9048         * fwprop.c (forward_propagate_and_simplify): Only attach a
9049         REG_EQUAL note to an insn if the destination is a register.
9050         * gcse.c (try_replace_reg): Likewise.
9051
9052 2010-09-13  Richard Guenther  <rguenther@suse.de>
9053
9054         PR tree-optimization/45611
9055         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
9056         (copy_ref_info): Likewise.
9057
9058 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
9059
9060         PR debug/45604
9061         PR debug/45419
9062         PR debug/45408
9063         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9064         types of MEM_REF pointer types to the same type.
9065
9066 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
9067
9068         PR rtl-optimization/41087
9069         * ifcvt.c (noce_get_condition): Don't allow conditions with
9070         side-effects.
9071
9072 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
9073
9074         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9075         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
9076         * config/frv/frv.c (frv_register_move_cost): Make static. Change
9077         arguments type to reg_class_t. Add mode argument.
9078         (frv_memory_move_cost): New.
9079         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
9080
9081 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
9082
9083         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
9084         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
9085
9086 2010-09-10  Jan Hubicka  <jh@suse.cz>
9087
9088         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
9089
9090 2010-09-10  Richard Guenther  <rguenther@suse.de>
9091
9092         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
9093         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
9094         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
9095         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
9096         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
9097
9098 2010-09-10  Richard Guenther  <rguenther@suse.de>
9099
9100         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
9101         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
9102         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
9103         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
9104
9105 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
9106
9107         PR middle-end/45634
9108         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
9109         of string folding is of integral type.
9110
9111 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
9112
9113         * doc/invoke.texi (-x): Fix typo.
9114
9115 2010-09-10  Richard Guenther  <rguenther@suse.de>
9116
9117         PR debug/44115
9118         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
9119         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9120         Output DECL_DEBUG_EXPR.
9121         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9122         Input DECL_DEBUG_EXPR.
9123
9124 2010-09-10  Richard Guenther  <rguenther@suse.de>
9125
9126         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
9127         (build_index_type): Implement in terms of build_range_type.
9128         (build_range_type): Do not allow NULL_TREE type, improve
9129         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
9130         if we didn't hash.
9131         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
9132         create a distinct copy of the type.
9133
9134 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
9135
9136         * configure: Regenerated.
9137         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
9138
9139 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9140
9141         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
9142         * config/arm/cortex-a9-neon.md: New and partially generated.
9143         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
9144
9145 2010-09-10  Richard Guenther  <rguenther@suse.de>
9146
9147         * tree.h (build_index_2_type): Remove.
9148         * tree.c (build_index_2_type): Remove.
9149
9150 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
9151
9152         PR bootstrap/45630
9153         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
9154         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
9155         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
9156
9157 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9158
9159         PR tree-optimization/44972
9160         * tree-sra.c: Include toplev.h.
9161         (build_ref_for_offset): Entirely reimplemented.
9162         (build_ref_for_model): New function.
9163         (build_user_friendly_ref_for_offset): New function.
9164         (analyze_access_subtree): Removed build_ref_for_offset check.
9165         (propagate_subaccesses_across_link): Likewise.
9166         (create_artificial_child_access): Use
9167         build_user_friendly_ref_for_offset.
9168         (propagate_subaccesses_across_link): Likewise.
9169         (ref_expr_for_all_replacements_p): Removed.
9170         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
9171         (sra_modify_expr): Use build_ref_for_model.
9172         (load_assign_lhs_subreplacements): Likewise.
9173         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
9174         checks for return values of build_ref_for_offset.
9175         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
9176         build_ref_for_offset.
9177         * ipa-prop.h: Include gimple.h
9178         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
9179         (ipa_analyze_indirect_call_uses): Update comment.
9180         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
9181         (IPA_PROP_H): Likewise.
9182
9183 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9184
9185         PR tree-optimization/44972
9186         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
9187         calling build_ref_for_offset.
9188
9189 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9190
9191         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
9192         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
9193         * config/arm/arm-tune.md: Regenerate.
9194         * doc/invoke.texi (ARM Options): Document it.
9195
9196 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
9197
9198         * config/i386/i386.c: Include sched-int.h.
9199         (TARGET_SCHED_DISPATCH): Defined.
9200         (TARGET_SCHED_DISPATCH_DO): Defined.
9201         (DISPATCH_WINDOW_SIZE): Defined.
9202         (MAX_DISPATCH_WINDOWS): Defined.
9203         (MAX_INSN): Defined.
9204         (MAX_IMM): Defined.
9205         (MAX_IMM_SIZE): Defined.
9206         (MAX_IMM_32): Defined.
9207         (MAX_IMM_64): Defined.
9208         (MAX_LOAD): Defined.
9209         (MAX_STORE): Defined.
9210         (BIG): Defined.
9211         (dispatch_group): New.
9212         (num_allowable_groups): New.
9213         (group_name): New.
9214         (sched_insn_info_s): New.
9215         (dispatch_windows_s): New.
9216         (imm_info_s): New.
9217         (dispatch_window_list): New.
9218         (dispatch_window_list1): New.
9219         (get_mem_group): New.
9220         (is_cmp): New.
9221         (dispatch_violation): New.
9222         (is_branch): New.
9223         (is_prefetch): New.
9224         (init_window): New.
9225         (allocate_window): New.
9226         (init_dispatch_sched): New.
9227         (is_end_basic_block): New.
9228         (process_end_window): New.
9229         (allocate_next_window): New.
9230         (find_constant_1): New.
9231         (find_constant): New.
9232         (get_num_immediates): New.
9233         (has_immediate): New.
9234         (get_insn_path): New.
9235         (get_insn_group): New.
9236         (count_num_restricted): New.
9237         (fits_dispatch_window): New.
9238         (add_insn_window): New.
9239         (add_to_dispatch_window): New.
9240         (debug_dispatch_window_file): New.
9241         (debug_dispatch_window): New.
9242         (debug_insn_dispatch_info_file): New.
9243         (debug_ready_dispatch): New.
9244         (do_dispatch): New.
9245         (has_dispatch): New.
9246         * config/i386/i386.h (debug_ready_dispatch): Declared.
9247         (debug_dispatch_window): Declared.
9248         * config/i386/i386.opt (mdispatch-scheduler): New flag.
9249         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
9250         (TARGET_SCHED_DISPATCH_DO): New.
9251         * doc/tm.texi: Regererated.
9252         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
9253         ready_remove_first_dispatch
9254         (schedule_block): Call targetm.sched.dispatch and
9255         targetm.sched.dispatch_do.
9256         (sched_init): Call targetm.sched.dispatch and
9257         targetm.sched.dispatch_do.
9258         (ready_remove_first_dispatch): New.
9259         (number_in_ready): New.
9260         (get_ready_element): New.
9261         * hooks.c (hook_bool_rtx_int_false): New.
9262         (hook_void_rtx_int): New.
9263         * hooks.h (hook_bool_rtx_int_false): Declared.
9264         (hook_void_rtx_int): Declared.
9265         * sched-int.h (IS_DISPATCH_ON): Defined.
9266         (IS_CMP): Defined.
9267         (DISPATCH_VIOLATION): Defined.
9268         (FITS_DISPATCH_WINDOW): Defined.
9269         (DISPATCH_INIT): Defined.
9270         (ADD_TO_DISPATCH_WINDOW): Defined.
9271         (get_ready_element): Declared.
9272         (number_in_ready): Declared.
9273         * target.def (dispatch): Defined.
9274         (dispatch_do): Defined.
9275
9276 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9277
9278         PR middle-end/45312
9279         * reload1.c (merge_assigned_reloads): Remove.
9280         (reload_as_needed): Don't call it.
9281
9282 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
9283
9284         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
9285         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9286         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9287
9288 2010-09-09  Matthias Klose  <doko@ubuntu.com>
9289
9290         PR bootstrap/43847
9291         * configure.ac (--enable-plugin): Enhance for cross builds.
9292         * configure: Regenerate.
9293
9294 2010-09-09  Jan Hubicka  <jh@suse.cz>
9295
9296         PR tree-optimization/45598
9297         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
9298         string folding is of integral type.
9299
9300 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
9301
9302         * configure.ac (gnu_indirect_function): New test.
9303         * configure: Rebuilt.
9304         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
9305         * defaults.h (IFUNC_ASM_TYPE): Provide default.
9306
9307         * doc/extend.texi (Function Attributes): Document ifunc.
9308         * varasm.c (do_assemble_alias): Deal with ifuncs too.
9309
9310 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9311
9312         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
9313         epilogue instruction move.
9314
9315 2010-09-09  Jan Hubicka  <jh@suse.cz>
9316
9317         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
9318         command line to allow more partitions than input files.
9319
9320 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9321
9322         PR middle-end/44554
9323         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
9324
9325 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9326
9327         PR middle-end/40386
9328         * ira.c (pseudo_for_reload_consideration_p): Don't use
9329         flag_ira_share_spill_slots.
9330
9331 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9332
9333         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
9334         point zero operands that fit into a single GPR.
9335         (s390_preferred_reload_class): Ensure we only return general-purpose
9336         register classes.
9337         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
9338         floating-point zero operands into GPRs.
9339         ("*mov<mode>_64"): Likewise.
9340         ("mov<mode>"): Likewise using lhi.
9341
9342 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9343
9344         * config/s390/s390.c (s390_symref_operand_p): Return false for
9345         literal pool references.
9346         (s390_check_qrst_address): Update caller.
9347
9348 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
9349
9350         * config/i386/predicates.md (ext_register_operand): Check that
9351         SUBREG_REG is really a register before looking for REGNO.
9352         (reg_not_xmm0_operand): Handle SUBREGs correctly.
9353         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
9354
9355 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
9356
9357         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
9358         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
9359         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
9360         * print-rtl.c (print_rtx): Likewise.
9361         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9362         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
9363         for ADDR_EXPR with non-addressable object.
9364         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
9365         (struct dw_val_struct): Add v.val_decl_ref.
9366         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
9367         Handle DW_OP_GNU_implicit_pointer.
9368         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
9369         (get_ref_die_offset_label): New function.
9370         (implicit_ptr_descriptor): New function.
9371         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
9372         (loc_descriptor): Likewise.
9373         (gen_variable_die): Put even definitions into decl_die_table.
9374         (resolve_addr_in_expr): Resolve still unresolved
9375         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
9376         return false.
9377         (dwarf2out_finish): Call output_location_lists after outputting
9378         .debug_info and .debug_abbrev instead of before.
9379
9380 2010-09-09  Roland McGrath  <roland@redhat.com>
9381
9382         * dwarf2out.c (DWARF_REF_SIZE): Define.
9383         (size_of_loc_descr): Use it for DW_OP_call_ref.
9384
9385 2010-09-09  Alan Modra  <amodra@gmail.com>
9386
9387         * doc/invoke.text: Reinstate mcmodel=medium.
9388         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9389         CMODEL_MEDIUM as default.
9390         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
9391         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
9392         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
9393         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
9394
9395 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9396
9397         PR target/45250
9398         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
9399         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
9400         (builtin_longjmp): Likewise.
9401         (allocate_stack): Use hard_frame_pointer_rtx instead of
9402         frame_pointer_rtx.
9403         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
9404         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
9405         (pa_can_eliminate): Likewise.
9406         (TARGET_INTERNAL_ARG_POINTER): Define.
9407         (TARGET_CAN_ELIMINATE): Define.
9408         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
9409         pointer.
9410         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
9411         (pa_internal_arg_pointer, pa_can_eliminate,
9412         pa_initial_elimination_offset): New.
9413         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
9414         (HARD_FRAME_POINTER_REGNUM): Set to register three.
9415         (INITIAL_FRAME_POINTER_OFFSET): Delete.
9416         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
9417         Define.
9418         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
9419         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
9420         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
9421         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
9422         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
9423         new soft frame pointer.
9424         * config/pa/pa64-regs.h: Likewise.
9425
9426 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
9427
9428         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
9429         numerical constant.
9430         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
9431
9432 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
9433
9434         PR debug/45531
9435         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
9436
9437 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
9438
9439         PR debug/45419
9440         PR debug/45408
9441         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9442         qualifiers in otherwise equal MEM_REF pointer types.
9443         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
9444         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
9445
9446 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9447
9448         PR target/44392
9449         * config/arm/arm.md (bswapsi2): Handle condition correctly
9450         for armv6 and optimize_size.
9451
9452 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9453
9454         PR other/18555
9455         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
9456
9457 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
9458
9459         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
9460         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
9461         ix86_expand_strlen, legitimate_pic_address_disp_p,
9462         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
9463         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
9464         ix86_check_movabs, ix86_secondary_memory_needed): Change function
9465         prototype to bool.
9466         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
9467         return_in_memory_ms_64, ix86_check_movabs,
9468         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
9469         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
9470         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
9471         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
9472         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
9473         ix86_secondary_memory_needed): Change to bool.  Return
9474         "true" and "false" values.
9475         * config/i386/i386.md: Return "true" and "false" values.
9476
9477 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9478
9479         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9480         run_expensive_tests.
9481
9482 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9483
9484         * toplev.c (output_stack_usage): Use lbasename instead of basename.
9485
9486 2010-09-08  Martin Jambor  <mjambor@suse.cz>
9487
9488         PR other/45443
9489         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
9490         at -O3.
9491
9492 2010-09-08  Richard Guenther  <rguenther@suse.de>
9493
9494         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
9495         (visit): Adjust.
9496         (iterative_hash_gimple_type): Likewise.
9497         (gimple_type_hash): Likewise.
9498         (gimple_register_type): Likewise.
9499         (print_gimple_types_stats): Likewise.
9500         (free_gimple_type_tables): Likewise.
9501
9502 2010-09-08  Michael Matz  <matz@suse.de>
9503
9504         PR tree-optimization/43430
9505         * tree-vect-stmts.c (vectorizable_condition): Support multiple
9506         copies for conditional statements if it's not part of a reduction.
9507
9508 2010-09-08  Michael Matz  <matz@suse.de>
9509
9510         PR tree-optimization/33244
9511         * tree-ssa-sink.c (statement_sink_location): Don't sink into
9512         empty loop latches.
9513
9514 2010-09-08  Richard Guenther  <rguenther@suse.de>
9515
9516         PR tree-optimization/45578
9517         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
9518         Be more careful when transfering alignment information to
9519         the new induction variable.
9520         (copy_ref_info): Likewise.
9521
9522 2010-09-08  Richard Guenther  <rguenther@suse.de>
9523
9524         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
9525         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
9526
9527 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
9528
9529         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
9530         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
9531
9532 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
9533
9534         PR doc/45587
9535         * doc/md.texi: Fixed modes on several standard pattern names.
9536
9537 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
9538
9539         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
9540         (ashl<mode>3): ...this.
9541         (loongson_psra<V_suffix>): Rename to...
9542         (ashr<mode>3): ...this.
9543         (loongson_psrl<V_suffix>): Rename to...
9544         (lshr<mode>3): ...this.
9545         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
9546         (CODE_FOR_loongson_psllw): Define.
9547         (CODE_FOR_loongson_psrlh): Define.
9548         (CODE_FOR_loongson_psrlw): Define.
9549         (CODE_FOR_loongson_psrah): Define.
9550         (CODE_FOR_loongson_psraw): Define.
9551
9552 2010-09-07  Richard Henderson  <rth@redhat.com>
9553
9554         * tree-vect-data-refs.c: Include tm_p.h.
9555         * Makefile.in (tree-vect-data-refs.o): Update deps.
9556         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
9557         Move delarations outside #ifdef RTX_CODE.
9558
9559 2010-09-07  Richard Henderson  <rth@redhat.com>
9560
9561         * final.c (rest_of_handle_final): Unconditionally do
9562         output_function_exception_table before assemble_end_function.
9563
9564 2010-09-07  Jan Hubicka  <jh@suse.cz>
9565
9566         * tree-inline.c (tree_inlinable_function_p): Do not test
9567         DECL_REPLACEABLE_P.
9568         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
9569         update_callee_keys, cgraph_decide_inlining): Test function availability.
9570         * cif-code.def (OVERWRITABLE): New code.
9571
9572 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
9573             Jack Howarth  <howarth@bromo.med.uc.edu>
9574
9575         PR target/36502
9576         PR target/42313
9577         PR target/44651
9578         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
9579         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
9580         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
9581         MAX macro.
9582
9583 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
9584
9585         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
9586         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
9587
9588 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
9589
9590         * config.gcc: Don't append t-android for Android targets.
9591
9592         * config/t-android: Removed.
9593
9594 2010-09-07  Richard Henderson  <rth@redhat.com>
9595
9596         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
9597         * doc/tm.texi.in: Add doc marker.
9598         * doc/tm.texi: Rebuild.
9599         * except.c (switch_to_exception_section): Always build.
9600         (output_one_function_exception_table): Move section switch,
9601         personality output, and label output ...
9602         (output_function_exception_table): ... here.  Use the new
9603         personality hook.
9604
9605         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
9606         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
9607         TARGET_ASM_INIT_SECTIONS): New.
9608         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
9609         make static.
9610         (TARGET_ASM_UNWIND_EMIT): Update to match.
9611         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
9612
9613         * config/arm/arm.c (arm_asm_emit_except_personality): New.
9614         (arm_asm_init_sections): New.
9615         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
9616
9617 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9618
9619         * config/arm/arm.md: Remove unused variable.
9620
9621 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
9622
9623         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9624         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
9625         (m32r_memory_move_cost): New function.
9626
9627 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
9628
9629         * config.gcc: Append t-android for Android targets.
9630
9631         * config/t-android: New.
9632
9633 2010-09-07  Richard Henderson  <rth@redhat.com>
9634
9635         * target.def (unwind_emit_before_insn): New hook.
9636         * doc/tm.texi.in: Add @hook marker for it.
9637         * doc/tm.texi: Rebuild.
9638         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
9639
9640 2010-09-07  Martin Jambor  <mjambor@suse.cz>
9641
9642         PR fortran/43665
9643         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
9644         are any type attributes.
9645
9646 2010-09-07  Jan Hubicka  <jh@suse.cz>
9647
9648         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
9649         array_ref_low_bound in string access folding.
9650
9651 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
9652
9653         PR target/45206
9654         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
9655         eh_return fixup sequence.
9656
9657 2010-09-07  Jan Hubicka  <jh@suse.cz>
9658
9659         * gimple-fold.c (maybe_fold_reference): Verify that operand is
9660         gimple_min_invariant.
9661
9662 2010-09-07  Richard Guenther  <rguenther@suse.de>
9663
9664         PR middle-end/45569
9665         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
9666         nor CONSTRUCTOR can trap.
9667         * tree-complex.c (update_complex_assignment): Update EH info.
9668
9669 2010-09-07  Richard Guenther  <rguenther@suse.de>
9670
9671         PR middle-end/45569
9672         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
9673         * passes.c (execute_function_todo): Do not verify anything if
9674         we saw errors.
9675
9676 2010-09-07  Richard Guenther  <rguenther@suse.de>
9677
9678         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
9679
9680 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
9681
9682         PR target/43137
9683         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
9684         New define_mode_attrs.
9685         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
9686         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
9687         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
9688         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
9689         Remove pool_range attribute.
9690         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
9691         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
9692         pool_range and neg_pool_range attributes.
9693         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
9694         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
9695         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
9696
9697 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
9698
9699         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
9700         check glibc.
9701
9702 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
9703
9704         PR target/22152
9705         * config/i386/mmx.md (*mov<mode>_internal_rex64,
9706         *mov<mode>_internal_avx, *mov<mode>_internal,
9707         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
9708         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
9709
9710 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
9711
9712         * c-typeck.c (do_warn_double_promotion): Remove.
9713         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
9714         Objective-C++ too.
9715
9716 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
9717
9718         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
9719         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
9720         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
9721         argument type to reg_class_t. Change result type to bool.
9722         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9723
9724 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
9725
9726         PR libobjc/19850
9727         * gthr-posix.h (__gthread_objc_thread_detach): Use
9728         _objc_thread_attribs when detaching a thread.
9729         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
9730
9731 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
9732
9733         PR target/45524
9734         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
9735         * configure: Regenerated.
9736
9737 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9738
9739         * combine.c (try_combine): Set subst_low_luid to i0.
9740
9741 2010-09-06  Richard Guenther  <rguenther@suse.de>
9742
9743         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
9744         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
9745         (build_aligned_type): Declare.
9746         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
9747         (check_aligned_type): New function.
9748         (build_aligned_type): Likewise.
9749         * expr.c (expand_assignment): Handle misaligned stores via
9750         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
9751         (expand_expr_real_1): Likewise.
9752         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
9753         * tree-vect-stmts.c (vectorizable_store): Do not build
9754         MISALIGNED_INDIRECT_REF but initialize alignment information.
9755         (vectorizable_load): Likewise.
9756         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
9757         handling.
9758         * cfgexpand.c (expand_debug_expr): Likewise.
9759         * dwarf2out.c (loc_list_from_tree): Likewise.
9760         * fold-const.c (maybe_lvalue_p): Likewise.
9761         (operand_equal_p): Likewise.
9762         (build_fold_addr_expr_with_type_loc): Likewise.
9763         * gimplify.c (gimplify_addr_expr): Likewise.
9764         (gimplify_expr): Likewise.
9765         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
9766         (verify_gimple_assign_single): Likewise.
9767         * tree-dump.c (dequeue_and_dump): Likewise.
9768         (tree_could_trap_p): Likewise.
9769         * tree-predcom.c (ref_at_iteration): Likewise.
9770         * tree-pretty-print.c (dump_generic_node): Likewise.
9771         (op_code_prio): Likewise.
9772         (op_symbol_code): Likewise.
9773         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
9774         * tree-ssa-loop-im.c (for_each_index): Likewise.
9775         (gen_lsm_tmp_name): Likewise.
9776         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
9777         (find_interesting_uses_address): Likewise.
9778         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
9779         * tree-ssa-operands.c (get_expr_operands): Likewise.
9780         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9781         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9782         (ao_ref_init_from_vn_reference): Likewise.
9783         * tree.c (staticp): Likewise.
9784         (build1_stat): Likewise.
9785         (reference_alias_ptr_type): Likewise.
9786         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9787         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
9788         MISALIGNED_INDIRECT_REF handling.
9789
9790 2010-09-06  Richard Guenther  <rguenther@suse.de>
9791
9792         PR tree-optimization/45534
9793         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
9794         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
9795         on the target.
9796         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
9797         valid on the target.
9798
9799 2010-09-06  Andreas Schwab  <schwab@redhat.com>
9800
9801         * configure.ac: Quote argument of AC_MSG_WARN.
9802         * configure: Regenerate.
9803
9804 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
9805
9806         * sel-sched.c (move_cond_jump): Correct arguments to
9807         maybe_tidy_empty_bb.
9808         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
9809
9810 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
9811
9812         PR rtl-optimization/44919
9813         * sel-sched.c (move_cond_jump): Remove assert, check that
9814         the several blocks case can only happen with mutually exclusive
9815         insns instead.  Rewrite the movement code to support moving through
9816         several basic blocks.
9817
9818 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
9819
9820         * config/i386/i386.md (iptrsize): New mode attribute.
9821         (tp_seg): Ditto.
9822         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
9823         mode iterator.
9824         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
9825         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
9826         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
9827         (stack_tls_protect_set_<mode>): Ditto from
9828         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
9829         of thread base pointer load.
9830         (stack_tls_protect_test_<mode>): Ditto from
9831         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
9832         of thread base pointer load.
9833         (stack_protect_set): Rewrite using indirect functions.
9834         (stack_protect_test): Ditto.
9835         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
9836         (ix86_print_operand): Handle '@'.
9837
9838 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
9839
9840         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
9841         MINUS_EXPR.
9842
9843 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
9844
9845         * doc/invoke.texi: Document -Wdouble-promotion.
9846         * c-typeck.c (convert_arguments): Check for implicit conversions
9847         from float to double.
9848         (do_warn_double_promotion): New function.
9849         (build_conditional_expr): Use it.
9850         (build_binary_op): Likewise.
9851
9852 2010-09-05  Richard Guenther  <rguenther@suse.de>
9853
9854         PR tree-optimization/45535
9855         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
9856         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
9857         dereferencing it.
9858         (indirect_refs_may_alias_p): Likewise.
9859
9860 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
9861
9862         * config/sh/sh.c (sh_option_override): Make static.
9863         Adjust comments.  Declare.
9864         (sh_function_value_regno_p): Likewise.
9865         (sh_register_move_cost): Modify the arguments, make static.
9866         Adjust comments.  Declare.
9867         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
9868         TARGET_FUNCTION_VALUE_REGNO_P): Define.
9869         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
9870         REGISTER_MOVE_COST): Delete.
9871         * config/sh/sh-protos.h (sh_override_options): Delete.
9872         (sh_register_move_cost): Delete.
9873         (sh_function_value_regno_p): Delete.
9874
9875 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
9876
9877         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
9878         m32r_function_value_regno_p): New functions.
9879         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9880         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
9881         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
9882         FUNCTION_VALUE_REGNO_P): Remove.
9883
9884 2010-09-04  Jan Hubicka  <jh@suse.cz>
9885
9886         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
9887         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
9888         fold_read_from_constant_string.
9889
9890         * gimple.h (canonicalize_constructor_val): Declare.
9891         * gimple-fold.c (canonicalize_constructor_val): New function.
9892         (get_symbol_constant_value):Use it.
9893         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
9894
9895 2010-09-04  Jan Hubicka  <jh@suse.cz>
9896
9897         * tree-switch-conversion.c (build_one_array): Set constructor to be
9898         static.
9899         * varpool.c (varpool_finalize_decl): Compute const_value_known.
9900
9901 2010-09-04  Richard Guenther  <rguenther@suse.de>
9902
9903         PR bootstrap/45519
9904         * tree-flow.h (force_gimple_operand_1): Declare.
9905         (force_gimple_operand_gsi_1): Likewise.
9906         * gimplify.c (force_gimple_operand_1): New worker taking a
9907         gimple predicate for ...
9908         (force_gimple_operand): ... which now wraps it.
9909         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
9910         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
9911         last change.
9912         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
9913         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
9914         (create_mem_ref): Likewise.
9915
9916 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
9917
9918         * config/i386/predicates.md (sse_reg_operand): New predicate.
9919         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
9920         predicate for operand 1.
9921         (XFmode push splitter): Use fp_register_operand predicate
9922         for operand 1.
9923         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
9924         (SF-DF float_extend push splitter): Add reload_completed insn
9925         predicate.
9926         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
9927         MODEF mode macro.  Add reload_completed insn predicate.
9928
9929 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
9930
9931         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
9932         (struct df_extract_ref): Remove.
9933         (union df_ref_d): Remove extract_ref member.
9934         (df_ref_create): Remove last three arguments.
9935         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
9936         * df-scan.c (df_ref_record): Remove last three arguments, do not
9937         pass them to df_ref_create_structure.
9938         (df_uses_record): Remove first and last three arguments.  Replace
9939         first argument with DF_REF_REGULAR, adjust calls to remove the
9940         width, offset and mode.  Always call recursively on the second
9941         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
9942         (df_ref_create_structure): Remove first argument.
9943         (struct df_scan_problem_data): Remove ref_extract_pool.
9944         (df_scan_free_internal): Do not free it.
9945         (df_scan_alloc): Do not allocate it.
9946         (df_ref_create): Remove last three arguments, do not pass them to
9947         df_ref_create_structure.
9948         (df_free_ref): Remove DF_REF_EXTRACT case.
9949         (df_notes_rescan): Adjust call to df_uses_record.
9950         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
9951         Remove DF_REF_EXTRACT case.
9952         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
9953         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
9954         and SUBREG definitions.
9955         (df_get_conditional_uses): Remove references to width/offset/mode,
9956         adjust call to df_ref_create_structure.
9957         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
9958         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
9959         calls to df_uses_record and df_ref_record.
9960         * fwprop.c (update_df): Remove references to width/offset/mode,
9961         adjust call to df_ref_create.
9962
9963 2010-09-03  Jan Hubicka  <jh@suse.cz>
9964
9965         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
9966         (build_cdtor_fns): Update use of build_cdtor.
9967
9968 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
9969
9970         * doc/options.texi (SeparateAlias): Document.
9971         * opt-functions.awk (switch_flags): Handle SeparateAlias.
9972         * opth-gen.awk: Generate enumeration names for options marked
9973         SeparateAlias, but not for those marked Ignore.
9974         * opts-common.c (generate_canonical_option): Don't output separate
9975         argument for options marked CL_SEPARATE_ALIAS.
9976         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
9977         * opts.h (CL_SEPARATE_ALIAS): New.
9978         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
9979         CL_COMMON): Adjust definitions.
9980         * config/i386/darwin.opt, config/mips/sde.opt: New.
9981         * common.opt (fdump-final-insns): New.
9982         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
9983         i386/darwin.opt.
9984         (mips*-sde-elf*): Add mips/sde.opt.
9985         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
9986         -mno-data-in-code and -mcode-xonly here.
9987         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
9988         * gcc.c (option_map): Add "j" to --dump entry.
9989         (translate_options): Don't translate -d to -foutput-class-dir= here.
9990
9991 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
9992
9993         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
9994         DR_IS_WRITE.
9995         (compute_all_dependences): Same.
9996         (create_rdg_edge_for_ddr): Same.
9997         * tree-data-ref.h (DR_IS_WRITE): New.
9998         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
9999         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
10000         (write_memrefs_written_at_least_once): Same.
10001         * tree-predcom.c (suitable_component_p): Same.
10002         (determine_roots_comp): Same.
10003         (execute_load_motion): Same.
10004         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
10005         (vect_enhance_data_refs_alignment): Same.
10006         (vect_analyze_group_access): Same.
10007
10008 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
10009
10010         PR testsuite/42843
10011         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
10012         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
10013
10014 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
10015
10016         * dwarf2out.c (file scope): Remove #if0'd code.
10017         (gen_subprogram_die): Same.
10018
10019 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10020
10021         PR middle-end/45484
10022         * dwarf2out.c (flush_queued_reg_saves): Rename to...
10023         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
10024         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
10025         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
10026         * config/i386/i386.c (output_set_got): Call it.
10027
10028 2010-09-03  Michael Matz  <matz@suse.de>
10029
10030         PR middle-end/45415
10031         * tree-sra.c (sra_modify_assign): If we modify the statement,
10032         say so.
10033
10034         * tree-ssa.c (verify_ssa): Check number of operands and links
10035         per statement to agree.
10036
10037 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10038             Iain Sandoe  <iains@gcc.gnu.org>
10039
10040         PR target/45476
10041         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
10042         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
10043         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10044
10045 2010-09-03  Richard Guenther  <rguenther@suse.de>
10046
10047         * lto-streamer-out.c (output_function): Output function
10048         start and end loci.
10049         * lto-streamer-in.c (input_function): Input function start
10050         and end loci.
10051
10052 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10053
10054         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
10055         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
10056         * configure: Regenerate.
10057         * aclocal.m4: Regenerate.
10058
10059 2010-09-03  Jan Hubicka  <jh@suse.cz>
10060
10061         PR lto/44812
10062         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
10063         on functions/variables in other partition.
10064
10065 2010-09-03  Jan Hubicka  <jh@suse.cz>
10066
10067         * cgraph.h (struct varpool_node): Add const_value_known.
10068         (varpool_decide_const_value_known): Declare.
10069         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
10070         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
10071         (input_varpool_node): Restore const_value_known.
10072         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
10073         initializer folding.
10074         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10075         function_and_variable_visibility): Compute const_value_known.
10076         * gimple-fold.c (get_symbol_constant_value): Use varpool for
10077         initializer folding.
10078         * varpool.c (varpool_decide_const_value_known): New function.
10079
10080 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10081
10082         * config/i386/i386.md: Remove empty preparation statements
10083         from splitters.
10084
10085 2010-09-03  Jan Hubicka  <jh@suse.cz>
10086
10087         * passes.c (rest_of_decl_compilation): Do not add local vars into
10088         varpool.
10089         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
10090         static or extern vars are in varpool.
10091         (varpool_finalize_decl): Sanity check that only static vars are
10092         finalized.
10093
10094 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10095
10096         PR debug/45500
10097         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
10098         not just generic vectors with BLKmode.
10099
10100 2010-09-03  Richard Guenther  <rguenther@suse.de>
10101
10102         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
10103         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
10104         * tree.h (TMR_SYMBOL): Remove.
10105         (TMR_BASE, TMR_OFFSET): Adjust.
10106         (TMR_INDEX2): New.
10107         * alias.c (ao_ref_from_mem): Use TMR_BASE.
10108         * builtins.c (get_object_alignment): Merge TMR_BASE and
10109         TMR_SYMBOL handling.
10110         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
10111         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
10112         handling.  Also allow TARGET_MEM_REF as base address.
10113         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
10114         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
10115         base.  Gimplify TMR_INDEX2.
10116         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
10117         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10118         (get_addr_base_and_unit_offset): Likewise.
10119         * tree-eh.c (tree_could_trap_p): Likewise.
10120         * tree-pretty-print.c (dump_generic_node): Likewise.
10121         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
10122         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
10123         base to index2.
10124         (get_address_description): Reconstruct addres description
10125         from merged TMR_BASE and TMR_INDEX2.
10126         (maybe_fold_tmr): Fold propagated addresses.
10127         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
10128         MEM_REF and TARGET_MEM_REF paths.
10129         (indirect_refs_may_alias_p): Likewise.
10130         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
10131         instead of TMR_SYMBOL.
10132         * tree-ssa-operands.c (get_tmr_operands): Simplify.
10133         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
10134         according to changes ...
10135         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
10136         Split TARGET_MEM_REF into two fields plus the base.
10137         * tree.c (mem_ref_offset): Simplify.
10138         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
10139         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
10140         Strip NOPs when folding MEM_REF addresses.
10141         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
10142         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
10143         (fold_gimple_assign): ... not here.
10144
10145 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
10146
10147         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
10148         * config/mips/mips.c (mips_shift_truncation_mask): New function.
10149         (TARGET_SHIFT_TRUNCATION_MASK): Define.
10150
10151 2010-09-02  Richard Henderson  <rth@redhat.com>
10152
10153         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
10154         instead of readelf in the test.
10155         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
10156         in the .debug_frame section for coff targets.
10157         * configure: Rebuild.
10158
10159 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10160
10161         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
10162         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
10163         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10164         (m32c_class_likely_spilled_p): Make static. Change argument type to
10165         reg_class_t. Change result type to bool.
10166
10167 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10168
10169         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
10170         to convert (double)(long) into a single FRIZ instruction or not
10171         when -ffast-math is used.
10172
10173         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
10174         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
10175         or FRIZ instruction if -ffast-math.
10176         * config/rs6000/rs6000.md (friz): Ditto.
10177
10178         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
10179
10180 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10181
10182         * opth-gen.awk (quote, comma): Remove unused variables.
10183
10184 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
10185
10186         * arm.c (arm_override_options): Correct fall-back code to use
10187         SUBTARGET_CPU_DEFAULT.
10188
10189 2010-09-02  Julian Brown  <julian@codesourcery.com>
10190
10191         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
10192         unspecs.
10193         (vcond<mode>, vcondu<mode>): New expanders.
10194         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
10195         comparisons with zero.
10196         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
10197         * config/arm/constraints.md (Dz): New constraint.
10198
10199 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10200
10201         * target.def (class_likely_spilled_p): New hook.
10202         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
10203         * doc/tm.texi: Regenerate.
10204         * targhooks.c (default_class_likely_spilled_p): New function.
10205         * targhooks.h (default_class_likely_spilled_p): Declare.
10206         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
10207         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
10208         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
10209         Use fixed_reg_set instead of fixed_regs.
10210         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10211         * calls.c (avoid_likely_spilled_reg): Ditto.
10212         * ira-conflicts.c (ira_build_conflicts): Ditto.
10213         * ira.c (update_equiv_regs): Ditto.
10214         * mode-switching.c (create_pre_exit): Ditto.
10215         * regmove.c (find_matches): Ditto.
10216         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10217         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
10218         (small_register_class_p): New inline function.
10219         (push_secondary_reload, find_reusable_reload, find_reloads): Use
10220         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
10221
10222         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
10223         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
10224         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10225
10226 2010-09-02  Richard Guenther  <rguenther@suse.de>
10227
10228         PR tree-optimization/44937
10229         PR tree-optimization/45412
10230         * ipa-split.c (split_function): Properly remove PHI nodes.
10231
10232 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10233
10234         * opts.h (struct cl_option): Add warn_message field.
10235         (struct cl_decoded_option): Add warn_message field.
10236         * doc/options.texi (Ignore, Warn): Document.
10237         * opt-functions.awk (needs_state_p): Don't consider aliases or
10238         ignored options to need state saved.
10239         * optc-gen.awk: Handle Warn and Ignore.
10240         * opth-gen.awk: Output OPT_SPECIAL_ignore.
10241         * opts-common.c (decode_cmdline_option): Set warn_message field.
10242         Handle ignored options.
10243         (decode_cmdline_options_to_array, generate_option,
10244         generate_option_input_file): Set warn_message field.
10245         (read_cmdline_option): Generate warnings from warn_message field.
10246         Handle ignored options.
10247         * common.opt (Wunreachable-code, fargument-alias,
10248         fargument-noalias, fargument-noalias-global,
10249         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
10250         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
10251         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
10252         ftree-salias): Mark Ignore.
10253         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
10254         -mintel-syntax and -mno-intel-syntax here.
10255         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
10256         using Warn.
10257         * opts.c (common_handle_option): Don't handle options marked as
10258         ignored.
10259         (enable_warning_as_error): Handle ignored options.
10260
10261 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10262
10263         PR driver/44076
10264         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
10265         alias_target fields.
10266         * opt-functions.awk (opt_sanitized_name): Don't handle
10267         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
10268         * optc-gen.awk: Generate alias fields.
10269         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
10270         Don't generate such constants for aliases.
10271         * opts-common.c (generate_canonical_option): New.
10272         (decode_cmdline_option): Handle aliases.  Use
10273         generate_canonical_option for known options instead of copying the
10274         input option text.
10275         * doc/options.texi (Alias): Document.
10276         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
10277         fstack-check, specs): Mark as aliases.
10278         * gcc.c (driver_handle_option): Canonicalize -L options to joined
10279         arguments.
10280         (driver_handle_option): Don't handle OPT_specs.
10281         * opts.c (common_handle_option): Don't handle options marked as
10282         aliases.
10283         (enable_warning_as_error): Handle aliases.
10284         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
10285         OPT_Wlarger_than_eq.
10286         * tree-optimize.c (tree_rest_of_compilation): Use
10287         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
10288
10289 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
10290
10291         * config/i386/i386.md (nonmemory_operand): New mode attribute.
10292         (push memory peephole2): Macroize peepholes using SWI mode iterator.
10293         (move immediate to memory peephole2): Macroize peepholes using
10294         SWI124 mode iterator.
10295         (non-pairable NOT peephole2): Macroize peepholes using SWI124
10296         mode iterator.
10297         (simple lea add peephole2): Macroize peepholes using SWI48
10298         mode iterator.
10299         (simple lea mult peephole2): Ditto.
10300         (imul by 3,5,9 to lea peephole2): Ditto.
10301         (mov $-1, reg peephole2): Macroize peepholes using SWI248
10302         mode iterator.
10303         (imul $32bit_imm,mem,reg peephole2): Ditto.
10304         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
10305
10306 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
10307
10308         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
10309
10310 2010-09-02  Olivier Hainque  <hainque@adacore.com>
10311
10312         PR middle-end/44763
10313         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
10314         (allocno_priority_compare_func): Use it instead of a straight
10315         difference computation over priorities.
10316
10317 2010-09-02  Andi Kleen  <ak@linux.intel.com>
10318
10319         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
10320
10321 2010-09-02  Ira Rosen  <irar@il.ibm.com>
10322
10323         * tree-vectorizer.h (get_later_stmt): New function.
10324         (vect_analyze_data_ref_dependences): Add argument.
10325         * tree-vect-loop.c (vect_analyze_loop): Update call to
10326         vect_analyze_data_ref_dependences.
10327         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
10328         New function.
10329         (vect_analyze_data_ref_dependence): Add argument for basic block
10330         dependencies. Check dependencies in basic block vectorization.
10331         (vect_analyze_data_ref_dependences): Add argument and update call to
10332         vect_analyze_data_ref_dependences.
10333         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
10334         (vect_bb_vectorizable_with_dependencies): New.
10335         (vect_slp_analyze_bb): Check dependencies in basic block.
10336         (vect_schedule_slp_instance): Insert stores before the last store in
10337         SLP instance.
10338
10339 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
10340
10341         PR target/45476
10342         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
10343         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10344
10345 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
10346
10347         PR middle-end/45458
10348         * bb-reorder.c (add_labels_and_missing_jumps): Treat
10349         bbs ending with throwing insns like blocks ending with a call.
10350         (fix_up_fall_thru_edges): Likewise.
10351
10352 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
10353
10354         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
10355         (m32c_function_arg_advance): Delete.
10356         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10357         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
10358         comments.  Take a const_tree and a bool.  Declare.
10359         (m32c_function_arg_advance): Likewise.
10360         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10361
10362 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
10363
10364         PR target/45476
10365         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
10366         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
10367         * config/i386/mingw32.h: ... here.
10368
10369 2010-09-01  Andi Kleen  <ak@linux.intel.com>
10370
10371         PR lto/45475
10372         * lto-streamer-in.c (lto_input_ts_target_option): Add.
10373         (lto_input_tree_pointers): Call lto_input_ts_target_option.
10374         * lto-streamer-out (lto_output_ts_target_option): Add.
10375         (lto_output_tree_pointers): Call lto_output_ts_target_option.
10376
10377 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
10378
10379         PR/target 45452
10380         * config/i386/cygwin.h: Change order of specified import libraries.
10381         * config/i386/mingw32.h: Likewise.
10382         * config/i386/t-cygwin: Likewise.
10383         * config/i386/t-mingw32: Likewise.
10384         * config/i386/t-mingw-w32: Likewise.
10385         * config/i386/t-mingw-w64: Likewise.
10386
10387 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10388
10389         * config/arm/neon-schedgen.ml (core): New type.
10390         (allCores): List of supported cores.
10391         (availability_table): Add supported cores.
10392         (collate_bypasses): Accept core as a parameter.
10393         (worst_case_latencies_and_bypasses): Accept core as a parameter.
10394         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
10395         and coreStr to get tune attribute and prefix for functional units.
10396         (emit_bypasses): Accept core name and use it.
10397         (calculate_per_core_availability_table): New.
10398         (filter_core): New.
10399         (calculate_core_availability_table): New.
10400         (main): Use calculate_core_availablity_table.
10401         * config/arm/cortex-a8-neon.md: Update copyright year.
10402         Regenerated from ml file and merged in.
10403         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
10404         cortex_a8_neon_mrc.
10405
10406 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
10407
10408         * Makefile.in (tree-switch-conversion.o): Update dependencies.
10409
10410 2010-09-01  Richard Guenther  <rguenther@suse.de>
10411
10412         * alias.c (ao_ref_from_mem): Adjust.
10413         * builtins.c (get_object_alignment): Likewise.
10414         * cfgexpand.c (expand_debug_expr): Likewise.
10415         * gimple.c (get_base_address): Likewise.
10416         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10417         (get_addr_base_and_unit_offset): Likewise.  Fix for
10418         both TMR_SYMBOL and TMR_BASE being set.
10419         * tree-eh.c (tree_could_trap_p): Likewise.
10420         * gimplify.c (gimplify_expr): Do not attempt to gimplify
10421         TMR_SYMBOL.  Always gimplify TMR_BASE.
10422         * tree-cfg.c (verify_types_in_gimple_reference): Verify
10423         TMR_BASE if there is a TMR_SYMBOL.
10424         * tree-pretty-print.c (dump_generic_node): Adjust.
10425         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
10426         (tree_mem_ref_addr): Likewise.
10427         (create_mem_ref_raw): Likewise.
10428         (move_fixed_address_to_symbol): Likewise.
10429         (create_mem_ref): Likewise.
10430         (dump_mem_address): Likewise.
10431         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
10432         Fix for both TMR_SYMBOL and TMR_BASE being set.
10433         (indirect_refs_may_alias_p): Likewise.
10434         * tree-ssa-operands.c (get_tmr_operands): Adjust.
10435         * tree.def (TARGET_MEM_REF): Adjust documentation.
10436
10437 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
10438
10439         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
10440         Rename from X86_TUNE_ADD_ESP_4.
10441         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
10442         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
10443         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
10444         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
10445         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
10446         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
10447         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
10448         * config/i386/i386.c (initial_ix86_tune_features)
10449         <X86_TUNE_SINGLE_POP>: Invert members.
10450         <X86_TUNE_DOUBLE_POP>: Ditto.
10451         <X86_TUNE_SINGLE_PUSH>: Ditto.
10452         <X86_TUNE_DOUBLE_PUSH>: Ditto.
10453         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
10454         No longer exported.
10455         (push peephole2 patterns): Macroize peepholes using P mode iterator.
10456         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
10457         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
10458         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
10459
10460 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
10461
10462         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
10463         a volatile LHS if the constructor has only one element.
10464
10465 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
10466
10467         PR bootstrap/45321
10468         * tree.c (stdarg_p): Make fntype parameter const.
10469         * tree.h (stdarg_p): Likewise.
10470         (function_args_iterator): Remove unused fntype field.
10471         (function_args_iter_init): Do not initialize fntype
10472         field.  Make fntype parameter const.
10473
10474 2010-09-01  Richard Guenther  <rguenther@suse.de>
10475
10476         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
10477         estimate.
10478         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
10479         (execute_vrp): Compute number of iteration estimates.
10480         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
10481         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
10482         * tree-data-ref.c (estimated_loop_iterations): Adjust.
10483         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
10484         Infer loop bounds from undefined behavior based on a new parameter.
10485         (estimate_numbers_of_iterations): Likewise.
10486         (scev_probably_wraps_p): Adjust.
10487         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
10488
10489 2010-09-01  Nick Clifton  <nickc@redhat.com>
10490
10491         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
10492         where appropriate.
10493         (xstormy16_legitimate_address_p): Use true and false instead of 1
10494         and 0.
10495         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
10496         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
10497         magic constant 2.
10498         (xstormy16_expand_call): Fix comment at start of function.
10499
10500 2010-09-01  Nick Clifton  <nickc@redhat.com>
10501
10502         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
10503         when pushing accumulator register.
10504         (rx_get_stack_layout): Always save call clobbered registers inside
10505         interrupt handlers.
10506         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
10507
10508 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
10509
10510         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
10511         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
10512
10513         * libgcc-std.ver (GCC_4.6.0): Define version.
10514
10515 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
10516
10517         * tree-nested.c (convert_all_function_calls): Iterate until after the
10518         sum of static chains in the nest doesn't change.
10519
10520 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
10521
10522         * config/m32c/m32c.c (classes_intersect): Remove.
10523         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
10524         reg_classes_intersect_p instead of classes_intersect.
10525         (class_can_hold_mode): Change arguments type from enum reg_class to
10526         reg_class_t.  Use reg_class_contents instead of class_contents.
10527         (m32c_register_move_cost): Make static. Change arguments type from
10528         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
10529         classes_intersect. Use reg_class_contents instead of class_contents.
10530         (m32c_memory_move_cost): Make static. Change arguments type from
10531         enum reg_class to reg_class_t.
10532         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10533         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10534         * config/m32c/m32c-protos.h (m32c_register_move_cost,
10535         m32c_memory_move_cost): Remove.
10536
10537 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
10538
10539         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
10540         (arm_function_arg): Delete.
10541         (arm_needs_doubleword_align): Take a const_tree.
10542         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10543         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
10544         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
10545         (arm_function_arg): Make static.  Take a const_tree and a bool.
10546         (arm_function_arg_advance): Likewise.
10547         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10548
10549 2010-08-31  Andi Kleen  <ak@linux.intel.com>
10550
10551         * common.opt (fwhopr=): Update for -fwhopr=jobserver
10552         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
10553         * lto-wrapper.c (run_gcc): Add jobserver mode.
10554         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
10555         argument.
10556
10557 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
10558
10559         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
10560         (popsi1): Ditto.
10561         (*popdi1_epilogue): Ditto.
10562         (*popsi1_epilogue): Ditto.
10563         (popsi, popdi peephole2 patterns): Update peepholes for changed
10564         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
10565
10566         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
10567         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
10568
10569         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
10570         (override_options): Do not initialize removed ix86_gen_pop1.
10571         (gen_pop): New static function.
10572         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
10573         (release_scratch_register_on_entry): Ditto.
10574         (ix86_restore_reg_using_pop): Ditto.
10575         (ix86_expand_epilogue): Ditto.
10576
10577 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
10578
10579         PR middle-end/45461
10580         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
10581
10582 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
10583
10584         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
10585         semicolons.
10586
10587 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10588
10589         * doc/extend.texi: Fix documentation of the return value of
10590         __builtin_choose_expr.
10591
10592 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
10593
10594         * config/v850/v850-protos.h (function_arg): Delete.
10595         * config/v850/v850.h (FUNCTION_ARG): Delete.
10596         (FUNCTION_ARG_ADVANCE): Move code to...
10597         * config/v850/v850.c (v850_function_arg_advance): ...here.
10598         (v850_function_arg): Make static.  Take a const_tree and a bool.
10599         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10600
10601 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
10602
10603         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
10604         these...
10605         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
10606         ...and these...
10607         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
10608         ..to here..
10609         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
10610         ...and here.
10611         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10612
10613 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
10614
10615         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
10616         Delete.
10617         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10618         * config/rx/rx.c (rx_function_arg_size): Make static.
10619         (rx_function_arg): Likewise.
10620         (rx_function_arg_advance): New function.
10621         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10622
10623 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
10624
10625         * config/arm/arm.c (arm_override_options): Remove superfluous test.
10626         Fix indentation.
10627
10628 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
10629
10630         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
10631         (dwarf2out_decl) <CONST_DECL>: Likewise.
10632
10633 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
10634
10635         Stack usage support
10636         * common.opt (-fstack-usage): New option.
10637         * doc/invoke.texi (Debugging options): Document it.
10638         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
10639         allocate_dynamic_stack_space.
10640         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
10641         and propagate it to allocate_dynamic_stack_space.
10642         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
10643         * calls.c (initialize_argument_information): Pass TRUE as 4th
10644         argument to allocate_dynamic_stack_space.
10645         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
10646         to 1 when pushing a variable-sized argument onto the stack.  Pass
10647         TRUE as 4th argument to allocate_dynamic_stack_space.
10648         Update current_function_pushed_stack_size.
10649         (emit_library_call_value_1): Likewise.
10650         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
10651         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
10652         attempt to find an upper bound.  Remove redundant code for the
10653         SETJMP_VIA_SAVE_AREA case.
10654         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
10655         * function.h (struct stack_usage): New structure.
10656         (current_function_static_stack_size): New macro.
10657         (current_function_dynamic_stack_size): Likewise.
10658         (current_function_pushed_stack_size): Likewise.
10659         (current_function_dynamic_alloc_count): Likewise.
10660         (current_function_has_unbounded_dynamic_stack_size): Likewise.
10661         (current_function_allocates_dynamic_stack_space): Likewise.
10662         (struct function): Add new field 'su'.
10663         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
10664         add the value of the dynamic offset to the dynamic stack usage.
10665         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
10666         for variable-sized objects.
10667         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
10668         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
10669         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
10670         BUILT_IN_ALLOCA for variable-sized objects.
10671         * output.h (output_stack_usage): Declare.
10672         * toplev.c (stack_usage_file): New file pointer.
10673         (output_stack_usage): New function.
10674         (open_auxiliary_file): Likewise.
10675         (lang_dependent_init): Open file if flag_stack_usage is set.
10676         (finalize): Close file if stack_usage_file is not null.
10677         * tree.h (ALLOCA_FOR_VAR_P): New macro.
10678         * config/alpha/alpha.c (compute_frame_size): New function.
10679         (alpha_expand_prologue): Use it.
10680         (alpha_start_function): Likewise.
10681         (alpha_expand_epilogue): Likewise.  Set stack usage info.
10682         * config/i386/i386.c (ix86_expand_prologue): Likewise.
10683         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10684         * config/mips/mips.c (mips_expand_prologue): Likewise.
10685         * config/pa/pa.c (hppa_expand_prologue): Likewise.
10686         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10687         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
10688
10689 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
10690
10691         PR tree-optimization/45427
10692         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
10693         Handle the case that the exit is never taken correctly.
10694         (number_of_iterations_ne): Pass exit_must_be_taken to
10695         number_of_iterations_ne_max.
10696
10697 2010-08-30  Catherine Moore  <clm@codesourcery.com>
10698
10699         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
10700         Infer -mdspr2 for the the 74K.
10701
10702 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
10703
10704         PR debug/45419
10705         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
10706
10707         PR middle-end/45423
10708         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
10709         and TRUTH_{AND,OR,XOR}_EXPR.
10710         * c-parser.c (c_parser_omp_atomic): Handle boolean
10711         {PRE,POST}_{INC,DEC}REMENT.
10712
10713 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
10714
10715         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
10716         (function_arg): Delete.
10717         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10718         (FUNCTION_INCOMING_ARG): Delete.
10719         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
10720         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
10721         and a bool.
10722         (function_arg): Rename to...
10723         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
10724         a bool.
10725         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
10726         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10727         (TARGET_FUNCTION_INCOMING_ARG): Define.
10728
10729 2010-08-30  Richard Guenther  <rguenther@suse.de>
10730
10731         PR tree-optimization/21602
10732         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
10733         using points-to information.
10734
10735 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
10736
10737         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
10738
10739 2010-08-30  Richard Guenther  <rguenther@suse.de>
10740
10741         PR tree-optimization/45449
10742         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
10743         variables.
10744
10745 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
10746
10747         * opts.h (CL_ERR_NEGATIVE): Define.
10748         * opts.c (unknown_option_callback): Don't postpone warnings for
10749         options marked with CL_ERR_NEGATIVE.
10750         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
10751         for negative versions of CL_REJECT_NEGATIVE options.
10752
10753 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
10754
10755         * config/i386/i386.md (zero_extendsidi2_1): Rename from
10756         zero_extendsidi2_32.
10757         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
10758         using SWI12 mode iterator.
10759         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
10760         to define_insn_and_split pattern.
10761         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
10762         using SWI24 mode iterator.
10763         (*zero_extendqi<mode>2_and): Macroize insn from
10764         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
10765         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
10766         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
10767         SWI24 mode iterator.
10768         (*zero_extendqi<mode>2_movzbl): Ditto from
10769         *zero_extendqi{hi,si}2_movzbl.
10770         (extendsidi2_1): Rename from extendsidi2_32.
10771         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
10772         SWI12 mode iterator.
10773
10774 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
10775
10776         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
10777         general purpose registers.
10778         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
10779         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
10780         with general purpose registers and memory operands.  Add associated
10781         CCImode post-reload splitter.
10782         * config/ia64/div.md: Change BImode to CCImode throughout.
10783
10784 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
10785
10786         * config/ia64/ia64.md (cstorebi4): Fix thinko.
10787
10788 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
10789
10790         * config/picochip/picochip.c (reorder_var_tracking_notes): This
10791         function was dropping debug insns which caused PR45299.
10792
10793 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
10794
10795         * config/i386/sse.md (extsuffix): New code attribute.
10796         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
10797         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
10798         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
10799         and sse4_1_zero_extendv4qiv4si2.
10800         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
10801         and sse4_1_zero_extendv2qiv2di2.
10802         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
10803         and sse4_1_zero_extendv4hiv4si2.
10804         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
10805         and sse4_1_zero_extendv2hiv2di2.
10806         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
10807         and sse4_1_zero_extendv2siv2di2
10808
10809         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
10810         using any_extend code iterator.
10811         (*avx_<s>mulv8hi3_highpart): Macroize insn from
10812         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
10813         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
10814
10815         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
10816         gen_sse4_1_sign_extend* functions.
10817         (struct builtin_description bdesc_args): Ditto.
10818
10819 2010-08-27  Xinliang David Li  <davidxl@google.com>
10820
10821         PR/45422
10822         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
10823         (iv_ca_set_no_cp): Update used inv expr count.
10824         (iv_ca_set_cp): Ditto.
10825         (iv_ca_new): Initialize new member.
10826         (iv_ca_free): Free memory.
10827
10828 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
10829
10830         * config/sh/sh-protos.h (sh_function_arg): Delete.
10831         (sh_function_arg_advance): Delete.
10832         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10833         (PASS_IN_REG_P): Eliminate cast.
10834         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
10835         const_tree and a bool.
10836         (sh_function_arg): Likewise.
10837         (sh_output_mi_thunk): Call sh_function_arg_advance) and
10838         sh_function_arg.
10839         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10840
10841 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
10842             Kaz Kojima  <kkojima@gcc.gnu.org>
10843
10844         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
10845         when possible.
10846         (sh_expand_epilogue): Likewise.
10847         * config/sh/sh.md (movml_push_banked): New insn.
10848         (movml_pop_banked): Likewise.
10849
10850 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
10851
10852         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
10853         gen_regexp_oneof, gen_regexp_sequence): Use the string found
10854         in vector element 0 rather than the original string when there's
10855         only one element.
10856         (gen_regexp): Remove extra semicolon.
10857
10858         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
10859         thumb2_movsf_vfp): Set attribute "insn".
10860         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
10861         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
10862         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
10863         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
10864         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
10865         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
10866         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
10867         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
10868         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
10869         if_not_arith, if_arith_not, cond_move_not): Likewise.
10870
10871 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
10872
10873         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
10874         New declaration.
10875         (rs6000_allocate_stack_temp): Ditto.
10876         (rs6000_expand_convert_si_to_sfdf): Ditto.
10877
10878         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
10879         line.  Update the options set if power6 or power7 server/embedded
10880         type options are used.  If we give a warning for no vsx under
10881         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
10882         (rs6000_allocate_stack_temp): New function to allocate a stack
10883         tempoary and adjust the address so it meets either REG+OFFSET or
10884         REG+REG addressing requirements.
10885         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
10886         that they can be used with the LFIWAX/LFIWZX instrucitons.
10887         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
10888         converting signed/unsigned SImode to either SFmode/DFmode.
10889
10890         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
10891         whether certain instructions can be generated.
10892         (TARGET_FCTIDZ): Ditto.
10893         (TARGET_STFIWX): Ditto.
10894         (TARGET_LFIWAX): Ditto.
10895         (TARGET_LFIWZX): Ditto.
10896         (TARGET_FCFIDS): Ditto.
10897         (TARGET_FCFIDU): Ditto.
10898         (TARGET_FCFIDUS): Ditto.
10899         (TARGET_FCTIDUZ): Ditto.
10900         (TARGET_FCTIWUZ): Ditto.
10901
10902         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
10903         (UNSPEC_FCTID): Ditto.
10904         (UNSPEC_LFIWAX): Ditto.
10905         (UNSPEC_LFIWZX): Ditto.
10906         (UNSPEC_FCTIWUZ): Ditto.
10907         (rreg): Use correct constraints.
10908         (SI_CONVERT_FP): New mode attribute for floating point conversion
10909         tests.
10910         (E500_CONVERT): Ditto.
10911         (lfiwax): New insns for converting from integer to floating point
10912         utilizing newer instructions.  Attempt to optimize conversions
10913         that come from memory so that we don't load the value into a GPR,
10914         spill it to the stack and reload it into a FPR.
10915         (floatsi<mode>2_lfiwax): Ditto.
10916         (floatsi<mode>2_lfiwax_mem): Ditto.
10917         (floatsi<mode>2_lfiwax_mem2): Ditto.
10918         (lfiwzx): Ditto.
10919         (floatunssi<mode>2_lfiwzx): Ditto.
10920         (floatunssi<mode>2_lfiwzx_mem): Ditto.
10921         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
10922         (floatdidf2_mem): Ditto.
10923         (floatunsdidf2_fcfidu): Ditto.
10924         (floatunsdidf2_mem): Ditto.
10925         (floatunsdisf2): Ditto.
10926         (floatunsdisf2_fcfidus): Ditto.
10927         (floatunsdisf2_mem): Ditto.
10928         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
10929         Use FCFID on 32-bit hosts that support it.
10930         (floatsidf2_internal): Ditto.
10931         (floatunssisf2): Ditto.
10932         (floatunssidf2): Ditto.
10933         (floatunssidf2_internal): Ditto.
10934         (floatsisf2): Ditto.
10935         (floatdidf2): Ditto.
10936         (floatdidf2_fpr): Ditto.
10937         (floatunsdidf2): Ditto.
10938         (floatdisf2): Ditto.
10939         (floatdisf2_fcfids): Ditto.
10940         (floatdisf2_internal1): Ditto.
10941         (fixuns_truncsfsi2): Delete, merge into common pattern for both
10942         SF/DF.  Add power7 support.
10943         (fix_truncsfsi2): Ditto.
10944         (fixuns_truncdfsi2): Ditto.
10945         (fixuns_truncdfdi2): Ditto.
10946         (fix_truncdfsi2): Ditto.
10947         (fix_truncdfsi2_internal): Ditto.
10948         (fix_truncdfsi2_internal_gfxopt): Ditto.
10949         (fix_truncdfsi2_mfpgpr): Ditto.
10950         (fctiwz): Ditto.
10951         (btruncdf2): Ditto.
10952         (btruncdf2_fpr): Ditto.
10953         (btructsf2): Ditto.
10954         (ceildf2): Ditto.
10955         (ceildf2_fpr): Ditto.
10956         (ceilsf2): Ditto.
10957         (floordf2): Ditto.
10958         (floordf2_fpr): Ditto.
10959         (floorsf2): Ditto.
10960         (rounddf2): Ditto.
10961         (rounddf2_fpr): Ditto.
10962         (roundsf2): Ditto.
10963         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
10964         (fix_trunc<mode>di2): Ditto.
10965         (fixuns_trunc<mode>si2): Ditto.
10966         (fixuns_trunc<mode>di2): Ditto.
10967         (fctiwz_<mode>): Ditto.
10968         (btrunc<mode>2): Ditto.
10969         (btrunc<mode>2_fpr): Ditto.
10970         (ceil<mode>2): Ditto.
10971         (ceil<mode>2_fpr): Ditto.
10972         (floor<mode>2): Ditto.
10973         (float<mode>2_fpr): Ditto.
10974         (round<mode>2): Ditto.
10975         (round<mode>2_fpr): Ditto.
10976         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
10977         (fixuns_trunc<mode>si2_stfiwx): Ditto.
10978         (fix_truncdfsi2_internal): Ditto.
10979         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
10980         converted value on stack, loaded into GPR, and then stored into
10981         the final destination.
10982         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
10983         FCTIDZ.
10984         (lrint<mode>di2): New insn, provide the lrint builtin functions.
10985         (ftruncdf2): Delete, unused.
10986         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
10987
10988         * config/rs6000/vsx.md (toplevel): Update copyright year.
10989         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
10990         (VSr3): Ditto.
10991
10992 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
10993             Jeremie Salvucci  <jeremie.salvucci@free.fr>
10994
10995         * gengtype.c (output_type_enum): Test the right union member.
10996
10997 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
10998
10999         PR target/41484
11000         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
11001         operands for operand 1.
11002         (sse4_1_extendv4qiv4si2): Ditto.
11003         (sse4_1_extendv2qiv2di2): Ditto.
11004         (sse4_1_extendv4hiv4si2): Ditto.
11005         (sse4_1_extendv2hiv2di2): Ditto.
11006         (sse4_1_extendv2siv2di2): Ditto.
11007         (sse4_1_zero_extendv8qiv8hi2): Ditto.
11008         (sse4_1_zero_extendv4qiv4si2): Ditto.
11009         (sse4_1_zero_extendv2qiv2di2): Ditto.
11010         (sse4_1_zero_extendv4hiv4si2): Ditto.
11011         (sse4_1_zero_extendv2hiv2di2): Ditto.
11012         (sse4_1_zero_extendv2siv2di2): Ditto.
11013         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
11014         (*sse4_1_extendv4qiv4si2): Ditto.
11015         (*sse4_1_extendv2qiv2di2): Ditto.
11016         (*sse4_1_extendv4hiv4si2): Ditto.
11017         (*sse4_1_extendv2hiv2di2): Ditto.
11018         (*sse4_1_extendv2siv2di2): Ditto.
11019         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
11020         (*sse4_1_zero_extendv4qiv4si2): Ditto.
11021         (*sse4_1_zero_extendv2qiv2di2): Ditto.
11022         (*sse4_1_zero_extendv4hiv4si2): Ditto.
11023         (*sse4_1_zero_extendv2hiv2di2): Ditto.
11024         (*sse4_1_zero_extendv2siv2di2): Ditto.
11025
11026 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11027
11028         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
11029         (mips_function_arg): Delete.
11030         (mips_function_arg_boundary): Take a const_tree.
11031         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
11032         (mips_arg_info): Likewise.
11033         (mips_setup_incoming_varargs): Call mips_function_arg_advance
11034         instead of FUNCTION_ARG_ADVANCE.
11035         (mips_function_arg_advance): Adjust prototype.  Make static.
11036         (mips_function_arg): Likewise.
11037         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11038         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
11039
11040 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11041
11042         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11043         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
11044         (function_arg): Delete.
11045         (function_arg_boundary): Take a const_tree.
11046         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
11047         (rs6000_spe_function_arg): Likewise.
11048         (rs6000_parm_start): Likewise.
11049         (rs6000_arg_size): Likewise.
11050         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
11051         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
11052         (rs6000_mixed_function_arg): Likewise.
11053         (function_arg): Rename to...
11054         (rs6000_function_arg): ...this.
11055         (function_arg_advance): Rename to...
11056         (rs6000_function_arg_advance_1): ...this
11057         (rs6000_function_arg_advance): New function.  Call it.
11058         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
11059         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
11060         (rs6000_function_value): Likewise.
11061         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11062
11063 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11064
11065         * config/arm/arm.md (enabled): Test the value of arch_enabled
11066         rather than just using it.
11067
11068 2010-08-27  Olivier Hainque  <hainque@adacore.com>
11069             Eric Botcazou  <ebotcazou@adacore.com>
11070
11071         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
11072         cover all the possible offsets from this base.
11073         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
11074
11075 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
11076
11077         PR tree-optimization/44485
11078         * calls.c (flags_from_decl_or_type): For const or pure
11079         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
11080         together with ECF_CONST resp. ECF_PURE.
11081         * builtins.c (expand_builtin): Use flags_from_decl_or_type
11082         instead of querying flags directly.
11083         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
11084         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
11085
11086 2010-08-26  Richard Guenther  <rguenther@suse.de>
11087
11088         PR tree-optimization/45255
11089         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
11090         and externals are also invariant.
11091
11092 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11093
11094         PR rtl-optimization/44858
11095         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
11096         newi2pat, make sure they don't affect newpat.
11097
11098         PR rtl-optimization/45400
11099         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
11100         SUBREG_REG if both modes are of MODE_INT class.
11101
11102 2010-08-25  Julian Brown  <julian@codesourcery.com>
11103
11104         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
11105         * config/arm/arm.md (generic_sched): No for Cortex-A5.
11106         (generic_vfp): Likewise.
11107         (cortex-a5.md): Include.
11108         * config/arm/cortex-a5.md: New.
11109
11110 2010-08-25  Richard Guenther  <rguenther@suse.de>
11111
11112         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
11113         * gimple.c (gimple_get_alias_set): Remove special handling
11114         for pointers.
11115
11116 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11117
11118         PR middle-end/45355
11119         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
11120         dead_or_set_p when computing i0_feeds_i2_n.
11121
11122         * combine.c (find_split_point): Undo canonicalization of multiply-add
11123         to (minus x (mult)) when it seems likely that this will increase the
11124         chances of a split.
11125
11126 2010-08-25  Richard Guenther  <rguenther@suse.de>
11127
11128         PR lto/44562
11129         * lto-streamer.c (lto_record_common_node): Do not mess with
11130         TYPE_CANONICAL when not in lto.
11131         * gimple.c (gimple_register_type): Likewise.
11132
11133 2010-08-25  Richard Guenther  <rguenther@suse.de>
11134
11135         PR tree-optimization/45316
11136         * tree-ssa-pre.c (eliminate): Properly clean EH info.
11137
11138 2010-08-25  Richard Guenther  <rguenther@suse.de>
11139
11140         PR tree-optimization/45393
11141         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
11142         and clean EH info.  Avoid SSA update.
11143         (execute_cse_sincos): Cleanup the CFG if it has changed.
11144
11145 2010-08-25  Richard Guenther  <rguenther@suse.de>
11146
11147         PR middle-end/45379
11148         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
11149         TARGET_MEM_REF in alignment computation.
11150
11151 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11152
11153         PR tree-optimization/45059
11154         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
11155         type conversions from newop{1,2}.  Assert t is a comparison and
11156         newop{1,2} after the stripping are gimple vals.
11157
11158 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
11159
11160         * config/arm/iterators.md (VU, SE, V_widen_l): New.
11161         (V_unpack, US): New.
11162         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
11163         (vec_unpack<US>_lo_<mode>): Likewise.
11164         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
11165         (neon_vec_unpack<US>_lo_<mode>): Likewise.
11166         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
11167         (vec_widen_<US>mult_hi_<mode>): Likewise.
11168         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
11169         (neon_vec_<US>mult_hi_<mode>"): Likewise.
11170         (neon_unpack<US>_<mode>): Widening move intermediate step for
11171         vectorizing without -mvectorize-with-neon-quad.
11172         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
11173         for vectorizing without -mvectorize-with-neon-quad.
11174         * config/arm/predicates.md (vect_par_constant_high): Check for
11175         high-half lanes of a vector.
11176         (vect_par_constant_low): Check for low-half lanes of a vector.
11177
11178 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11179
11180         * tree-if-conv.c (struct ifc_dr): New.
11181         (IFC_DR): New.
11182         (DR_WRITTEN_AT_LEAST_ONCE): New.
11183         (DR_RW_UNCONDITIONALLY): New.
11184         (memref_read_or_written_unconditionally): Use the cached values
11185         when possible.
11186         (write_memref_written_at_least_once): Same.
11187         (if_convertible_loop_p): Initialize and free DR->aux fields.
11188
11189 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11190
11191         * gimple.c (gimple_could_trap_p_1): Not static anymore.
11192         Pass an extra bool parameter include_mem.
11193         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
11194         (gimple_assign_rhs_could_trap_p): Same.
11195         * gimple.h (gimple_could_trap_p_1): Declared.
11196         * tree-data-ref.h (same_data_refs_base_objects): New.
11197         (same_data_refs): New.
11198         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
11199         (write_memrefs_written_at_least_once): New.
11200         (ifcvt_memrefs_wont_trap): New.
11201         (operations_could_trap): New.
11202         (ifcvt_could_trap_p): New.
11203         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
11204         Gets a vector of data refs.
11205         (if_convertible_stmt_p): Same.
11206         (if_convertible_loop_p_1): New.
11207         (if_convertible_loop_p): Call if_convertible_loop_p_1.
11208
11209 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11210
11211         * common.opt (ftree-loop-if-convert-stores): New flag.
11212         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
11213         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
11214         the created statement before GSI.
11215         (if_convertible_phi_p): Allow virtual phi nodes when
11216         flag_loop_if_convert_stores is set.
11217         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
11218         Do not handle types that do not match is_gimple_reg_type.
11219         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
11220         when flag_loop_if_convert_stores is set, as LHS can contain
11221         memory refs.
11222         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
11223         to if_convertible_gimple_assign_stmt_p.
11224         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
11225         (replace_phi_with_cond_gimple_assign_stmt): Renamed
11226         predicate_scalar_phi.  Do not handle virtual phi nodes.
11227         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
11228         Call predicate_scalar_phi.
11229         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
11230         just after the labels for flag_loop_if_convert_stores, otherwise
11231         insert the predicate in the end of the BB.
11232         (predicate_mem_writes): New.
11233         (combine_blocks): Call predicate_all_scalar_phis.  When
11234         flag_loop_if_convert_stores is set, call predicate_mem_writes.
11235         (tree_if_conversion): Call mark_sym_for_renaming when
11236         flag_loop_if_convert_stores is set.
11237         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
11238         flag_loop_if_convert_stores is set.
11239
11240 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
11241
11242         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
11243         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
11244         (pa_function_value): Make static.
11245         (override_options): Rename to...
11246         (pa_option_override): ...this. Make static.
11247         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
11248         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
11249         TARGET_OPTION_OVERRIDE): Define.
11250         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
11251         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
11252         Remove.
11253         * config/pa/pa-protos.h (override_options): Remove.
11254
11255 2010-08-24  Richard Guenther  <rguenther@suse.de>
11256
11257         PR middle-end/45379
11258         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
11259         if addr->index is NULL or zero.
11260         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
11261         TARGET_MEM_REF more properly.
11262         (indirect_ref_may_alias_decl_p): Likewise.
11263         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
11264         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
11265
11266 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
11267
11268         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
11269         (m32c_override_options): Rename to...
11270         (m32c_option_override): ...this. Make static.
11271         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
11272         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
11273         Remove.
11274         * config/m32c/m32c-protos.h (m32c_override_options,
11275         m32c_function_value_regno_p): Remove.
11276
11277 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
11278
11279         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
11280         Fix a typo in a previous commit.
11281
11282 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
11283
11284         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
11285         Pre-initialize innerloop_iters to one.
11286
11287 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
11288
11289         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
11290         existing static function global.
11291
11292         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
11293         is changed to global.
11294
11295         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
11296         may_be_nonaddressable_p on base, and don't collect this reference
11297         if the address of the base could not be taken.
11298
11299 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11300
11301         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
11302         enable the compiler to autovectorize mathmetical functions for
11303         power7 using the Mathematical Acceleration Subsystem library.
11304
11305         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
11306         handle which vector math library we have.
11307         (rs6000_override_options): Add -mveclibabi=mass support.
11308         (rs6000_builtin_vectorized_libmass): New function to handle auto
11309         vectorizing math functions that are in the MASS library.
11310         (rs6000_builtin_vectorized_function): Call it.
11311
11312         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
11313         -mveclibabi=mass.
11314
11315 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11316
11317         PR boehm-gc/34544
11318         * gthr-posix.h (__gthread_active_init): Delete.
11319         (__gthread_active_p): Do activity check here.
11320         Don't include errno.h on hppa-hpux.  Update comment.
11321         * gthr-posix95.h (__gthread_active_init): Delete.
11322         (__gthread_active_p): Do activity check here.
11323         Don't include errno.h on hppa-hpux.  Update comment.
11324         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
11325         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
11326         add -lpthread when -mt or -pthread is specified.
11327         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
11328         (LINK_GCC_C_SEQUENCE_SPEC): Define.
11329         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
11330         (stublib.c, pthread_default_stacksize_np-stub.o,
11331         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
11332         $(T)libgcc_stub.a): Add methods.
11333         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
11334         (stublib.c, pthread_default_stacksize_np-stub.o,
11335         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
11336         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11337         pthread_mutex_unlock): New stubs.
11338
11339 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
11340
11341         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
11342         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
11343         options.
11344         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
11345         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
11346         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
11347         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
11348         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
11349         "-l".
11350         * cppspec.c: Include opts.h.
11351         (lang_specific_driver): Use cl_decoded_option structures.
11352         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
11353         * doc/tm.texi: Regenerate.
11354         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
11355         (driver_handle_option): Allow driver options needing no special
11356         processing.
11357         (process_command): Decode options before call to
11358         lang_specific_driver.  Pass decoded options to
11359         lang_specific_driver.
11360         * gcc.h (lang_specific_driver): Update prototype.
11361         * gccspec.c: Include opts.h.
11362         (lang_specific_driver): Use cl_decoded_option structures.
11363         * opts-common.c (option_ok_for_language, generate_option,
11364         generate_option_input_file): New.
11365         (decode_cmdline_option): Use option_ok_for_language.
11366         (decode_cmdline_options_to_array): Use generate_option_input_file.
11367         (handle_generated_option): Use generate_option.
11368         * opts.h (generate_option, generate_option_input_file): Declare.
11369
11370 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
11371
11372         * config/mips/mips.c (mips_override_options): Rename to...
11373         (mips_option_override): ...this. Make static.
11374         (TARGET_OPTION_OVERRIDE): Define.
11375         (mips_in_small_data_p): Update comment.
11376         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
11377         (FIXED_REGISTERS): Update comment.
11378         * config/mips/mips-protos.h (mips_override_options): Remove.
11379
11380 2010-08-21  Olivier Hainque  <hainque@adacore.com>
11381
11382         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
11383
11384 2010-08-21  Olivier Hainque  <hainque@adacore.com>
11385
11386         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
11387         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
11388
11389 2010-08-20  Jan Hubicka  <jh@suse.cz>
11390
11391         * tree-pass.h (pass_ipa_cdtor_merge): New function.
11392         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
11393         heap allocated.
11394         (record_cdtor_fn): Move to ipa.c; do not test for
11395         have_ctors_dtors.
11396         (build_cdtor): Move to ipa.c; add code avoiding construction
11397         when target have ctors/dtors and there is only one ctor/dtor at given
11398         priority.
11399         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
11400         sort; reverse order of constructors.
11401         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
11402         (cgraph_finalize_function): Do not call record_cdtor_fn.
11403         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
11404         (cgraph_build_static_cdtor): Move to ipa.c.
11405         * ipa.c: Include target.h and tree-iterator.h.
11406         (cgraph_build_static_cdtor, static_ctors, static_dtors,
11407         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
11408         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
11409         pass_ipa_cdtor_merge): New.
11410         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
11411         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
11412         bounds access.
11413
11414 2010-08-20  Jan Hubicka  <jh@suse.cz>
11415
11416         PR c++/45307
11417         PR c++/17736
11418         * cgraph.h (cgraph_only_called_directly_p,
11419         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
11420         static cdtors.
11421         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
11422         are not needed.
11423         (cgraph_finalize_function): Static cdtors are reachable.
11424         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
11425
11426 2010-08-20  Jan Hubicka  <jh@suse.cz>
11427
11428         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
11429         flag_wpa.
11430         * lto-streamer-out.c (lto_output): Likewise.
11431         * passes.c (ipa_write_optimization_summaries): Initialize statement
11432         uids.
11433
11434 2010-08-20  Olivier Hainque  <hainque@adacore.com>
11435
11436         * tree.h (alias_diag_flags): New enum.
11437         (alias_pair): Add an 'emitted_diags' field.
11438         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
11439         (assemble_alias): Initialize emitted_diags of new pairs.
11440
11441 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
11442
11443         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11444         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11445         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11446         (STACK_CHECK_PROTECT): Define.
11447         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
11448         (output_probe_stack_range): Likewise.
11449         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
11450         builtin stack checking is enabled.
11451         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
11452         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11453         (probe_stack_range): New insn.
11454
11455 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
11456
11457         PR target/45336
11458         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
11459         short first.
11460
11461         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
11462         char first.
11463
11464 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11465
11466         PR target/45336
11467         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
11468         to cover zero extension into 64-bit register.
11469         (*sse2_pextrw): Likewise.
11470         (*sse4_1_pextrd_zext): New insn.
11471
11472 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
11473
11474         revert r163410, partially revert r163267.
11475         * config/rs6000/darwin.h (LIB_SPEC): Remove.
11476         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
11477         Darwin versions.
11478
11479 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11480
11481         PR middle-end/44974
11482         * builtins.c (expand_builtin): Don't optimize away
11483         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
11484
11485 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
11486
11487         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
11488         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
11489         alternative 1 of operand 2.
11490
11491 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11492             Paolo Bonzini  <bonzini@gnu.org>
11493
11494         * simplify-rtx.c (simplify_unary_operation_1): Optimize
11495         (sign_extend (zero_extend (...)) and
11496         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
11497
11498 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR rtl-optimization/45353
11501         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
11502         after bb_note is a BARRIER.
11503
11504 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
11505
11506         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
11507         linking libgcc.a.
11508
11509 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11510             Michael Matz  <matz@suse.de>
11511
11512         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
11513
11514 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
11515
11516         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
11517         (ggc_mark_roots): ...here.
11518
11519 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
11520
11521         * vec.h (FOR_EACH_VEC_ELT): Define.
11522         * c-decl.c: Use it.
11523         * cfgloop.c: Likewise.
11524         * cfgloopmanip.c: Likewise.
11525         * cgraph.c: Likewise.
11526         * cgraphunit.c: Likewise.
11527         * combine.c: Likewise.
11528         * config/bfin/bfin.c: Likewise.
11529         * config/mips/mips.c: Likewise.
11530         * config/rs6000/rs6000.c: Likewise.
11531         * dbxout.c: Likewise.
11532         * df-scan.c: Likewise.
11533         * dominance.c: Likewise.
11534         * dse.c: Likewise.
11535         * dwarf2out.c: Likewise.
11536         * except.c: Likewise.
11537         * expr.c: Likewise.
11538         * function.c: Likewise.
11539         * gcse.c: Likewise.
11540         * genattr.c: Likewise.
11541         * ggc-common.c: Likewise.
11542         * gimplify.c: Likewise.
11543         * graphite-blocking.c: Likewise.
11544         * graphite-clast-to-gimple.c: Likewise.
11545         * graphite-dependences.c: Likewise.
11546         * graphite-interchange.c: Likewise.
11547         * graphite-poly.c: Likewise.
11548         * graphite-scop-detection.c: Likewise.
11549         * graphite-sese-to-poly.c: Likewise.
11550         * graphite.c: Likewise.
11551         * haifa-sched.c: Likewise.
11552         * ifcvt.c: Likewise.
11553         * implicit-zee.c: Likewise.
11554         * ipa-prop.c: Likewise.
11555         * ipa-struct-reorg.c: Likewise.
11556         * ipa.c: Likewise.
11557         * ira-build.c: Likewise.
11558         * ira-color.c: Likewise.
11559         * ira-emit.c: Likewise.
11560         * lambda-code.c: Likewise.
11561         * loop-invariant.c: Likewise.
11562         * loop-unroll.c: Likewise.
11563         * lower-subreg.c: Likewise.
11564         * lto-cgraph.c: Likewise.
11565         * lto-opts.c: Likewise.
11566         * lto-streamer-in.c: Likewise.
11567         * lto-streamer-out.c: Likewise.
11568         * lto-streamer.c: Likewise.
11569         * lto-symtab.c: Likewise.
11570         * matrix-reorg.c: Likewise.
11571         * opts.c: Likewise.
11572         * predict.c: Likewise.
11573         * print-tree.c: Likewise.
11574         * sdbout.c: Likewise.
11575         * sel-sched-dump.c: Likewise.
11576         * sel-sched-ir.c: Likewise.
11577         * sel-sched.c: Likewise.
11578         * sese.c: Likewise.
11579         * stor-layout.c: Likewise.
11580         * tree-cfg.c: Likewise.
11581         * tree-cfgcleanup.c: Likewise.
11582         * tree-chrec.c: Likewise.
11583         * tree-data-ref.c: Likewise.
11584         * tree-emutls.c: Likewise.
11585         * tree-inline.c: Likewise.
11586         * tree-into-ssa.c: Likewise.
11587         * tree-loop-distribution.c: Likewise.
11588         * tree-loop-linear.c: Likewise.
11589         * tree-mudflap.c: Likewise.
11590         * tree-outof-ssa.c: Likewise.
11591         * tree-parloops.c: Likewise.
11592         * tree-predcom.c: Likewise.
11593         * tree-pretty-print.c: Likewise.
11594         * tree-scalar-evolution.c: Likewise.
11595         * tree-ssa-live.c: Likewise.
11596         * tree-ssa-loop-im.c: Likewise.
11597         * tree-ssa-loop-ivcanon.c: Likewise.
11598         * tree-ssa-loop-ivopts.c: Likewise.
11599         * tree-ssa-loop-manip.c: Likewise.
11600         * tree-ssa-loop-niter.c: Likewise.
11601         * tree-ssa-loop-prefetch.c: Likewise.
11602         * tree-ssa-phiprop.c: Likewise.
11603         * tree-ssa-pre.c: Likewise.
11604         * tree-ssa-reassoc.c: Likewise.
11605         * tree-ssa-sccvn.c: Likewise.
11606         * tree-ssa-structalias.c: Likewise.
11607         * tree-ssa.c: Likewise.
11608         * tree-vect-data-refs.c: Likewise.
11609         * tree-vect-loop-manip.c: Likewise.
11610         * tree-vect-loop.c: Likewise.
11611         * tree-vect-patterns.c: Likewise.
11612         * tree-vect-slp.c: Likewise.
11613         * tree-vect-stmts.c: Likewise.
11614         * tree-vrp.c: Likewise.
11615         * tree.c: Likewise.
11616         * value-prof.c: Likewise.
11617         * var-tracking.c: Likewise.
11618         * varasm.c: Likewise.
11619         * vmsdbgout.c: Likewise.
11620
11621 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
11622             Richard Guenther  <richard.guenther@gmail.com>
11623
11624         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
11625         copy the src value and return a copy.
11626         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
11627         (C++ Volatiles): Adjust to describe C++ semantics only.
11628
11629 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
11630
11631         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
11632         be zero or nonzero.
11633         * doc/tm.texi: Regenerate.
11634         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
11635         * df-scan.c (df_get_exit_block_use_set), reginfo.c
11636         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
11637         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
11638         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
11639         to 1.
11640
11641 2010-08-20  Olivier Hainque  <hainque@adacore.com>
11642
11643         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
11644         an extra nop past a sibling call at the very end.
11645
11646 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
11647
11648         PR bootstrap/45350
11649         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
11650         a comment.
11651
11652 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
11653
11654         * target.def (function_arg, function_incoming_arg): Remove const
11655         qualifier on CUMULATIVE_ARGS parameter.
11656         * targhooks.h (default_function_arg, default_function_incoming_arg):
11657         Likewise.
11658         * targhooks.c (default_function_arg, default_function_incoming_arg):
11659         Likewise.
11660         * config/i386/i386.c (ix86_function_arg): Likewise.
11661
11662 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
11663
11664         PR target/45336
11665         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
11666         SIGN_EXTENDs or ZERO_EXTENDs.
11667
11668 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
11669
11670         PR target/42172
11671         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
11672         Take its cost into account if nonnull.
11673         (insn_a_feeds_b): New static function.
11674         (combine_instructions): Look for four-insn combinations.
11675         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
11676         them into account when computing all_adjacent and looking for other
11677         uses.
11678         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
11679         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
11680         (try_combine): New arg I0.  Handle four-insn combinations.
11681         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
11682         like ELIM_I1.
11683
11684 2010-08-19  Jason Merrill  <jason@redhat.com>
11685
11686         PR c++/45307
11687         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
11688         if ctor is empty.
11689         (gimplify_modify_expr_rhs): Adjust.
11690
11691 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
11692
11693         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
11694         bitmap_bit_p.
11695         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
11696         * dominance.c (iterate_fix_dominators): Likewise.
11697         * dse.c (set_usage_bits): Likewise.
11698         (set_position_unneeded, record_store): Likewise.
11699         * gimple-fold.c (get_maxval_strlen): Likewise.
11700         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
11701         * ipa-inline.c (update_caller_keys): Likewise.
11702         * ipa-split.c (verify_non_ssa_vars): Likewise.
11703         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
11704         (close_type_exposed_parameter, close_type_full_escape): Likewise.
11705         (close_addressof_down): Likewise.
11706         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
11707         (setup_allocno_left_conflicts_size): Likewise.
11708         (ira_reassign_conflict_allocnos): Likewise.
11709         (ira_reassign_pseudos): Likewise.
11710         * ira-emit.c (change_loop): Likewise.
11711         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
11712         * lto-streamer-out.c (write_symbol): Likewise.
11713         * predict.c (expr_expected_value_1): Likewise.
11714         * regstat.c (regstat_bb_compute_ri): Likewise.
11715         * sel-sched.c (create_block_for_bookkeeping): Likewise.
11716         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
11717         * stmt.c (expand_case): Likewise.
11718         * tree-eh.c (emit_eh_dispatch): Likewise.
11719         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
11720         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
11721         Likewise.
11722         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
11723         (rdg_build_components): Likewise.
11724         * tree-object-size.c (collect_object_sizes_for): Likewise.
11725         * tree-sra.c (convert_callers): Likewise.
11726         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
11727         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
11728         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
11729
11730 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
11731
11732         * config/i386/i386.md (*lea_1): Use P mode iterator.
11733         (lea add splitter): Also handle DImode operands.
11734         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
11735         predicate.  Do not use ix86_lea_for_add_ok.
11736         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
11737         (lea ashift splitter): Also handle DImode operands.
11738         (DImode lea ashift splitter): Remove splitter.
11739
11740 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
11741
11742         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
11743         ix86_binary_operator_ok.
11744
11745 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
11746
11747         PR rtl-optimization/44691
11748         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
11749         is not a register.
11750
11751 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
11752
11753         PR target/45070
11754         * config/arm/arm.c (arm_output_epilogue): Ensure that return
11755          value of size 1-3 is handled correctly.
11756
11757 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
11758
11759         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
11760         type for the conditional has wide enough range.
11761
11762 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
11763
11764         PR target/45327
11765         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
11766         ix86_binary_operator_ok.
11767
11768 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
11769
11770         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
11771         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
11772         code to output insn mnemonic.  Fix comment.
11773         (*addsi_1_zext): Add r-r-0 alternative 1.
11774         <TYPE_LEA>: Split insn to lea.
11775         <default>: Handle alternative 1.
11776         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
11777         multi-level if_then_else RTX to set "type" attribute.
11778         <default>: Handle alternative 2.
11779         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
11780         Use cond RTX instead of multi-level if_then_else RTX to set
11781         "type" attribute.
11782         <default>: Handle alternatives 2 and 4.
11783         (lea splitters): Update calls to ix86_lea_for_add_ok.
11784
11785         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
11786         argument.
11787         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
11788
11789 2010-08-18  Richard Guenther  <rguenther@suse.de>
11790
11791         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
11792         use operand helpers.
11793
11794 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
11795
11796         PR middle-end/45292
11797         * optabs.c (expand_bool_compare_and_swap): Expand pending
11798         pops before trying the optab.
11799
11800 2010-08-18  Yao Qi  <yao@codesourcery.com>
11801
11802         PR target/45094
11803         * config/arm/arm.c (output_move_double): Fix typo generating
11804         instructions ('ldr'->'str').
11805
11806 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
11807
11808         PR rtl-optimization/42575
11809         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
11810         live ranges.
11811
11812 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11813
11814         * config/arm/arm-protos.h (arm_expand_sync): New.
11815         (arm_output_memory_barrier, arm_output_sync_insn): New.
11816         (arm_sync_loop_insns): New.
11817         * config/arm/arm.c (FL_ARCH7): New.
11818         (FL_FOR_ARCH7): Include FL_ARCH7.
11819         (arm_arch7): New.
11820         (arm_print_operand): Support %C markup.
11821         (arm_legitimize_sync_memory): New.
11822         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
11823         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
11824         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
11825         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
11826         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
11827         (arm_process_output_sync_insn, arm_output_sync_insn): New.
11828         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
11829         * config/arm/arm.h (struct arm_sync_generator): New.
11830         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
11831         (TARGET_HAVE_MEMORY_BARRIER): New.
11832         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
11833         * config/arm/arm.md: Include sync.md.
11834         (UNSPEC_MEMORY_BARRIER): New.
11835         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
11836         (VUNSPEC_SYNC_OP):New.
11837         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
11838         (sync_result, sync_memory, sync_required_value): New attributes.
11839         (sync_new_value, sync_t1, sync_t2): Likewise.
11840         (sync_release_barrier, sync_op): Likewise.
11841         (length): Add logic to length attribute defintion to call
11842         arm_sync_loop_insns when appropriate.
11843         * config/arm/sync.md: New file.
11844
11845 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
11846
11847         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
11848         ENABLE_TREE_CHECKING.
11849         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
11850         and GCC >= 4.3.
11851
11852 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
11853
11854         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
11855         or optimizing for size, always avoid lea if possible.
11856
11857         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
11858
11859 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
11860
11861         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
11862         Dunmmy function with NULL return unless the target is
11863         OSX >= 10.6 (Darwin10).
11864
11865 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
11866
11867         * gcc.c (spec_function): Add remove-outfile.
11868         (remove_outfile_spec_function): New function.
11869         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
11870         * invoke.texi (replace-outfile): Document.
11871
11872 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
11873
11874         PR target/45296
11875         * reginfo.c (globalize_reg): Reject stack registers.
11876
11877 2010-08-17  Richard Guenther  <rguenther@suse.de>
11878
11879         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
11880         list of conditional equivalences.
11881         (free_all_edge_infos): Adjust.
11882         (record_equivalences_from_incoming_edge): Likewise.
11883         (record_cond): Likewise.
11884         (build_and_record_new_cond): Likewise.
11885         (record_conditions): Likewise.
11886         (dom_opt_leave_block): Likewise.
11887
11888 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
11889
11890         * doc/invoke.texi (ms-extension): Add documentation.
11891
11892 2010-08-17  Richard Guenther  <rguenther@suse.de>
11893
11894         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
11895
11896 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
11897
11898         PR c/40563
11899         * c-decl.c (diagnose_uninitialized_cst_member): New function.
11900         (finish_decl): Use it to issue a -Wc++-compat warning about
11901         uninitialized const field in struct or union.
11902
11903         (finish_struct): Use strip_array_types.
11904
11905 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
11906
11907         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
11908         functions.
11909         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
11910         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
11911         call block_nreverse here.
11912         (blocks_nreverse): Rename decl temporary to block.
11913
11914 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
11915
11916         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
11917         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
11918         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
11919         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
11920         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
11921         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
11922         thumb2_iorsi3): Delete.
11923         (orsi_notsi_si): No longer a named pattern.
11924         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
11925         * config/arm/predicates.md (shift_amount_operand): New.
11926         (mult_operator): New.
11927         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
11928         attr enabled): New.
11929         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
11930         arch matches t2.
11931         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
11932         (not_shiftsi_compare0): Likewise, renamed from
11933         arm_notsi_shiftsi_compare0.
11934         (not_shiftsi_compare0_scratch): Likweise, renamed from
11935         arm_notsi_shiftsi_compare0_scratch.
11936         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
11937         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
11938         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
11939         so that the register alternative is disabled when the shift_operator
11940         is MULT.  Use "M" as the constraint for constants.
11941         (arith_shiftsi splitter): Enable for TARGET_32BIT.
11942         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
11943         constraint for constants.
11944         (arith_shiftsi_compare0_scratch): Likewise.
11945         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
11946         Handle Thumb2 alternative.
11947
11948 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
11949
11950         * doc/options.texi (NoDriverArg): Document.
11951         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
11952         -MDX and -MMDX.
11953         * opt-functions.awk (switch_flags): Handle NoDriverArg.
11954         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
11955         marking for CL_NO_DRIVER_ARG options when in the driver.
11956         * opts.h (CL_NO_DRIVER_ARG): Define.
11957         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
11958         CL_COMMON): Update values.
11959
11960 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
11961
11962         * common.opt: Add driver options.
11963         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
11964         * doc/options.texi (Driver, RejectDriver): Document.
11965         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
11966         print_prog_name, print_multi_directory, print_sysroot,
11967         print_multi_os_directory, print_multi_lib,
11968         print_sysroot_headers_suffix, report_times, combine_flag,
11969         use_pipes, wrapper_string): Remove.
11970         (save_switch, driver_unknown_option_callback,
11971         driver_wrong_lang_callback, driver_post_handling_callback,
11972         driver_handle_option): New.
11973         (spec_lang, last_language_n_infiles): Make file-scope static
11974         instead of local to process_command.
11975         (process_command): Use decode_cmdline_options_to_array and
11976         read_cmdline_option for option processing.  Compute have_c in
11977         prescan of decoded options.
11978         * opt-functions.awk (switch_flags): Handle Driver and
11979         RejectDriver.
11980         (var_type, var_type_struct): Handle Separate options as generating
11981         const char * variables.
11982         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
11983         CL_TARGET to be passed by caller if required.
11984         (decode_cmdline_options_to_array): Update comment.
11985         * opts.c (complain_wrong_lang): Handle options only valid for the
11986         driver.
11987         (decode_options): Update call to decode_cmdline_options_to_array.
11988         (print_filtered_help): Ignore driver-only options.
11989         (print_specific_help): Ignore CL_DRIVER.
11990         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
11991         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
11992         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
11993         Update values.
11994
11995 2010-08-16  Richard Guenther  <rguenther@suse.de>
11996
11997         * tree-cfg.c (verify_types_in_gimple_reference): Verify
11998         TARGET_MEM_REF a bit.
11999         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
12000         (create_mem_ref_raw): Always create TMR_OFFSET, store the
12001         alias pointer type via it.
12002         (copy_mem_ref_info): Adjust.
12003         (maybe_fold_tmr): Likewise.
12004         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
12005         (reference_alias_ptr_type): Likewise.
12006         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
12007         adjust documentation of TMR_OFFSET operand.
12008         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
12009         use the alias pointer type.
12010         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
12011         initialize mem attrs but the TMR itself.
12012         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
12013         similar to MEM_REF.
12014         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
12015         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
12016         (unshare_and_remove_ssa_names): Likewise.
12017         (copy_ref_info): Adjust.
12018         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
12019         TARGET_MEM_REF case.
12020         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
12021         at TMR_ORIGINAL.
12022         * tree.h (TMR_ORIGINAL): Remove.
12023         * gimple.c (get_base_address): For TARGET_MEM_REF with a
12024         symbol return that.
12025         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
12026         with a symbol.
12027         (get_addr_base_and_unit_offset): Likewise.
12028         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
12029         TARGET_MEM_REFs.
12030         (indirect_ref_may_alias_decl_p): Likewise.
12031         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
12032
12033 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
12034
12035         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
12036         with GCC version 4.6, the default setting (when not optimizing
12037         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
12038         been changed to -fomit-frame-pointer.
12039
12040 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
12041
12042         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
12043         Darwin10.  Do not link libgcc.a for Darwin >= 9.
12044
12045 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
12046
12047         * doc/invoke.texi (Warning Options): Fix terminology and markup
12048         in the description of how unknown warning options are handled.
12049
12050 2010-08-15  Ira Rosen  <irar@il.ibm.com>
12051
12052         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
12053         in basic blocks.
12054         (vect_supportable_dr_alignment): Check alignment for basic blocks.
12055         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
12056         data references.
12057         (vect_bb_vectorization_profitable_p): New function.
12058         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
12059         check if it's worthwhile to vectorize the basic block.
12060
12061 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
12062
12063         * reload.h (register_move_cost, memory_move_secondary_cost,
12064         secondary_reload_class): Adjust prototype.
12065         * rtl.h (reg_class_subset_p): Adjust prototype.
12066         * reload.c (secondary_reload_class): Change arguments type from
12067         enum reg_class to reg_class_t. Change result type to reg_class_t.
12068         * reginfo.c (register_move_cost, reg_class_subset_p): Change
12069         arguments type from enum reg_class to reg_class_t.
12070         (memory_move_secondary_cost): Change arguments type from
12071         enum reg_class to reg_class_t. Change type of saved_flags to
12072         reg_class_t.
12073
12074         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12075         Remove macros.
12076         (mips_cost): Remove.
12077         (struct mips_rtx_cost_data): Moved to mips.c.
12078         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
12079         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
12080         (mips_cost): Make static.
12081         (mips_canonicalize_move_class): Change argument type to reg_class_t.
12082         Change result type to reg_class_t.
12083         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
12084         type from enum reg_class to reg_class_t.
12085         (mips_register_move_cost): Make static. Change arguments
12086         type from enum reg_class to reg_class_t.
12087         (mips_memory_move_cost): New function.
12088         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12089
12090 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
12091
12092         PR rtl-optimization/43358
12093         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
12094         of a single hard register, using simplify_subreg_regno to decide
12095         what that register should be.
12096
12097 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
12098
12099         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
12100         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
12101         (loongson_pmull<V_suffix>): Rename to...
12102         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
12103
12104 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
12105
12106         * configure.ac: Enable -fomit-frame-pointer on darwin
12107         which support dwarf2.
12108         * config/i386/i386.c (override_options): Same.
12109
12110 2010-08-13  Jie Zhang  <jie@codesourcery.com>
12111
12112         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
12113
12114 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
12115
12116         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
12117         -MMD.
12118
12119 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
12120
12121         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
12122         up dot_prod pattern searching if a stmt is outside the loop.
12123
12124 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
12125             Uros Bizjak  <ubizjak@gmail.com>
12126
12127         * config.gcc: Handle --enable-frame-pointer.
12128
12129         * configure.ac: Add --enable-frame-pointer.
12130         * configure: Regenerated.
12131
12132         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
12133         (override_options): If not configured with --enable-frame-pointer,
12134         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
12135         optimizing for size), -fasynchronous-unwind-tables and
12136         -maccumulate-outgoing-args by default.
12137
12138 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12139
12140         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
12141
12142         PR middle-end/45262
12143         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
12144         -a overflows.  Normalize the range.
12145
12146 2010-08-12  Richard Guenther  <rguenther@suse.de>
12147
12148         PR tree-optimization/45232
12149         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
12150         for types with undefined overflow.
12151         (reassociate_bb): Allow re-associating of bit and min/max
12152         operations for types with undefined overflow.
12153         * tree-ssa-forwprop.c (associate_plusminus): New function.
12154         (tree_ssa_forward_propagate_single_use_vars): Call it.
12155
12156 2010-08-12  Richard Guenther  <rguenther@suse.de>
12157
12158         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
12159         * tree-ssa-alias.c (get_ptr_info): Move ...
12160         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
12161         align and misalign fields conservatively.
12162         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
12163         derive alignment information.
12164         (evaluate_stmt): Derive alignment information from memory
12165         allocation functions.
12166         * tree.h (get_pointer_alignment): Make unsigned.
12167         * builtins.c (get_object_alignment): Use alignment information we
12168         have computed for pointers.
12169         (get_pointer_alignment): Likewise.  Make conservative, return
12170         and unsigned value.
12171         (expand_builtin_strlen): Adjust.
12172         (expand_builtin_memcmp): Likewise.
12173         (expand_builtin_strcmp): Likewise.
12174         (expand_builtin_strncmp): Likewise.
12175         (get_builtin_sync_mem): Use at least mode alignment.
12176         (fold_builtin_memset): Adjust.
12177         (fold_builtin_memory_op): Likewise.
12178         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
12179         information also dump pointer alignment knowledge.
12180         (dump_gimple_stmt): Likewise.
12181
12182 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
12183
12184         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
12185         (EMPTY_FIELD_BOUNDARY): Remove.
12186         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
12187
12188 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12189
12190         PR debug/45259
12191         * caller-save.c (save_call_clobbered_regs): Only swap notes with
12192         DEBUG_INSNs if n_regs_saved.
12193
12194 2010-08-12  Wei Guozhi  <carrot@google.com>
12195
12196         PR target/44999
12197         * config/arm/arm.md (andsi3): Change to zero extension if possible.
12198         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
12199
12200 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
12201
12202         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
12203
12204         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
12205
12206 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12207
12208         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
12209         the case removed in the previous patch, when the only phi argument
12210         is defined in the same loop as the phi node itself.  Handle it
12211         separately from the invariant case by both propagating it outside
12212         the region and replacing the phi node with an assign.
12213
12214 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12215
12216         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
12217         constant phi nodes with one argument are is_gimple_min_invariant
12218         and SSA_NAME_IS_DEFAULT_DEF.
12219
12220 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12221
12222         * graphite-cloog-util.c (oppose_constraint):
12223         Extend loop counter's value range (CLOOG_ORG).
12224         (cloog_matrix_to_ppl_constraint): Same.
12225         (new_Constraint_System_from_Cloog_matrix): Same.
12226         * graphite-cloog-compat.h (matrix_num_type): New.
12227
12228 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12229
12230         * graphite.c (graphite_initialize): Do not initialize
12231         CLooG and initialize the Parma Polyhedra Library
12232         manually when using CLOOG_ORG.
12233         (graphite_finalize): Do not finalize CLooG and finalize
12234         the Parma Polyhedra Library manually when using CLOOG_ORG.
12235         * graphite-cloog-compat.h (cloog_initialize): Hide function
12236         when using CLOOG_ORG.
12237         (cloog_finalize): Same.
12238
12239 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12240
12241         * graphite-clast-to-gimple.c (free_scattering): Change
12242         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
12243         (CLOOG_ORG).
12244         (build_cloog_prog): Same.
12245         * graphite-cloog-compat.h (cloog_domain): Removed.
12246         (cloog_scattering): New.
12247         (cloog_set_domain): Removed.
12248         (cloog_set_scattering): New.
12249         (cloog_next_domain): Removed.
12250         (cloog_next_scattering): New.
12251         (cloog_set_next_domain): Removed.
12252         (cloog_set_next_scattering): New.
12253         (CloogScatteringList): New.
12254         (CloogScattering): New.
12255         (cloog_scattering_free): New.
12256         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
12257         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
12258         New.
12259
12260 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12261
12262         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
12263         CloogState.
12264         (set_cloog_options): Same.
12265         (print_clast_stmt): Same.
12266         (scop_to_clast): Same.
12267         (print_generated_program): Same.
12268         (gloog): Same.
12269         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
12270         (scop_to_clast): Extend with CloogState.
12271         * graphite-cloog-util.c: Include graphite-cloog-compat.h
12272         (new_Cloog_Domain_from_ppl_Polyhedron):
12273         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
12274         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
12275         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12276         * graphite-cloog-util.h (build_cloog_prog): Same.
12277         * graphite-cloog-copat.h (build_cloog_prog): New.
12278         (CloogState): New.
12279         (cloog_state_malloc): New.
12280         (cloog_state_free): New.
12281         (cloog_loop_malloc): New.
12282         (cloog_options_malloc): New.
12283         (cloog_statement_alloc): New.
12284         (cloog_domain_from_cloog_matrix): New.
12285         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
12286         (new_Cloog_Domain_from_ppl_Polyhedron): New.
12287
12288 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12289
12290         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
12291         type of NAME now depends on used CLooG version.
12292         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
12293         (gcc_type_for_clast_expr): Same.
12294         (print_clast_stmt): Replace pprint with clast_pprint.
12295         * graphite-cloog-compat.h: Provide compatibility macros for
12296         CLooG Legacy.
12297         (clast_name_p): New.
12298         (clast_expr_term): New.
12299         (clast_expr_red): New.
12300         (clast_expr_bin): New.
12301         (clast_pprint): New.
12302
12303 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12304
12305         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
12306         compatible to newer CLooG releases (CLOOG_ORG).
12307         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
12308         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
12309         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
12310         (build_cloog_prog) : New.
12311         (cloog_program_extract_scalars): New.
12312         (cloog_program_scatter): New.
12313
12314 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12315
12316         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
12317         conditionally (CLOOG_ORG).
12318         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
12319         (cloog_statement_usr): New.
12320         (cloog_domain): Same.
12321         (cloog_set_domain): Same.
12322         (cloog_next_domain): Same.
12323         (cloog_set_next_domain): Same.
12324         (cloog_program_nb_scattdims): Same.
12325         (cloog_program_set_nb_scattdims): Same.
12326         (cloog_program_names): Same.
12327         (cloog_program_set_names): Same.
12328         (cloog_program_set_context): Same.
12329         (cloog_program_set_loop): Same.
12330         (cloog_program_blocklist): Same.
12331         (cloog_program_set_blocklist): Same.
12332         (cloog_program_scaldims): Same.
12333         (cloog_program_set_scaldims): Same.
12334         (cloog_names_nb_parameters): Same.
12335         (cloog_names_set_nb_parameters): Same.
12336         (cloog_names_parameters): Same.
12337         (cloog_names_set_parameters): Same.
12338         (cloog_names_set_nb_iterators): Same.
12339         (cloog_names_set_iterators): Same.
12340         (cloog_names_set_nb_scattering): Same.
12341         (cloog_names_set_scattering): Same.
12342         (cloog_statement_set_usr): Same.
12343         (cloog_loop_set_next): Same.
12344         (cloog_loop_set_domain): Same.
12345         (cloog_loop_set_block): Same.
12346         (cloog_block_list_next): Same.
12347         (cloog_block_list_set_next):
12348         (cloog_block_list_set_block): Same.
12349
12350 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12351
12352         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
12353         a bool.
12354         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
12355         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
12356         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
12357         when something has been changed.
12358         (rewrite_commutative_reductions_out_of_ssa): Same.
12359
12360 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12361
12362         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
12363         handle the case when def is in the sese region.
12364         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
12365         for invariant expressions.
12366         (rewrite_cross_bb_phi_deps): Removed.
12367         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
12368         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
12369         rewrite_cross_bb_phi_deps.
12370
12371 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12372
12373         * graphite-sese-to-poly.c
12374         (rewrite_commutative_reductions_out_of_ssa_loop): Call
12375         scev_analyzable_p only on is_gimple_reg
12376
12377 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12378
12379         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
12380         (rewrite_close_phi_out_of_ssa): Propagate constant values or
12381         parametric expressions outside the scop region.
12382         (rewrite_cross_bb_scalar_deps): Same.
12383         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
12384
12385 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12386
12387         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
12388         SSA_NAME_DEF_STMT only on SSA_NAMEs.
12389
12390 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12391
12392         * tree-scalar-evolution.c (instantiate_scev_name): Do not
12393         instantiate default definitions.
12394
12395 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
12396             Sebastian Pop  <sebastian.pop@amd.com>
12397
12398         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
12399         (loop_exits_from_bb_p): New.
12400         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
12401         (loop_exits_from_bb_p): Declared.
12402         * graphite-scop-detection.c (scopdet_basic_block_info): Call
12403         loop_exits_to_bb_p.
12404
12405 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12406
12407         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
12408         extra parameter for the region.  Call scev_analyzable_p.
12409         (rewrite_reductions_out_of_ssa): Update call to
12410         rewrite_close_phi_out_of_ssa.
12411         (rewrite_cross_bb_phi_deps): Same.
12412         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
12413         parameter for the region.  Call scev_analyzable_p.
12414         (rewrite_commutative_reductions_out_of_ssa): Update call to
12415         rewrite_commutative_reductions_out_of_ssa_loop.
12416
12417 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12418
12419         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
12420
12421 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12422
12423         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
12424         SSA scalar phi nodes that can be scev_analyzable_p.
12425
12426 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12427
12428         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
12429         handle SSA_NAME_IS_DEFAULT_DEF.
12430
12431 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12432
12433         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
12434
12435 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12436
12437         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
12438         case non close-phi nodes with one argument.
12439
12440 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12441
12442         * sese.h (scev_analyzable_p): Scevs could be expressions without
12443         chrecs and still be scev_analyzable_p.
12444
12445 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12446
12447         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12448
12449 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12450
12451         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
12452         * cfgloop.h (struct loop): Remove single_iv field.
12453         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
12454         (scop_canonicalize_loops): Removed.
12455         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
12456         over all the loop phi nodes in loop->header.
12457         (build_poly_scop): Remove use of scop_canonicalize_loops.
12458
12459 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12460
12461         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
12462         handle GIMPLE_CALL.
12463
12464 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12465
12466         * tree-chrec.c (chrec_apply): Should only apply to the specified
12467         variable.  Also handle multivariate chains of recurrences that
12468         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
12469
12470 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12471
12472         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
12473         (debug_clast_name_indexes_1): Removed.
12474         (debug_clast_name_indexes): Removed.
12475         (pbb_to_depth_to_oldiv): Removed.
12476         (build_iv_mapping): Replace the use of rename_map with iv_map.
12477         (translate_clast_user): Remove uses of rename_map.  Allocate and
12478         free iv_map.
12479         (translate_clast_for_loop): Remove uses of rename_map.
12480         (translate_clast_for): Same.
12481         (translate_clast_guard): Same.
12482         (translate_clast): Same.
12483         (gloog): Same.
12484         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
12485         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
12486         * sese.c (set_rename): Now static.
12487         (rename_variables_in_stmt): Removed.
12488         (rename_uses): New.
12489         (is_parameter): Removed.
12490         (is_iv): Removed.
12491         (expand_scalar_variables_call): Removed.
12492         (expand_scalar_variables_ssa_name): Removed.
12493         (expand_scalar_variables_expr): Removed.
12494         (expand_scalar_variables_stmt): Removed.
12495         (expand_scalar_variables): Removed.
12496         (rename_variables): Removed.
12497         (remove_condition): Removed.
12498         (get_true_edge_from_guard_bb): Removed.
12499         (get_false_edge_from_guard_bb): Removed.
12500         (struct igp): Removed.
12501         (default_before_guard): Removed.
12502         (convert_for_phi_arg): Removed.
12503         (add_guard_exit_phis): Removed.
12504         (insert_guard_phis): Removed.
12505         (graphite_copy_stmts_from_block): Now also uses iv_map and a
12506         region.  Do not copy conditions.  Do not copy induction variables.
12507         Call rename_uses.
12508         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
12509         the translated statement.  Use the iv_map for the induction
12510         variable renaming.
12511         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
12512         (set_rename): Removed declaration.
12513         (scev_analyzable_p): ...here.
12514         * tree-chrec.c (chrec_apply_map): New.
12515         * tree-chrec.h (chrec_apply_map): Declared.
12516
12517 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12518
12519         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
12520         insert_loop_close_phis.
12521         * sese.c (name_defined_in_loop_p): Removed.
12522         (expr_defined_in_loop_p): Removed.
12523         (alive_after_loop): Removed.
12524         (close_phi_not_yet_inserted_p): Removed.
12525         (struct alep): Removed.
12526         (add_loop_exit_phis): Removed.
12527         (insert_loop_close_phis): Removed.
12528
12529 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12530
12531         * graphite-cloog-util.c
12532         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
12533         * graphite-poly.c
12534         (psct_scattering_dim_for_loop_depth): Same.
12535
12536 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12537
12538         * graphite-cloog-util.h: Added cloog.h.
12539         * graphite-blocking.c: Removed cloog.h.
12540         * graphite-dependences.c: Same.
12541         * graphite-interchange.c: Same.
12542         * graphite-poly.c: Same.
12543         * graphite-ppl.c: Same.
12544         * graphite-scop-detection.c: Same.
12545         * graphite-sese-to-poly.c:
12546         Removed cloog.h.
12547         Removed graphite-clast-to-gimple.h.
12548         (check_poly_representation): Removed (unused).
12549         * graphite-sese-to-poly.h
12550         (check_poly_representation): Removed (unused).
12551
12552 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12553
12554         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
12555         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
12556         (graphite-cloog-util.o): New.
12557         (graphite-ppl.o): Added graphite-cloog-util.h.
12558         * graphite-clast-to-gimple.c:
12559         Added graphite-cloog-util.h to include statements.
12560         * graphite-cloog-util.c: New.
12561         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
12562         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12563         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
12564         (new_C_Polyhedron_from_Cloog_Matrix): Same.
12565         (insert_constraint_into_matrix): Same.
12566         (ppl_Constrain_System_number_of_constraints): Same.
12567         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
12568         (oppose_constraint): Same.
12569         (cloog_matrix_to_ppl_constraint): Same.
12570         (new_Constraint_System_from_Cloog_Matrix): Same.
12571         * graphite-cloog-util.h: New.
12572         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
12573         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12574         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
12575         (new_C_Polyhedron_from_Cloog_Matrix): Same.
12576         (insert_constraint_into_matrix): Same.
12577         * graphite-ppl.c:
12578         Added graphite-cloog-util.h to include statements.
12579         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
12580         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12581         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
12582         (new_C_Polyhedron_from_Cloog_Matrix): Same.
12583         (insert_constraint_into_matrix): Same.
12584         (ppl_Constrain_System_number_of_constraints): Same.
12585         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
12586         (oppose_constraint): Same.
12587         (cloog_matrix_to_ppl_constraint): Same.
12588         (new_Constraint_System_from_Cloog_Matrix): Same.
12589         * graphite-ppl.h:
12590         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
12591         graphite-cloog-util.h.
12592         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12593         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
12594         (new_C_Polyhedron_from_Cloog_Matrix): Same.
12595         (insert_constraint_into_matrix): Same.
12596
12597 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12598
12599         * graphite-clast-to-gimple.c
12600         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
12601         (precision_for_interval): Same.
12602         (gcc_type_for_interval): Same.
12603         (compute_type_for_level): Same.
12604         * graphite-interchange.c
12605         (lst_interchange_profitable_p): Same.
12606         * graphite-poly.c
12607         (psct_scattering_dim_for_loop_depth): Same.
12608         * graphite-ppl.c
12609         (ppl_max_for_le_pointset): Same.
12610         (ppl_min_for_le_pointset): Same.
12611
12612 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12613
12614         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
12615         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
12616
12617 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12618
12619         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
12620         rewrite_close_phi_out_of_ssa.
12621
12622 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12623
12624         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
12625
12626 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12627
12628         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
12629         rename_map.
12630         * sese.c (debug_rename_map): Same.
12631         (get_rename): Same.
12632         (set_rename): Same.
12633         (rename_variables_in_stmt): Same.
12634         (expand_scalar_variables_call): Same.
12635         (expand_scalar_variables_ssa_name): Same.
12636         (expand_scalar_variables_expr): Same.
12637         (expand_scalar_variables_stmt): Same.
12638         (expand_scalar_variables): Same.
12639         (rename_variables): Same.
12640         (graphite_copy_stmts_from_block): Same.
12641         (copy_bb_and_scalar_dependences): Same.
12642
12643 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12644
12645         * graphite-clast-to-gimple.c (copy_renames): Removed.
12646         (translate_clast_for): Do not call copy_renames.
12647         (translate_clast_guard): Same.
12648
12649 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12650
12651         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
12652         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
12653         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
12654         before rewrite_cross_bb_scalar_deps.
12655
12656 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12657
12658         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
12659         Early return in when flag_associative_math is not set.
12660
12661 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12662
12663         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
12664         of SSA copies on edges except for loop->latch.
12665
12666 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12667
12668         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
12669         Split out of rewrite_reductions_out_of_ssa.
12670         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
12671         Declared.
12672         * graphite.c (graphite_transform_loops): Call it.
12673
12674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12675
12676         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
12677
12678 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
12679
12680         * dbgcnt.def (graphite_scop): New counter.
12681         * graphite.c: Include dbgcnt.h.
12682         (graphite_transform_loops): Use new counter to limit transformations.
12683         * Makefile.in (graphite.o): Depend on DBGCNT_H.
12684
12685 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12686
12687         * passes.c (init_optimization_passes): Add pass_graphite.
12688         Schedule a pass_copy_prop before pass_graphite_transforms.
12689         * timevar.def (TV_GRAPHITE): Declared.
12690         * tree-pass.h (pass_graphite): Declared.
12691         * tree-ssa-loop.c (pass_graphite): New.
12692
12693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12694
12695         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
12696         Remove calls to rename_nb_iterations and rename_sese_parameters.
12697         * graphite-clast-to-gimple.h (gloog): Update declaration.
12698         * graphite.c (graphite_transform_loops): Update call to gloog.
12699         * sese.c (rename_variables_in_expr): Removed.
12700         (rename_nb_iterations): Removed.
12701         (rename_sese_parameters): Removed.
12702         * sese.h (rename_nb_iterations): Removed.
12703         (rename_sese_parameters): Removed.
12704
12705 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12706
12707         * graphite-clast-to-gimple.c (gloog): Remove call to
12708         sese_adjust_liveout_phis.
12709         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
12710         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
12711         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
12712         rewrite_phi_out_of_ssa.
12713         * sese.c (get_vdef_before_sese): Removed.
12714         (sese_adjust_vphi): Removed.
12715         (sese_adjust_liveout_phis): Removed.
12716         * sese.h (sese_adjust_liveout_phis): Removed.
12717
12718 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12719
12720         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
12721         argument for the place after which to insert the out of SSA copy.
12722         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
12723         (rewrite_phi_out_of_ssa): Same.
12724         (rewrite_cross_bb_scalar_deps): Same.
12725         (insert_copyout): Removed.
12726         (insert_copyin): Removed.
12727         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
12728         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
12729         insert_copyin.
12730
12731 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12732
12733         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
12734         (rewrite_reductions_out_of_ssa): Same.
12735         (rewrite_commutative_reductions_out_of_ssa): Same.
12736         (build_poly_scop): Do not call these functions.
12737         * graphite-sese-to-poly.h (build_poly_scop): Declared.
12738         (rewrite_reductions_out_of_ssa): Declared.
12739         (rewrite_commutative_reductions_out_of_ssa): Declared.
12740         * graphite.c (graphite_transform_loops): Call on every scop
12741         rewrite_commutative_reductions_out_of_ssa before calling
12742         rewrite_reductions_out_of_ssa and build_scop_bbs.
12743
12744 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12745
12746         * graphite-dependences.c (dot_deps): Make system call to dotty run
12747         in background.
12748         (dot_deps_stmt): Same.
12749         * graphite-poly.c (dot_lst): Same.
12750
12751 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12752
12753         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
12754         phi_arg_in_outermost_loop.
12755         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
12756         (remove_invariant_phi): Same.
12757
12758 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
12759
12760         * target.def (output_addr_const_extra): New hook.
12761         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
12762         * doc/tm.texi: Regenerate.
12763         * targhooks.c (default_asm_output_addr_const_extra): New function.
12764         * targhooks.h (default_asm_output_addr_const_extra): Declare.
12765         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
12766         target hook.
12767
12768         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12769         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
12770         * config/i386/i386.h (output_addr_const_extra): Rename to...
12771         (i386_asm_output_addr_const_extra): ...this. Make static.
12772         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12773
12774 2010-08-11  Richard Henderson  <rth@redhat.com>
12775
12776         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
12777
12778 2010-08-11  Nick Clifton  <nickc@redhat.com>
12779
12780         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
12781         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
12782         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
12783         stormy16-lib2-cmpsi.c.
12784
12785         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
12786         -O2.
12787
12788 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
12789
12790         * opts.h (struct cl_option_handler_func): Make handler take
12791         cl_decoded_option structure as parameter, not individual elements.
12792         (struct cl_option_handlers): Make callbacks take cl_decoded_option
12793         structure as parameter, not individual elements.
12794         (handle_option): Take cl_decoded_option structure as parameter,
12795         not individual elements.
12796         (handle_generated_option): Declare.
12797         * opts-common.c (handle_option): Take cl_decoded_option structure
12798         as parameter, not individual elements.  Update calls to callback
12799         and handler functions.
12800         (handle_generated_option): New.
12801         (read_cmdline_option): Update calls to callback functions and
12802         handle_option.
12803         * opts.c (common_handle_option, complain_wrong_lang,
12804         unknown_option_callback, post_handling_callback,
12805         lang_handle_option, target_handle_option): Take cl_decoded_option
12806         structure as parameter, not individual elements.
12807         (lang_handle_option, target_handle_option, common_handle_option):
12808         Assert option has at most one argument.
12809         (enable_warning_as_error): Call handle_generated_option instead of
12810         handle_option.  Do not pass -Werror argument as argument of
12811         generated option.
12812
12813 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12814
12815         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
12816         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
12817         (SUBWORD_BOOL_CAS): Likewise.
12818         (SUBWORD_SYNC_OP): Likewise.
12819         (SUBWORD_TEST_AND_SET): Likewise.
12820         (FETCH_AND_OP_WORD): Parenthesise INF_OP
12821         (SUBWORD_SYNC_OP): Likewise.
12822         (OP_AND_FETCH_WORD): Likewise.
12823
12824 2010-08-10  Xinliang David Li  <davidxl@google.com>
12825
12826         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
12827         compute max/min offset in address.
12828
12829 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
12830
12831         * ira-live.c: Include sbitmap.h.
12832         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
12833         Compress live ranges even more.
12834
12835 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
12836
12837         * coverage.c (ctr_labels): Delete.
12838
12839 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
12840
12841         PR bootstrap/45177
12842         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
12843         test here from arm_gen_load_multiple_1.
12844         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
12845         multiple_operation_profitable_p.
12846
12847 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
12848
12849         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
12850         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
12851
12852 2010-08-10  Richard Henderson  <rth@redhat.com>
12853
12854         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
12855         after saving registers.  Assert that SSE registers are only saved
12856         with a sufficiently aligned frame.
12857         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
12858         remove stack_realign_fp handling.
12859         (ix86_expand_prologue): Save int registers before stack_realign_fp,
12860         and do not mark the stack alignment as frame related.
12861         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
12862
12863         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
12864         saves when re-aligning the stack.
12865
12866 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
12867
12868         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
12869         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
12870         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
12871
12872 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
12873
12874         * dwarf2out.c (struct die_struct): Move die_tag to the end.
12875
12876 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
12877
12878         * config/arm/iterators.md: New file.
12879         * config/arm/arm.md: Include iterators.md.
12880         (QHSI): Move to new file.
12881         (LTUGEU, cnb, optab, ior_xor): Likewise.
12882         * config/arm/iwmmxt.md (VMMX): Move to new file.
12883         (VSHFT, MMX_char): Likewise.
12884         * config/arm/neon.md (VD): Move to new file.
12885         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
12886         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
12887         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
12888         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
12889         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
12890         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
12891         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
12892         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
12893         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
12894         (Is_d_reg, V_mode_nunits): Likewise.
12895         * config/arm/vec-common.md (VALL): Move to new file.
12896         (VALLW, VINT, VINTW): Likewise.
12897
12898 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
12899
12900         PR middle-end/45182
12901         * combine.c (make_compound_operation): Don't try to convert
12902         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
12903
12904 2010-08-10  Richard Guenther  <rguenther@suse.de>
12905
12906         * tree.h (get_object_alignment): Adjust prototype.
12907         * builtins.c (get_object_alignment): Return unsigned int,
12908         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
12909         and TARGET_MEM_REF properly.
12910         (get_pointer_alignment): Adjust.
12911         * emit-rtl.c (get_mem_align_offset): Adjust comment.
12912         (set_mem_attributes_minus_bitpos): Adjust.
12913         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
12914
12915 2010-08-10  Richard Guenther  <rguenther@suse.de>
12916
12917         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
12918         (copy_prop_visit_assignment): Simplify.
12919         (copy_prop_visit_stmt): Also visit assignments from
12920         constants.
12921         (copy_prop_visit_phi_node): Use operand_equal_p.
12922
12923 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
12924
12925         * ipa-split.c (find_split_points): Free stack.
12926
12927 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
12928
12929         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
12930         * tree.c (tree_node_kind): Delete corresponding entries.
12931
12932 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
12933
12934         * alias.c (may_alias_p): Remove unused ret.
12935
12936 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
12937
12938         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
12939         alias_sets_conflict_p.
12940         (walk_mems_1): Moved from alias.c.
12941         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
12942         in alias.c.
12943         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
12944         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
12945         * alias.c (walk_mems_2): Moved to ddg.c.
12946         (walk_mems_1): Ditto.
12947         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
12948         to ddg.c.
12949         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
12950         disambiguation.
12951         *(may_alias_p): New function to check whether two memory expression
12952         may alias or not. Currently used in buidling inter-iteration memory
12953         dependence.
12954         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
12955         (insn_alias_sets_conflict_p): Removed
12956         *rtl.h (may_alias_p): New function prototype.
12957
12958 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
12959
12960         * tree.c (nreverse): Assert that we don't have a BLOCK.
12961
12962 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
12963
12964         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
12965         * config/arm/arm.c (arm_get_pcs_model): Likewise.
12966         * config/avr/avr.c (init_cumulative_args): Likewise.
12967         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
12968         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
12969         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
12970         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
12971         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
12972         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12973         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
12974         * dwarf2out.c (gen_subprogram_die): Likewise.
12975         * function.c (allocate_struct_function): Likewise.
12976         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
12977         (deserves_ellipsis): Delete.
12978
12979 2010-08-09  Richard Guenther  <rguenther@suse.de>
12980
12981         * tree-ssa-copy.c (cached_last_copy_of): Remove.
12982         (valueize_val): New function.
12983         (get_last_copy_of): Remove.
12984         (set_copy_of_val): Simplify.
12985         (dump_copy_of): Likewise.
12986         (copy_prop_visit_cond_stmt): Use valueize_val.
12987         (copy_prop_visit_phi_node): Properly handle unvisited names.
12988         Drop code managing copy-of chains.
12989         (init_copy_prop): Adjust.
12990         (fini_copy_prop): Likewise.
12991         (execute_copy_prop): Remove obsolete comment.
12992
12993 2010-08-09  Richard Guenther  <rguenther@suse.de>
12994
12995         PR middle-end/44632
12996         * function.c (gimplify_parameters): Do not clear addressable
12997         bit of the original parameter.
12998
12999 2010-08-09  Richard Guenther  <rguenther@suse.de>
13000
13001         PR middle-end/45212
13002         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
13003         alignment from MEM_REF offset only if we took it from the
13004         base object.
13005
13006 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
13007
13008         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
13009
13010 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13011
13012         * c-tree.h (build_arg_info): Declare.
13013         * c-decl.c (build_arg_info): Define.
13014         (get_parm_info): Call it.  Delete initialization code.
13015         * c-parser.c (c_parser_parms_declarator): Likewise.
13016         (c_parser_parms_list_declaractor): Likewise.
13017
13018 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13019
13020         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
13021         (struct c_arg_info): Change type of tags field.
13022         * c-decl.c (grokdeclarator): Update for changed type of tags field.
13023         (get_parm_info): Likewise.
13024         (store_parm_decls_newstyle): Likewise.
13025
13026 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13027
13028         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
13029         (branch_island_list): Delete.
13030         (branch_islands): Declare.
13031         (add_compiler_branch_island): Adjust for branch_islands instead of
13032         branch_island_list.
13033         (macho_branch_islands): Likewise.
13034         (no_previous_def): Likewise.
13035         (get_prev_label): Likewise.
13036
13037 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13038
13039         PR boehm-gc/34544
13040         * gthr-posix.h (__gthread_start): Delete.
13041         (__gthread_active_init): Use pthread_default_stacksize_np instead of
13042         pthread_create to determine if hpux pthreads are active.
13043         * gthr-posix95.h (__gthread_start): Delete.
13044         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
13045
13046 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
13047
13048         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
13049         _WIN64 not expanded.
13050
13051 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
13052             H.J. Lu  <hongjiu.lu@intel.com>
13053
13054         PR target/45213
13055         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
13056         to output 32bit SFmode immediate as 8 byte sign extended value.
13057
13058 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13059
13060         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13061         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13062         (SUBWORD_BOOL_CAS): Likewise.
13063         (SUBWORD_SYNC_OP): Likewise.
13064         (SUBWORD_TEST_AND_SET): Likewise.
13065         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13066         (SUBWORD_SYNC_OP): Likewise.
13067         (OP_AND_FETCH_WORD): Likewise.
13068
13069 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13070
13071         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
13072         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
13073         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
13074         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
13075         generic part.
13076         (cortex_a9_sched_adjust_cost): New function.
13077         (xscale_sched_adjust_cost): New function.
13078         * config/arm/arm-protos.h (struct tune_params): New field
13079         sched_adjust_cost.
13080         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
13081
13082 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
13083
13084         PR target/44942
13085         * config/sparc/sparc.c (function_arg_advance): Always take into account
13086         the padding, if any.
13087
13088 2010-08-06  Richard Guenther  <rguenther@suse.de>
13089
13090         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
13091         (dump_lattice_value): Dump it.
13092         (get_default_value): Adjust.
13093         (get_constant_value): Likewise.
13094         (set_value_varying): Likewise.
13095         (set_lattice_value): Make sure to not go up the lattice
13096         with bitwise constant values.
13097         (get_value_for_expr): Handle ADDR_EXPRs.
13098         (value_to_double_int): New function.
13099         (get_value_from_alignment): Likewise.
13100         (do_dbg_cnt): Adjust.
13101         (ccp_lattice_meet): Handle partially constant values.
13102         (bit_value_unop_1): New function.
13103         (bit_value_binop_1): Likewise.
13104         (bit_value_unop): Likewise.
13105         (bit_value_binop): Likewise.
13106         (evaluate_stmt): Track partially constant values if
13107         flag_tree_bit_ccp is set.
13108         (ccp_fold_stmt): Dump if we folded a predicate.
13109         (ccp_visit_stmt): Adjust.
13110         * common.opt (ftree-bit-ccp): New flag.
13111         * doc/invoke.texi (ftree-bit-ccp): Document.
13112         * opts.c (decode_options): Enable bit-CCP at -O1.
13113
13114 2010-08-06  Alan Modra  <amodra@gmail.com>
13115
13116         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
13117         and -mrelocatable-lib description.
13118
13119 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
13120
13121         From Martin Thuresson  <martint@google.com>
13122         * postreload.c (reload_cse_simplify_operands): Use
13123         SET_REGNO_RAW instead of SET_REGNO.
13124         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
13125         SET_REGNO.
13126         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
13127         instead of SET_REGNO.
13128         * rtl.h (SET_REGNO_RAW): New macro.
13129
13130 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
13131
13132         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
13133         computations.  Fix formatting issues.
13134         (num_sign_bit_copies1): Likewise.
13135         (canonicalize_condition): Likewise.
13136
13137 2010-08-05  Richard Henderson  <rth@redhat.com>
13138
13139         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
13140         (floor_log2): Use clz_hwi.
13141         (exact_log2): Use ctz_hwi.
13142         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
13143         * builtins.c (fold_builtin_bitop): Use them.
13144         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
13145         * combine.c (get_pos_from_mask): Use ctz_hwi.
13146         * double-int.c (double_int_ctz): Likewise.
13147         * explow.c (force_reg): Likewise.
13148         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
13149
13150 2010-08-05  Richard Henderson  <rth@redhat.com>
13151
13152         PR target/45189
13153         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
13154         the alignment constant is properly sign-extended.
13155
13156 2010-08-05  Richard Guenther  <rguenther@suse.de>
13157
13158         * expr.c (store_expr): Use emit_block_move only if both
13159         source and target are MEMs.  Use store_bit_field if only
13160         the target is a MEM.
13161
13162 2010-08-05  Richard Henderson  <rth@redhat.com>
13163
13164         PR debug/45188
13165         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
13166         (INCOMING_RETURN_ADDR_RTX): Likewise.
13167         (dwarf2out_do_frame): Remove conditional compilation.
13168         (dwarf2out_frame_init): Likewise.
13169
13170 2010-08-05  Nicolas Setton  <setton@adacore.com>
13171
13172         * gcov.c (flag_display_progress): New static variable.
13173         (main): Display progress info on standard output if requested.
13174         (options): Add -d/--display-progress.
13175         (print_usage): Print them.
13176         (process_args): Handle them.
13177         * doc/gcov.texi: Document them.
13178
13179 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13180
13181         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
13182         (ipcp_insert_stage): Redirect only edges not flagged with
13183         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
13184         discovered constants.
13185
13186 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13187
13188         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
13189         (struct ipa_param_descriptor): New fields types and
13190         cannot_devirtualize.
13191         (ipa_param_cannot_devirtualize_p): New function.
13192         (ipa_param_types_vec_empty): Likewise.
13193         (ipa_make_edge_direct_to_target): Declare.
13194         * ipa-cp.c: Fixed first stage driver name in initial comment,
13195         described devirtualization there too.
13196         (ipcp_analyze_node): Call ipa_analyze_params_uses.
13197         (ipcp_print_all_lattices): Print devirtualization info.
13198         (ipa_set_param_cannot_devirtualize): New function.
13199         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
13200         lattice to BOTTOM.
13201         (ipcp_init_stage): Merged into...
13202         (ipcp_generate_summary): ...its caller.
13203         (ipcp_change_tops_to_bottom): Also process type lists.
13204         (ipcp_add_param_type): New function.
13205         (ipcp_copy_types): Likewise.
13206         (ipcp_propagate_types): Likewise.
13207         (ipcp_propagate_stage): Also propagate types.
13208         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
13209         Also return true if propagated types require it.
13210         (ipcp_update_callgraph): Dump redirection info.
13211         (ipcp_process_devirtualization_opportunities): New function.
13212         (ipcp_const_param_count): Include known type information.
13213         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
13214         on new node.  Fixed formatting.
13215         * ipa-prop.c (make_edge_direct_to_target): Renamed to
13216         ipa_make_edge_direct_to_target and changed all callers.  Made
13217         externally visible.
13218         (ipa_node_duplication_hook): Duplicate types vector.
13219         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
13220         redirect outgoing calls for which we can't get a decl from the
13221         statement.  Check that we can get a decl from the call statement.
13222         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13223         ipa_analyze_params_uses only when ipa-cp is disabled.
13224         * tree-inline.c (get_indirect_callee_fndecl): Removed.
13225         (expand_call_inline): Do not call get_indirect_callee_fndecl.
13226         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
13227         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
13228
13229 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13230
13231         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
13232         temporary. Emit move from temporary to accum, so REG_EQUAL note will
13233         be attached to this insn in correct mode.
13234
13235 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13236
13237         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
13238         using REGNO of base_reg directly.
13239
13240 2010-08-05  Jie Zhang  <jie@codesourcery.com>
13241
13242         PR tree-optimization/45144
13243         * tree-sra.c (type_consists_of_records_p): Return false
13244         if the record contains bit-field.
13245
13246 2010-08-04  Richard Henderson  <rth@redhat.com>
13247
13248         * config/i386/i386.c (struct ix86_frame): Remove padding and
13249         to_allocate members.
13250         (ix86_compute_frame_layout): Don't store them.
13251         (ix86_can_use_return_insn_p): Use a more direct and more obviously
13252         correct condition for the position of the stack pointer.
13253         (ix86_expand_prologue): Compute remaining stack allocation based
13254         on the ultimate stack pointer offset.
13255         (ix86_expand_epilogue): Use more obvious expressions testing for
13256         the stack pointer already pointing to the saved registers.
13257
13258         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
13259         duplication deconstructing the frame pointer.  Simplify
13260         deallocation of the local stack frame.
13261
13262         * reg-notes.def (CFA_EXPRESSION): New.
13263         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
13264         (dwarf2out_frame_debug_cfa_expression): New.
13265         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
13266
13267         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
13268         * config/i386/i386.c (ix86_expand_prologue): Set it.
13269         (ix86_expand_epilogue): Clear it.
13270         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
13271         context, add REG_CFA_EXPRESSION notes.
13272
13273         * config/i386/i386.h (struct machine_frame_state): Rename from
13274         machine_cfa_state.  Add members tracking SP and FP regardless
13275         of the current CFA register.
13276         (ix86_cfa_state): Remove.
13277         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
13278         and sse_reg_save_offset members.
13279         (ix86_compute_frame_layout): Set them.
13280         (gen_push): Increment sp_offset too.
13281         (choose_baseaddr_len, choose_baseaddr): New.
13282         (ix86_emit_save_reg_using_mov): New.
13283         (ix86_emit_save_regs_using_mov): Use it.
13284         (ix86_emit_save_sse_regs_using_mov): Likewise.
13285         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
13286         compare vs the saved red_zone_offset.
13287         (pro_epilogue_adjust_stack): Adjust sp_offset.
13288         (ix86_adjust_stack_and_probe): Likewise.
13289         (ix86_expand_prologue): Set up, use, and validate the new
13290         frame_state_info members.  Use gen_frame_mem.
13291         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
13292         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
13293         new frame_state_info members.
13294         (ix86_emit_leave): Likewise.
13295         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
13296         out-of-range stack pointer offsets here.
13297         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13298         (ix86_expand_epilogue): Use and validate the new frame_state_info
13299         members.  Break up and simplify the logic selecting the
13300         restore_regs_via_mov code path.  Ensure that there will be no
13301         out-of-range stack pointer offsets.
13302
13303         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
13304
13305         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
13306         argument name to reflect the expected tree; fix indentation.
13307         (ix86_asm_output_function_label): Output the entire 32-bit
13308         ms_hook here as bytes ...
13309         (ix86_expand_prologue): ... not here as insns.  Attach the
13310         unwind info for the ms_hook to a blockage insn.
13311         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
13312         (ix86_ms_bitfield_layout_p): Fix indentation.
13313         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
13314
13315         * config/i386/i386.c (ix86_using_red_zone): New.
13316         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
13317         ix86_expand_prologue, ix86_force_to_memory): Use it.
13318
13319         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
13320         saving the int registers.
13321
13322         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
13323         and DWARF2_UNWIND_INFO conditional compilation.
13324
13325 2010-08-04  Richard Henderson  <rth@redhat.com>
13326
13327         PR debug/45171
13328         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
13329         an is_naming_typedef_decl.
13330
13331 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
13332
13333         PR rtl-optimization/45162
13334         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
13335         * dce.c (word_dce_process_block): Likewise.
13336
13337 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
13338
13339         PR target/44583
13340         * config/ia64/constraints.md (Z): New.
13341         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
13342         (xfreg_or_signed_fp01_operand): New.
13343         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
13344         with fr_reg_or_signed_fp01_operand and constraint G with Z.
13345         (subsf3): Ditto.
13346         (*maddsf4): Ditto.
13347         (*msubsf4): Ditto.
13348         (adddf3): Ditto.
13349         (adddf3_trunc): Ditto.
13350         (subdf3): Ditto.
13351         (*subdf3_trunc): Ditto.
13352         (*madddf4): Ditto.
13353         (*madddf4_trunc): Ditto.
13354         (*msubdf4): Ditto.
13355         (*msubdf4_trunc): Ditto.
13356         (addxf3): Replace xfreg_or_fp01_operand with
13357         xfreg_or_signed_fp01_operand and constraint G with Z.
13358         (*addxf3_truncsf): Ditto.
13359         (*addxf3_truncdf): Ditto.
13360         (subxf3): Ditto.
13361         (*subxf3_truncsf): Ditto.
13362         (*subxf3_truncdf): Ditto.
13363         (*maddxf4): Ditto.
13364         (*maddxf4_truncsf): Ditto.
13365         (*maddxf4_truncdf): Ditto.
13366         (*msubxf4): Ditto.
13367         (*msubxf4_truncsf): Ditto.
13368         (*msubxf4_truncdf): Ditto.
13369
13370 2010-08-04  Richard Guenther  <rguenther@suse.de>
13371
13372         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
13373         if either alias-set is zero.
13374
13375 2010-08-04  Richard Guenther  <rguenther@suse.de>
13376
13377         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
13378         * tree-ssa-ccp.c: ... here.
13379         * tree-ssa-copy.c: ... and here.
13380         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
13381         value_range_t): Move ...
13382         * tree-vrp.c: ... here.
13383         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
13384         (substitute_and_fold): Adjust prototype.
13385         * tree-ssa-propagate.c (replace_uses_in): Adjust.
13386         (replace_phi_args_in): Likewise.
13387         (substitute_and_fold): Take callback to query lattice instead
13388         of pointer to lattice.  Replace SSA name defs with lattice
13389         values first.
13390         * tree-ssa-ccp.c (ccp_finalize): Adjust.
13391         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
13392         (get_value): New function.
13393         (fini_copy_prop): Adjust.
13394         * tree-vrp.c (vrp_finalize): Adjust.
13395
13396 2010-08-04  Richard Guenther  <rguenther@suse.de>
13397
13398         PR middle-end/45176
13399         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
13400         points-to set for original MEM_REF.
13401
13402 2010-08-04  Richard Guenther  <rguenther@suse.de>
13403
13404         * tree-ssa-ccp.c (get_constant_value): New function.
13405         (get_rhs_assign_op_for_ccp): Remove.
13406         (valueize_op): New function.
13407         (ccp_fold): Use get_constant_value and valueize_op.
13408         (fold_const_aggregate_ref): Likewise.
13409         (ccp_fold_stmt): Likewise.
13410         (visit_assignment): Simplify.
13411
13412 2010-08-04  Richard Guenther  <rguenther@suse.de>
13413
13414         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
13415         * double-int.h (double_int_ctz): Declare.
13416         * double-int.c (double_int_ctz): New function.
13417
13418 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
13419
13420         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
13421         Define.
13422         picochip_expand_movmemhi : Expand movmem pattern.
13423         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
13424         Declare.
13425         * config/picochip/picochip.md (movmemhi) : New pattern.
13426
13427 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
13428
13429         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
13430
13431 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
13432
13433         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
13434         NEG as operand of a MULT by merging it with the other operand.
13435         * combine.c (make_compound_operation): Use trunc_int_for_mode when
13436         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
13437         MULT.
13438         * config/arm/constraints.md (M): Examine only 32 bits of a
13439         HOST_WIDE_INT.
13440         * config/arm/predicates.md (power_of_two_operand): Likewise.
13441
13442 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13443
13444         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
13445         non-NOTE insns.
13446
13447 2010-08-03  Jan Hubicka  <jh@suse.cz>
13448
13449         * ipa-split.c (struct split_point): Add split_part_set_retval.
13450         (find_retval): Forward declare.
13451         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
13452         (consider_split): Compute current->split_part_set_retval.
13453         (visit_bb): Do not look into return value.
13454         (split_function): Handle !split_part_set_retval
13455
13456 2010-08-03  Martin Jambor  <mjambor@suse.cz>
13457
13458         * tree-sra.c (completely_scalarize_record): New parameter REF, create
13459         its own access->expr intead of using build_ref_for_offset.
13460
13461 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
13462
13463         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
13464         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
13465         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
13466         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
13467         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
13468         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
13469         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
13470         DEFAULT_SWITCH_TAKES_ARG.
13471         * config/rx/rx.opt (-patch=): Remove option.
13472         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
13473         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
13474         * doc/invoke.texi (RX Options): Remove -patch=.
13475         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
13476         (option_map): Remove --profile-blocks, --quiet and --silent.
13477
13478 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
13479
13480         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
13481         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
13482         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
13483         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
13484         Update calls to ix86_expand_compare and ix86_expand_branch.
13485         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
13486         ix86_expand_compare.
13487         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
13488         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
13489         Make static.
13490         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
13491         and ix86_compare_op1.  Update calls to ix86_expand_compare.
13492         (ix86_expand_int_movcc): Ditto.
13493         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
13494         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
13495         (ix86_expand_setcc): Ditto.
13496         (ix86_expand_compare): Remove prototype.
13497         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
13498         ix86_compare_op0 and ix86_compare_op1.  Update calls
13499         to ix86_expand_branch to directly pass operands[1] and operands[2].
13500         (cbranchxf4): Ditto.
13501         (cbranch<MODEF:mode>4): Ditto.
13502         (cbranchcc4): Ditto.
13503         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
13504         Update calls to ix86_expand_setcc to directly pass operands[2] and
13505         operands[3].
13506         (cstorexf4): Ditto.
13507         (cstore<MODEF:mode>4): Ditto.
13508         (cstorecc4): Ditto.
13509
13510 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
13511
13512         PR target/45063
13513         * caller-save.c (save_call_clobbered_regs): Remove regs from
13514         hard_regs_saved when they are set.
13515
13516 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
13517
13518         PR target/41089
13519         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
13520         as volatile.
13521
13522 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
13523
13524         * common.opt (ftree-loop-distribute-patterns): New.
13525         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
13526         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
13527         at -O3.
13528         * tree-data-ref.c (stores_zero_from_loop): New.
13529         * tree-data-ref.h (stores_zero_from_loop): Declared.
13530         * tree-loop-distribution.c (tree_loop_distribution): Call
13531         stores_zero_from_loop.
13532         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
13533
13534 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
13535
13536         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
13537         into account.
13538
13539         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
13540         * config/arm/arm.c (thumb1_code): New variable.
13541         (arm_override_options): Set it.
13542         (thumb1_final_prescan_insn): Keep track of condition code status.
13543         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
13544         jumps that depend on them.
13545         * config/arm/arm.h (thumb1_code): Declare variable.
13546         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
13547         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
13548         thumb1_cc_mode.
13549         (CC_STATUS_INIT): New macro.
13550         * config/arm/constraints.md (Pd): New constraint.
13551         * config/arm/predicates.md (noov_comparison_operator): New predicate.
13552         * config/arm/arm.md (is_thumb1): New define_attr.
13553         (conds): Set default to "clob" when generating Thumb1 code.
13554         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
13555         code are set.  Use two-operand assembly syntax.
13556         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
13557         pattern.
13558         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
13559         codes are set.  Use two-operand assembly syntax.
13560         (zero_extendhisi splitter): Remove constraints.
13561         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
13562         thumb1_movsf_insn): Set conds attribute as appropriate.
13563         (cbranchsi4_insn): Use condition code status from struct
13564         machine_function to determine whether the comparison can be eliminated.
13565         Discourage the alternative using high registers.
13566         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
13567         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
13568         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
13569         subsi3_cbranch): Delete.
13570         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
13571         one subtract and one cbranch insn.
13572
13573         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
13574         thumb2_movdf_soft_insn): Delete patterns.
13575         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
13576         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
13577         (pool_range, neg_pool_range): Use them to define defaults.
13578         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
13579         and allow for TARGET_32BIT.
13580
13581         PR target/40457
13582         * config/arm/arm.h (arm_regs_in_sequence): Declare.
13583         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
13584         load_multiple_sequence, store_multiple_sequence): Delete
13585         declarations.
13586         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
13587         declarations.
13588         * config/arm/ldmstm.md: New file.
13589         * config/arm/arm.c (arm_regs_in_sequence): New array.
13590         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
13591         CHECK_REGS.  All callers changed.
13592         If SAVED_ORDER is nonnull, copy the computed order into it.
13593         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
13594         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
13595         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
13596         If SAVED_ORDER is nonnull, copy the computed order into it.
13597         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
13598         like REGS.  Handle Thumb mode.
13599         (arm_gen_load_multiple_1): New function, broken out of
13600         arm_gen_load_multiple.
13601         (arm_gen_store_multiple_1): New function, broken out of
13602         arm_gen_store_multiple.
13603         (arm_gen_multiple_op): New function, with code from
13604         arm_gen_load_multiple and arm_gen_store_multiple moved here.
13605         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
13606         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
13607         changed.
13608         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
13609         * config/arm/predicates.md (commutative_binary_operator): New.
13610         (load_multiple_operation, store_multiple_operation): Handle more
13611         variants of these patterns with different starting offsets.  Handle
13612         Thumb-1.
13613         * config/arm/arm.md: Include "ldmstm.md".
13614         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
13615         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
13616         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
13617         peepholes): Delete.
13618         * config/arm/ldmstm.md: New file.
13619         * config/arm/arm-ldmstm.ml: New file.
13620
13621         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
13622         if statement which adds extra costs to frame-related expressions.
13623
13624 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13625
13626         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
13627
13628 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
13629
13630         PR target/45142
13631         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
13632         alternative 2.
13633         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
13634         split V4SI operands.
13635
13636 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
13637
13638         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
13639         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
13640         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
13641         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
13642
13643 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
13644
13645         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
13646         LOCAL_INCLUDE_DIR.
13647
13648 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
13649
13650         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
13651         used in the call to optab_for_tree_code.  Fix the second
13652         is_widening_mult_p call.  Check that both unwidened operands
13653         have the same sign.
13654
13655 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
13656
13657         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
13658
13659 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
13660
13661         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
13662
13663 2010-07-30  DJ Delorie  <dj@redhat.com>
13664
13665         * config/rx/predicates.md (rx_constshift_operand): New.
13666         * config/rx/rx.md (zs_cond): New.
13667         (cbranchsi4): Remove mode.
13668         (*cbranchsi4_<code>): Likewise.
13669         (*tstbranchsi4_<code>): New.
13670         (*tstbranchsi4r_<code>): New.
13671         (*tstbranchsi4m_eq): New.
13672         (*tstbranchsi4m_ne): New.
13673         (cbranchsf4): Remove mode.
13674         (*cbranchsf4_<code>): Likewise.
13675
13676 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
13677
13678         * rtlanal.c (simplify_subreg_regno): Don't treat
13679         HARD_FRAME_POINTER_REGNUM specially.
13680
13681 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
13682
13683         * common.opt (-G): Don't define option here.
13684         * config/g.opt: New.
13685         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
13686         rs6000/powerpc and score targets.
13687         * opts.c (common_handle_option): Don't handle -G here.
13688         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
13689         * config/frv/frv.c (frv_handle_option): Handle -G.
13690         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
13691         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
13692         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
13693         * config/mips/mips.c (mips_handle_option): Handle -G.
13694         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
13695         * config/score/score.c (score_handle_option): Handle -G.
13696
13697 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
13698
13699         * config/mmix/mmix.c: Include basic-block.h.
13700
13701 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
13702
13703         PR debug/45055
13704         PR rtl-optimization/45137
13705         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
13706         prototypes.
13707         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
13708         New functions.
13709         * combine.c (next_nonnote_nondebug_insn): Removed.
13710         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
13711         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
13712         * sched-deps.c (sched_analyze_insn): Likewise.
13713         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
13714         * rtlanal.c (canonicalize_condition): Likewise.
13715         * postreload.c (reload_combine_recognize_pattern): Likewise.
13716         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
13717
13718 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
13719
13720         * config/i386/i386.md (int_cond): Remove code iterator.
13721         (fp_cond): Ditto.
13722         (cbranch<mode>4): Use ordered_comparison_operator predicate
13723         for operator0.
13724         (cstore<mode>4): Ditto for operator1.
13725         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
13726         (add<mode>cc): ditto.
13727
13728 2010-07-30  Richard Guenther  <rguenther@suse.de>
13729
13730         PR middle-end/45141
13731         * expr.c (expand_expr_real_1): Check for not handled base address.
13732
13733 2010-07-30  Richard Guenther  <rguenther@suse.de>
13734
13735         * ipa-prop.c (ipa_modify_formal_parameters): Use
13736         build_distinct_type_copy.
13737
13738 2010-07-30  Anthony Green  <green@moxielogic.com>
13739
13740         * config/moxie/rtems.h: New file.
13741         * config.gcc: Add moxie-rtems support.
13742
13743 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
13744
13745         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
13746         df flags as in run_fast_df_dce.
13747
13748 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
13749
13750         Revert:
13751         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
13752
13753         * rtl.def (NOTE): Swap operands 4 and 5.
13754         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
13755         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
13756         Adjust accordingly.
13757         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
13758
13759 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
13760
13761         PR debug/45110
13762         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
13763         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
13764         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
13765         formal parameters.
13766         (gen_decl_die): Change return type to dw_die_ref, return what
13767         gen_formal_parameter_die returned.
13768
13769 2010-07-29  Martin Jambor  <mjambor@suse.cz>
13770
13771         * dbgcnt.def (eipa_sra): New counter.
13772         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
13773
13774 2010-07-29  Xinliang David Li  <davidxl@google.com>
13775
13776         PR bootstrap/45119
13777         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
13778         in revision 162652.
13779
13780 2010-07-29  Richard Guenther  <rguenther@suse.de>
13781
13782         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
13783         (TV_TREE_STORE_CCP): Likewise.
13784         (TV_TREE_REDPHI): Likewise.
13785
13786 2010-07-29  Richard Guenther  <rguenther@suse.de>
13787
13788         * double-int.h (double_int_and_not): New function.
13789         * combine.c (try_combine): Use it.
13790         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
13791
13792 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
13793
13794         PR rtl-optimization/42575
13795         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
13796         Argument AU removed.  All callers changed.  Ignore artificial refs.
13797         Use return value of df_word_lr_simulate_defs to decide whether an insn
13798         is necessary.
13799         (fast_dce): Rename arg to WORD_LEVEL.
13800         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
13801         static.
13802         (pass_fast_rtl_byte_dce): Delete.
13803         * dce.h (run_word_dce): Declare.
13804         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
13805         All callers changed.  Simplify code to only deal with two-word regs.
13806         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
13807         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
13808         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
13809         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
13810         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
13811         (df_word_lr_mark_ref): Declare.
13812         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
13813         df_word_lr_simulate_uses): Declare or rename from byte variants.
13814         (df_byte_lr_simulate_artificial_refs_at_top,
13815         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
13816         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
13817         declarations.
13818         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
13819         (enum df_mm): Delete.
13820         * df-byte-scan.c: Delete file.
13821         * df-problems.c (df_word_lr_problem_data): Renamed from
13822         df_byte_lr_problem_data, all members deleted except for
13823         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
13824         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
13825         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
13826         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
13827         df_byte_lr_confluence_0): Delete functions.
13828         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
13829         callers changed.
13830         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
13831         Don't initialize members that were deleted, don't try to discover data
13832         about registers.  Ignore hard regs.
13833         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
13834         (df_word_lr_mark_ref): New function.
13835         (df_word_lr_bb_local_compute): Renamed from
13836         df_byte_bb_lr_local_compute; all callers changed.  Use
13837         df_word_lr_mark_ref.  Assert that artificial refs don't include
13838         pseudos.  Ignore hard registers.
13839         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
13840         Assert that exit block uses don't contain pseudos.
13841         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
13842         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
13843         callers changed.  Ignore hard regs.
13844         (df_word_lr_transfer_function): Renamed from
13845         df_byte_lr_transfer_function; all callers changed.
13846         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
13847         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
13848         changed.
13849         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
13850         callers changed.
13851         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
13852         confluence operator 0 set to NULL.
13853         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
13854         callers changed.
13855         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
13856         Return bool, true if bitmap changed or insn otherwise necessary.
13857         All callers changed.  Simplify using df_word_lr_mark_ref.
13858         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
13859         all callers changed.  Simplify using df_word_lr_mark_ref.
13860         * lower-subreg.c: Include "dce.h"
13861         (decompose_multiword_subregs): Call run_word_dce if df available.
13862         * Makefile.in (lower-subreg.o): Adjust dependencies.
13863         (df-byte-scan.o): Delete.
13864         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
13865
13866 2010-07-29  Richard Guenther  <rguenther@suse.de>
13867
13868         * tree.c (build_vector): Assert that the vector constant
13869         has enough elements.
13870         (build_vector_from_ctor): Pad with trailing zeros.
13871
13872 2010-07-29  Richard Guenther  <rguenther@suse.de>
13873
13874         PR tree-optimization/45120
13875         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13876         Handle offset in DEREFs properly.
13877         (get_constraint_for_1): Handle MEM_REF offset properly.
13878
13879 2010-07-29  Richard Guenther  <rguenther@suse.de>
13880
13881         PR middle-end/45034
13882         * convert.c (convert_to_integer): Always use an unsigned
13883         type for narrowed negate and bitwise not.
13884
13885 2010-07-29  Ira Rosen  <irar@il.ibm.com>
13886
13887         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
13888         to outer loop when creating reduction epilogue for double reduction,
13889         and switch back to the inner loop when updating the phi nodes.
13890         Update uses of outer loop exit phi nodes in double reduction (instead
13891         of uses of reduction).
13892
13893 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
13894
13895         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
13896         popcount on power7 and parity on power6 systems.
13897         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
13898         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
13899         instructions.
13900
13901         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
13902         (UNSPEC_PARITY): Ditto.
13903         (SFDF): New iterator for SF/DF.
13904         (rreg2): New mode attribute for floating register constraint.
13905         (TARGET_FLOAT): New mode attribute for whether single/double float
13906         is supported.
13907         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
13908         pattern.
13909         (parity<mode>2_cmpb): New insn for parity on power6 and newer
13910         machines.
13911         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
13912         pattern.  Add support for fcpsgn instruction added in power6.
13913         (copysignsf3): Delete.
13914         (copysigndf3): Delete.
13915         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
13916         instead of if_then_else in RTL to avoid problems with -0.
13917
13918         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
13919         of if_then_else to mirror scalar code.
13920         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
13921         rs6000.md.
13922
13923         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
13924         instead of if_then_else.
13925
13926 2010-07-28  Xinliang David Li  <davidxl@google.com>
13927
13928         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
13929         (dump_cand): Dump var_before/after.
13930         (htab_inv_expr_eq): New function.
13931         (htab_inv_expr_hash): New function.
13932         (tree_ssa_iv_optimize_init): Support pseudo invariants.
13933         (add_candidate_1): consider base type precision.
13934         (set_use_iv_cost): New parameter.
13935         (adjust_setup_cost): Use profile information.
13936         (get_address_cost): Do not hard code width in computing address
13937         offset limits.
13938         (compare_aff_trees): New function.
13939         (get_loop_invariant_expr_id): New function.
13940         (get_computation_cost_at): New parameter and use profile information.
13941         (get_computation_cost): New parameter.
13942         (determine_use_iv_cost_generic): Pass new parameter.
13943         (determine_use_iv_cost_address): Ditto.
13944         (determine_use_iv_cost_condition): Ditto.
13945         (autoinc_possible_for_pair): Ditto.
13946         (determine_use_iv_costs): More dumps.
13947         (iv_ca_get_num_inv_exprs): New function.
13948         (iv_ca_recount_cost): Consider loop invariants in register pressure
13949         cost.
13950         (iv_ca_add_use): New parameter.
13951         (iv_ca_dump): Better dumping.
13952         (iv_ca_extend): New parameter.
13953         (try_add_cand_for): Attempt to get better partial solution.
13954         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
13955         (create_new-ivs): More dumps.
13956         (rewrite_use_compare): Ditto.
13957         (free_loop_data): More cleanup.
13958         (treee_ssa_iv_optimize_finalize): Ditto.
13959
13960 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
13961
13962         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
13963         * config/i386/i386.c (ix86_profile_before_prologue): New.
13964         (override_options): Add special handling for -mfentry.
13965         (ix86_function_regparm): Likewise.
13966         (ix86_function_sseregparm): Likewise.
13967         (ix86_frame_pointer_required): Likewise.
13968         (ix86_expand_prologue): Check for ms_hook_prologue.
13969         (x86_function_profiler): Adjust mcount output.
13970         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
13971         * config/i386/i386.opt (mfentry): New.
13972         * doc/invoke.texi (mfentry): Add documentation.
13973         * doc/tm.texi: Regenerated..
13974         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
13975         * final.c (final_start_function): Replace macro
13976         PROFILE_BEFORE_PROLOGUE by target hook.
13977         * function.c (thread_prologue_and_epilogue_insns): Likewise.
13978         * target.def (profile_before_prologue): New hook.
13979         * targhooks.c (default_profile_before_prologue): New.
13980         * targhooks.h (default_profile_before_prologue): New.
13981
13982 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
13983
13984         PR debug/45105
13985         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
13986
13987         PR debug/45103
13988         * dwarf2out.c (dwarf2out_var_location): Always consider
13989         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
13990
13991 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
13992
13993         PR rtl-optimization/45107
13994         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
13995
13996 2010-07-28  Richard Guenther  <rguenther@suse.de>
13997
13998         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
13999         (set_lattice_value): Do not query an old default value.
14000         (get_value_for_expr): New function.  Properly canonicalize
14001         float values.
14002         (ccp_visit_phi_node): Use it.
14003
14004 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
14005
14006         * config/arm/arm.c (arm_pcs_default): Remove static.
14007         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
14008         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
14009         (arm_pcs_default): Declare.
14010
14011 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
14012
14013         * config/rs6000/rs6000.c (rs6000_override_options):
14014         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
14015         ... to darwin_rs6000_override_options.
14016         (rs6000_return_in_memory): Update preceding comment for darwin
14017         64 bit ABI.  Use TARGET_MACHO inline.
14018         (rs6000_darwin64_struct_check_p): New.
14019         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
14020         (function_arg): Likewise.
14021         (rs6000_arg_partial_bytes): Likewise.
14022         (rs6000_function_value): Likewise.
14023
14024 2010-07-28  Andi Kleen  <ak@linux.intel.com>
14025
14026         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
14027
14028 2010-07-28  Richard Guenther  <rguenther@suse.de>
14029
14030         PR middle-end/44903
14031         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
14032         targets try harder to not generate unaligned accesses.
14033
14034 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14035
14036         PR rtl-optimization/45101
14037         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
14038         for gcse-las.
14039
14040 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14041
14042         PR tree-optimization/44885
14043         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
14044         with non-aliased component.
14045
14046 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
14047
14048         * config/darwin-driver.c (SWITCH_TAKES_ARG,
14049         WORD_SWITCH_TAKES_ARG): Remove.
14050         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
14051         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
14052         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
14053         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
14054         definitions from gcc.c.
14055         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
14056         defaults.h.
14057         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
14058         Move to defaults.h.
14059         * opts-common.c: Include tm.h.
14060         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
14061         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
14062         Handle more than one argument.  Set canonical_option_num_elements.
14063         (decode_cmdline_options_to_array): Set
14064         canonical_option_num_elements and trailing elements of
14065         canonical_option.
14066         * opts.h (struct cl_decoded_option): Allow four elements in
14067         canonical_option.  Add field canonical_option_num_elements.
14068         * Makefile.in (opts-common.o): Update dependencies.
14069
14070 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14071
14072         PR middle-end/44790
14073         PR middle-end/44993
14074         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
14075         sure the base has address_mode before adding the offset.
14076
14077 2010-07-27  Xinliang David Li  <davidxl@google.com>
14078
14079         * tree-flow.h (create_mem_ref): Add one new parameter.
14080         * tree-ssa-address.c (create_mem_ref): New parameter.
14081         (addr_to_parts): Ditto.
14082         (move_variant_to_index): New function.
14083         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
14084
14085 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14086
14087         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
14088         4 and 5.
14089         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
14090         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
14091         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
14092         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
14093         CODE_LABELs and NOTEs.
14094         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
14095         * combine.c (try_combine): Likewise.
14096         * ira.c (setup_prohibited_mode_move_regs): Likewise.
14097         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
14098
14099 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14100
14101         * coretypes.h (struct cl_option_handlers): Declare.
14102         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
14103         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
14104         * langhooks-def.h (lhd_handle_option): Declare.
14105         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
14106         * langhooks.c (lhd_handle_option): New.
14107         * langhooks.h (struct lang_hooks): Update prototype and return
14108         value type of handle_option hook.
14109         * optc-gen.awk: Generate target_flags_explicit definition for the
14110         driver.
14111         * opts-common.c: Include diagnostic.h.
14112         (handle_option): Move from opts.c.  Update prototype and return
14113         value type.  Use handlers structure.
14114         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
14115         handlers structure.
14116         (set_option): Move from opts.c.
14117         * opts.c (common_handle_option): Update prototype and return value
14118         type.  Update calls to handle_option and enable_warning_as_error.
14119         (unknown_option_callback, post_handling_callback,
14120         lang_handle_option, target_handle_option): New.
14121         (handle_option, read_cmdline_option): Move to opts-common.c.
14122         (read_cmdline_options): Update prototype.  Update call to
14123         read_cmdline_option.
14124         (decode_options): Initialize and use handlers structure.
14125         (set_option): Move to opts-common.c.
14126         (enable_warning_as_error): Update prototype.  Update call to
14127         handle_option.
14128         * opts.h (struct cl_option_handler_func, struct
14129         cl_option_handlers): New.
14130         (handle_option, enable_warning_as_error): Update prototypes.
14131         (read_cmdline_option): Declare.
14132         * Makefile.in (opts-common.o): Update dependencies.
14133
14134 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14135
14136         * config/arm/arm.c (params.h): Include.
14137         (arm_override_options): Tune gcse-unrestricted-cost.
14138         * config/arm/t-arm (arm.o): Define dependencies.
14139
14140 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14141
14142         PR target/42495
14143         PR middle-end/42574
14144         * basic-block.h (get_dominated_to_depth): Declare.
14145         * dominance.c (get_dominated_to_depth): New function, use
14146         get_all_dominated_blocks as a base.
14147         (get_all_dominated_blocks): Use get_dominated_to_depth.
14148
14149         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
14150         (hoist_exprs): Remove.
14151         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
14152         (compute_code_hoist_vbeinout): Add debug print outs.
14153         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
14154
14155         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
14156         quadratic behavior.
14157         * params.h (MAX_HOIST_DEPTH): New macro.
14158         * doc/invoke.texi (max-hoist-depth): Document.
14159
14160 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14161
14162         PR rtl-optimization/40956
14163         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
14164         constants.
14165
14166 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14167
14168         PR target/42495
14169         PR middle-end/42574
14170         * config/arm/arm.c (legitimize_pic_address): Use
14171         gen_calculate_pic_address pattern to emit calculation of PIC address.
14172         (will_be_in_index_register): New function.
14173         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
14174         (thumb1_legitimate_address_p): Use it provided !strict_p.
14175         * config/arm/arm.md (calculate_pic_address): New expand and split.
14176
14177 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14178
14179         PR target/42495
14180         PR middle-end/42574
14181         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
14182         * config/arm/arm.md (define_split "J", define_split "K"): Make
14183         IRA/reload friendly.
14184
14185 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14186
14187         * gcse.c (insert_insn_end_basic_block): Update signature, remove
14188         unused checks.
14189         (pre_edge_insert, hoist_code): Update.
14190
14191 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14192
14193         PR target/42495
14194         PR middle-end/42574
14195         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
14196
14197 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14198
14199         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
14200
14201 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14202
14203         PR rtl-optimization/40956
14204         PR target/42495
14205         PR middle-end/42574
14206         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
14207         for hoisting.
14208         (hoist_code): Count occurences in current block too.
14209
14210 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14211
14212         * gcse.c (struct expr:max_distance): New field.
14213         (doing_code_hoisting_p): New static variable.
14214         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
14215         simple expressions, don't change behavior for PRE.  Set max_distance.
14216         (insert_expr_in_table): Set new max_distance field.
14217         (hash_scan_set): Update.
14218         (hoist_expr_reaches_here_p): Stop search after max_distance
14219         instructions.
14220         (find_occr_in_bb): New static function.  Use it in ...
14221         (hoist_code): Calculate sizes of basic block before any changes are
14222         done.  Pass max_distance to hoist_expr_reaches_here_p.
14223         (one_code_hoisting_pass): Set doing_code_hoisting_p.
14224
14225         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
14226         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
14227         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
14228         macros.
14229         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
14230         Document.
14231
14232 2010-07-27  Jeff Law  <law@redhat.com>
14233             Maxim Kuvyrkov  <maxim@codesourcery.com>
14234
14235         * gcse.c (compute_transpout, transpout): Remove, move logic
14236         to prune_expressions.
14237         (compute_pre_data): Move pruning of trapping expressions ...
14238         (prune_expressions): ... here.  New static function.
14239         (compute_code_hoist_data): Use it.
14240         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
14241
14242 2010-07-27  Xinliang David Li  <davidxl@google.com>
14243
14244         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
14245         (rewrite_use_address): Adjust iv update position when needed.
14246
14247 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14248
14249         * dbgcnt.def (hoist_insn): New debug counter.
14250         * gcse.c (hoist_code): Use it.
14251
14252 2010-07-27  Xinliang David Li  <davidxl@google.com>
14253
14254         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
14255         (niter_for_single_dom_exit): Passes additional parameter.
14256         (iv_period): Fix comments.
14257         (may_eliminate_iv): Handles multiple exit loops properly.
14258         (free_tree_niter_desc): New function.
14259         (free_loop_data): Frees up loop iteration descriptors.
14260
14261 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14262
14263         PR target/44542
14264         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
14265         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
14266         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
14267         (expand_one_var): Don't consider DECL_ALIGN for variables for
14268         which expand_one_stack_var_at has been already called.
14269
14270         PR testsuite/44701
14271         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
14272         constraints on IA-64.
14273
14274 2010-07-27  Jie Zhang  <jie@codesourcery.com>
14275
14276         PR target/44290
14277         Revert:
14278         2010-07-23  Jie Zhang  <jie@codesourcery.com>
14279
14280         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
14281         false if ! tree_versionable_function_p.
14282
14283 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14284
14285         * dwarf2out.c (add_data_member_location_attribute): Use
14286         add_AT_unsigned instead of add_AT_int if offset is non-negative.
14287
14288 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14289
14290         * postreload.c (try_replace_in_use): New static function.
14291         (reload_combine_recognize_const_pattern): Use it here.  Allow
14292         substituting into a final add insn, and substituting into a memory
14293         reference in an insn that sets the reg.
14294
14295 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14296
14297         * common.opt (o): Add MissingArgError.
14298         * doc/options.texi (MissingArgError): Document.
14299         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
14300         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
14301         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
14302         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
14303         * langhooks.h (struct lang_hooks): Remove missing_argument.
14304         * optc-gen.awk: Handle MissingArgError and output new structure
14305         field initializers.
14306         * opts.c (read_cmdline_option): Use missing_argument_error field
14307         instead of missing_argument langhook.
14308         * opts.h (struct cl_option): Add missing_argument_error field.
14309         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
14310
14311 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
14312
14313         PR target/29090
14314         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
14315         Darwin64 ABI, for zero-sized objects.
14316
14317 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
14318
14319         PR target/35491
14320         PR target/29090
14321
14322         Merge from Apple local 4.2.1.
14323         2005-05-11  Stan Shebs  <shebs@apple.com>
14324         Fix 64-bit varargs for Darwin (Radar 4028089).
14325         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
14326         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
14327         Add argument, add case for 8-byte register half-filled with a float.
14328         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
14329         single-precision floats specially.
14330
14331 2010-07-27  Ira Rosen  <irar@il.ibm.com>
14332
14333         PR tree-optimization/44152
14334         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
14335         complex numbers for further check.
14336         (vect_supported_load_permutation_p): Check nodes with
14337         complex numbers.
14338
14339 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14340
14341         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
14342         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
14343         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
14344         (LANG_HOOKS_INITIALIZER): Add new hooks.
14345         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
14346         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
14347         and complain_wrong_lang_p.  Update init_options prototype.
14348         * c-objc-common.c (c_initialize_diagnostics): First call
14349         c_common_initialize_diagnostics.
14350         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
14351         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
14352         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
14353         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
14354         (hook_uint_void_0): New.
14355         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
14356         (hook_uint_void_0): New.
14357         * opts-common.c (decode_cmdline_option,
14358         decode_cmdline_options_to_array): Also fill in canonical_option field.
14359         * opts.c (complain_wrong_lang): Use langhook to determine whether
14360         to complain instead of special-casing LTO.
14361         (decode_options): Separate lang_mask determination with
14362         option_lang_mask hook from call of init_options hook.
14363         * opts.h (struct cl_decoded_option): Add canonical_option.
14364
14365 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14366
14367         PR tree-optimization/45083
14368         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
14369
14370 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14371
14372         * postreload.c (reload_combine_recognize_const_pattern): Move test
14373         for limiting the insn movement to the right scope.
14374
14375         PR rtl-optimization/45051
14376         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
14377         than reg_mentioned_p.
14378
14379 2010-07-26  Richard Henderson  <rth@redhat.com>
14380
14381         PR target/44132
14382         * tree-emutls.c: New file.
14383         * Makefile.in (OBJS-common): Add it.
14384         * tree-pass.h (pass_ipa_lower_emutls): Declare.
14385         * passes.c (init_optimization_passes): Add it.
14386
14387         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
14388         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
14389         * expr.c (emutls_var_address): Delete.
14390         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
14391         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
14392         (emutls_finish): Delete.
14393         * toplev.c (compile_file): Don't call it.
14394         * tree.h (emutls_decl): Delete.
14395         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
14396         (emutls_finish, emutls_finalize_control_var): Delete.
14397         (emutls_object_type): Move to tree-emutls.c.
14398         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
14399         default_emutls_var_fields, get_emutls_object_type,
14400         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
14401         default_emutls_var_init): Likewise.
14402         (get_variable_section): Don't special case emutls.
14403         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
14404         default_elf_select_section, default_unique_section,
14405         default_encode_section_info): Likewise.
14406         * varpool.c (decide_is_variable_needed): Likewise.
14407         * gimple-iterator.c (update_call_edge_frequencies): New
14408         (gsi_insert_on_edge_immediate): Use it.
14409         (gsi_insert_seq_on_edge_immediate): Likewise.
14410         (gsi_commit_one_edge_insert): Likewise.
14411
14412         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
14413         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
14414         (x86_64_elf_unique_section): Likewise.
14415
14416 2010-07-26  Jan Hubicka  <jh@suse.cz>
14417
14418         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
14419         GTY((skip)).
14420
14421 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
14422
14423         * target.def (output_source_filename): New hook.
14424         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
14425         * doc/tm.texi: Regenerate.
14426         * toplev.c (output_file_directive) Remove function.
14427         * toplev.h (output_file_directive) Remove.
14428         * output.h (default_asm_output_source_filename,
14429         output_file_directive): Declare.
14430         * varasm.h (default_asm_output_source_filename,
14431         output_file_directive): New functions.
14432
14433         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14434         * config/mips/mips-protos.h (mips_output_filename): Remove.
14435         * config/mips/mips.c (mips_output_filename): Make Static.
14436         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
14437
14438 2010-07-26  Richard Guenther  <rguenther@suse.de>
14439
14440         PR tree-optimization/43784
14441         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
14442         if the destination is used by the call.
14443
14444 2010-07-26  Richard Guenther  <rguenther@suse.de>
14445
14446         PR middle-end/45073
14447         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
14448         SSA updating on being in SSA form.
14449
14450 2010-07-26  Richard Guenther  <rguenther@suse.de>
14451
14452         PR middle-end/45056
14453         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
14454
14455 2010-07-26  Richard Guenther  <rguenther@suse.de>
14456
14457         PR tree-optimization/45071
14458         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
14459         adjust op->opcode.
14460
14461 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
14462
14463         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
14464         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
14465         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
14466         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
14467         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
14468         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
14469         save_r31, return_r31, save_interrupt, return_interrupt,
14470         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
14471         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
14472         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
14473         new ABI requirements.
14474         (save_r6_r9, L_callt_save_r6_r9): Remove.
14475         * config/v850/predicates.md (even_reg_operand, disp23_operand,
14476         const_float_1_operand const_float_0_operand): New Predicates.
14477         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
14478         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
14479         * config/v850/t-v850: Update multilibs for new target variants.
14480         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
14481         * config/v850/t-v850e: Likewise.
14482         * config/v850/v850.c (v850_issue_rate): New.
14483         (v850_strict_argument_naming): New.
14484         (function_arg): Modify to generate a different ABI.
14485         (print_operand): Update case 'z' to support float modes.
14486         (output_move_single): Modify to generate appropriate and better
14487         assembly.
14488         (v850_float_z_comparison_operator, v850_select_cc_mode,
14489         v850_float_nz_comparison_operator,  v850_gen_float_compare,
14490         v850_gen_compare): New functions to support comparison of float values.
14491         (ep_memory_offset): Add support for V850E2 targets.
14492         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
14493         (INTERRUPT_REGPARM_NUM): Remove.
14494         (compute_register_save_size): Add extra case to save/restore long call.
14495         (use_prolog_function): New function to support prologue.
14496         (expand_prologue): Add support for V850E2 targets and modified
14497         as per the current ABI requirements.
14498         (expand_epilogue): Likewise.
14499         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
14500         (construct_save_jarl): Likewise.
14501         (construct_dispose_instruction): Update as per the current ABI
14502         requirements.
14503         (construct_prepare_instruction): Likewise.
14504         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
14505         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
14506         (CPP_SPEC): Updated to support v850e2 targets.
14507         (STRICT_ALIGNMENT): Modified.
14508         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
14509         (FIXED_REGISTERS): Likewise.
14510         (CALL_USED_REGISTERS): Likewise.
14511         (CONDITIONAL_REGISTER_USAGE): Updated.
14512         (HARD_REGNO_MODE_OK): Updated.
14513         (reg_class): Updated to add even registers.
14514         (REG_CLASS_NAMES): Likewise.
14515         (REG_CLASS_CONTENTS): Likewise.
14516         (REGNO_REG_CLASS): Updated for CC registers.
14517         (REG_CLASS_FROM_LETTER): Added support for even registers.
14518         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
14519         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
14520         ARG_POINTER_REGNUM): Updated.
14521         (FUNCTION_ARG_ADVANCE): Define.
14522         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
14523         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
14524         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
14525         (GO_IF_LEGITIMATE_ADDRESS): Updated.
14526         (SELECT_CC_MODE): Define.
14527         (REGISTER_NAMES): Updated to add psw and fcc registers.
14528         (ADDITIONAL_REGISTER_NAMES): Updated.
14529         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
14530         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
14531         * config/v850/v850.md (define_constants): Define new constants.
14532         (type): Update store,bit1,macc,div,fpu and single attributes.
14533         (cpu): New attribute.
14534         (cc): Add set_z attribute.
14535         (unsign23byte_load, sign23byte_load, unsign23hword_load,
14536         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
14537         23word_store): New instructions for 23-bit displacement load and store.
14538         (movqi_internal, movhi_internal): Update the attributes.
14539         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
14540         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
14541         the attributes.
14542         (v850_tst1): Modified using CC_REGNUM.
14543         (tstsi): Remove.
14544         (cmpsi): Modified as define_expand from define_insn.
14545         (cmpsi_insn, cmpsf, cmpdf): New instructions.
14546         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
14547         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
14548         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
14549         one_cmplsi2): Clobber the CC_REGNUM register.
14550         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
14551         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
14552         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
14553         (setf_insn, set_z_insn, set_nz_insn): New instructions for
14554         v850e2v3 target.
14555         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
14556         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
14557         targets.
14558         (sasf_1, sasf_2): Remove.
14559         (sasf): New instruction.
14560         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
14561         targets. CC_REGNUM register is clobbered and attributes are
14562         updated.
14563         (branch_z_normal, branch_z_invert, branch_nz_normal,
14564         branch_nz_invert): New branch related instructions.
14565         (jump): Updated the attributes.
14566         (switch): Update to support new targets. CC_REGNUM register is
14567         clobbered and attributes are updated.
14568         (call_internal_short, call_internal_long, call_value_internal_short,
14569         call_value_internal_long): Updated the attributes.
14570         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
14571         clobbered and attributes are updated.
14572         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
14573         Update to support new targets. CC_REGNUM register is clobbered.
14574         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
14575         instructions.
14576         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
14577         are updated.
14578         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
14579         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
14580         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
14581         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
14582         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
14583         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
14584         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
14585         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
14586         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
14587         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
14588         point instructions defined for V850e2v3 target.
14589         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
14590         Add support for V850E2 targets and CC_REGNUM register is clobbered.
14591         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
14592         support for new targets.
14593         * config/v850/v850-modes.def: New file.
14594         * config/v850/v850.opt(mstrict-align): Remove.
14595         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
14596         mv850e2v3): New command line options for V850.
14597         * config.gcc: Update the newly added files.
14598         * doc/invoke.texi: Update the newly added command line options for
14599         V850 target.
14600
14601 2010-07-26  Richard Guenther  <rguenther@suse.de>
14602
14603         PR tree-optimization/45052
14604         * ipa-pure-const.c (check_stmt): Check volatileness.
14605
14606 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
14607
14608         PR target/44707
14609         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
14610         * config/sparc/sparc.c: Include reload.h.
14611         (legitimize_tls_address): Rename into...
14612         (sparc_legitimize_tls_address): ...this.
14613         (legitimize_pic_address): Rename into...
14614         (sparc_legitimize_pic_address): ...this.
14615         (sparc_expand_move): Adjust to above renaming.
14616         (sparc_tls_referenced_p): Likewise.
14617         (sparc_legitimize_tls_address): Likewise.
14618         (sparc_legitimize_pic_address): Likewise.
14619         (sparc_legitimize_address): Likewise.
14620         (sparc_output_mi_thunk): Likewise.
14621         (sparc_legitimize_reload_address): New global function.  Recognize
14622         (lo_sum (high ...) ...) patterns generated by earlier passes.
14623         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
14624
14625 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
14626
14627         PR target/44484
14628         * config/sparc/predicates.md (memory_reg_operand): Delete.
14629         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
14630         (*sync_compare_and_swap): Encode the address form in the pattern.
14631         (*sync_compare_and_swapdi_v8plus): Likewise.
14632
14633 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
14634
14635         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
14636         Streamline paragraph on compatibility with the system compiler.
14637
14638 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
14639
14640         PR middle-end/45035
14641         * alias.c (true_dependence_1): Fix thinko in merge of old
14642         true_dependence and canon_true_dependence.
14643
14644 2010-07-23  Jan Hubicka  <jh@suse.cz>
14645
14646         * lto-streamer-out.c (write_symbol): Fix visibilities of external
14647         references.
14648
14649 2010-07-23  Le-Chun Wu  <lcwu@google.com>
14650
14651         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
14652         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
14653         and an unnecessary assignment.
14654         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
14655         self-assign warning.
14656         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
14657         unnecessary self-init.
14658
14659 2010-07-23  Richard Guenther  <rguenther@suse.de>
14660
14661         PR lto/43071
14662         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
14663         for -flto and -fwhopr.
14664
14665 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
14666
14667         PR target/41943
14668         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
14669         (stmp-int-hdrs): Prefix/postfix headers by include_next.
14670         * config.gcc (user_headers_inc_next_pre): New.
14671         (user_headers_inc_next_post): Likewise.
14672         (*-w64-mingw*): Use for float.h post-fixing, and for
14673         stddef.h/stdarg.h pre-fixing by include_next.
14674         * configure.ac (user_headers_inc_next_post): New.
14675         (user_headers_inc_next_pre): New.
14676         * configure: Regenerated.
14677
14678 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14679
14680         * configure.ac: Don't disable TLS on Solaris 8/9 by default
14681         Set tga_func for Solaris 2/x86 resp. SPARC.
14682         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
14683         (LIB_THREAD_LDFLAGS_SPEC): Define.
14684         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
14685         * configure: Regenerate.
14686         * config.in: Regenerate.
14687         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
14688         -pthread, -threads, LIB_TLS_SPEC with -pthread.
14689         * doc/install.texi (Specific, *-*-solaris2*): Document use of
14690         alternate thread libraries on Solaris 8.
14691         Document TLS patch requirements.
14692         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
14693         Document tls.
14694
14695         PR target/18788
14696         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
14697         -shared.
14698
14699 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
14700
14701         * tree.h (struct tree_base): Add nameless_flag bitfield.
14702         (TYPE_NAMELESS, DECL_NAMELESS): Define.
14703         * omp-low.c (create_omp_child_function, scan_omp_parallel,
14704         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
14705         DECL_ARTIFICIAL where needed.
14706         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
14707         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
14708         has DECL_NAMELESS set.
14709
14710 2010-07-23  Martin Jambor  <mjambor@suse.cz>
14711
14712         PR tree-optimization/44915
14713         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
14714         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
14715         (analyze_function): Likewise.
14716
14717 2010-07-23  Martin Jambor  <mjambor@suse.cz>
14718
14719         PR tree-optimization/44914
14720         * tree-sra.c (sra_modify_function_body): Return true if CFG was
14721         changed, add purging dead eh edges.
14722         (ipa_sra_modify_function_body): Return true if CFG was changed,
14723         simplify purging dead eh edges.
14724         (modify_function): Return true if CFG was changed.
14725         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
14726         was changed.
14727         (ipa_early_sra): Likewise.
14728
14729 2010-07-23  Jie Zhang  <jie@codesourcery.com>
14730
14731         PR target/44290
14732         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
14733         if "naked".
14734         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
14735         false if ! tree_versionable_function_p.
14736
14737 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
14738
14739         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
14740         * ipa-pure-const.c (special_builtlin_state): Remove
14741         BUILT_IN_ARGS_INFO case.
14742         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
14743         * builtins.c (expand_builtin): Likewise.
14744         (expand_builtin_args_info): Remove.
14745         * doc/tm.texi (__builtin_args_info): Remove.
14746         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
14747         * doc/tm.text.in: Likewise.
14748
14749 2010-07-23  Richard Guenther  <rguenther@suse.de>
14750
14751         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
14752         (lto_symtab_merge_decls_2): Likewise.
14753         * tree-ssa.c (useless_type_conversion_p): Likewise.
14754         * lto-streamer-in.c (input_gimple_stmt): Likewise.
14755         * gimple.c (gtc_visited2, gtc_ob2): Remove.
14756         (struct type_pair_d): Make same_p an array indexed by mode.
14757         Update comment.
14758         (lookup_type_pair): Update initialization.
14759         (struct sccs): Adjust same_p type.
14760         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
14761         Adjust.
14762         (print_gimple_types_stats): Likewise.
14763         * gimple.h (enum gtc_mode): New.
14764         (gimple_types_compatible_p): Adjust prototype.
14765
14766 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
14767
14768         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
14769         again after processing insn.
14770
14771 2010-07-23  Jie Zhang  <jie@codesourcery.com>
14772
14773         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
14774         proper words when !tree_versionable_function_p.
14775
14776 2010-07-23  Richard Guenther  <rguenther@suse.de>
14777
14778         PR tree-optimization/45037
14779         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
14780
14781 2010-07-23  Jie Zhang  <jie@codesourcery.com>
14782
14783         * doc/extend.texi: Remove IP2K from the description of naked attribute.
14784         Add MCORE instead.
14785
14786 2010-07-10  Andi Kleen  <ak@linux.intel.com>
14787
14788         PR lto/44992
14789         * lto-opts.c (lto_write_options): Add NULL file_data argument to
14790         lto_get_section_name.
14791         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
14792         * lto-streamer-out.c (produce_asm): Likewise.
14793         (copy_function): Likewise.
14794         (produce_symtab): Likewise.
14795         (produce_asm_for_decls): Likewise.
14796         * lto-streamer.c (lto_get_section_name): Add file_data argument.
14797         Rewrite to add random postfix to LTO sections.
14798         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
14799         (lto_get_section_name): Add file_data argument to prototype.
14800
14801 2010-07-10  Andi Kleen  <ak@linux.intel.com>
14802
14803         * lto-section-in.c (lto_section_name): Synchronize names
14804         with lto_get_section_name.
14805
14806 2010-07-10  Andi Kleen  <ak@linux.intel.com>
14807
14808         * lto-opts.c (lto_read_file_options): Check for missing section.
14809
14810 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
14811
14812         * ira.c (check_allocation): Correctly handle the case where an allocno
14813         with two objects was allocated to a single reg.
14814
14815 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
14816
14817         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
14818         (is_widening_mult_p): Likewise.
14819         (convert_to_widen): Use them.
14820         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
14821         well as integer ones.
14822
14823 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
14824
14825         * alias.c (true_dependence_1): New function, merged version of
14826         true_dependence and canon_true_dependence.
14827         (true_dependence): Simplify.
14828         (canon_true_dependence): Simplify.
14829
14830 2010-07-22  Richard Henderson  <rth@redhat.com>
14831
14832         PR target/45027
14833         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
14834         of V4SFmode for the SSE saves; increase stack alignment if needed.
14835         (ix86_gimplify_va_arg): Don't increase stack alignment here.
14836
14837 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
14838
14839         PR bootstrap/45028
14840         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
14841         call cprop_find_used_regs again via note_uses.
14842
14843 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
14844
14845         * alias.c (get_alias_set): Fix formatting issues.
14846
14847 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
14848
14849         PR middle-end/44878
14850         * stmt.c (expand_value_return):  Call promote_function_mode with
14851         a for_return argument of 2 when returning by reference.
14852
14853 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
14854
14855         PR debug/45024
14856         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
14857         unit DIE if we can find the scope DIE.
14858
14859 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
14860
14861         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
14862         changed.  Initialize OBJECT_SUBWORD.
14863         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
14864         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
14865         all callers changed.
14866         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
14867         (finish_allocno): Likewise.
14868         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
14869         (remove_low_level_allocnos): Likewise.
14870         (update_bad_spill_attribute): Likewise.
14871         (setup_min_max_allocno_live_range_point): Likewise.
14872         (sort_conflict_id_map): Likewise.
14873         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
14874         (ior_hard_reg_conflicts): New function.
14875         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
14876         (compress_conflict_vecs): Iterate over objects, not allocnos.
14877         (ira_add_live_range_to_object): New function.
14878         (object_range_compare_func): Renamed from allocno_range_compare_func.
14879         All callers changed.
14880         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
14881         subobjects, widen the min/max range of the lowest-order object to
14882         potentially include all other such low-order objects.
14883         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
14884         (check_allocation): Likewise.  Use more fine-grained tests for register
14885         conflicts.
14886         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
14887         allocno subobjects.
14888         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
14889         choices about which bits to set in each set.  Don't use
14890         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
14891         using the multiple sets we computed.
14892         (push_allocno_to_stack): Iterate over allocno subobjects.
14893         (all_conflicting_hard_regs_coalesced): New static function.
14894         (setup_allocno_available_regs_num): Use it.
14895         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
14896         subobjects.
14897         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
14898         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
14899         by ALLOCNO_NUM_OBJECTS.
14900         (calculate_spill_cost): Likewise.
14901         (color_pass): Express if statement in a more normal way.
14902         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
14903         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
14904         (setup_slot_coalesced_allocno_live_ranges): Likewise.
14905         (allocno_reload_assign): Likewise.
14906         (ira_reassign_pseudos): Likewise.
14907         (fast_allocation): Likewise.
14908         * ira-conflicts.c (build_conflict_bit_table): Likewise.
14909         (print_allocno_conflicts): Likewise.
14910         (ira_build_conflicts): Likewise.
14911         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
14912         callers changed.  Test subword 0 of each allocno for conflicts.
14913         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
14914         callers changed.  Iterate over allocno subobjects.
14915         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
14916         * ira-int.h (struct ira_allocno): New member: num_objects.
14917         Rename object to objects and change it into an array.
14918         (ALLOCNO_OBJECT): Add new argument N.
14919         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
14920         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
14921         (ior_hard_reg_conflicts): Declare.
14922         (ira_add_live_range_to_object): Declare.
14923         (ira_allocno_object_iterator): New.
14924         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
14925         (FOR_EACH_ALLOCNO_OBJECT): New macro.
14926         * ira-lives.c (objects_live): Renamed from allocnos_live; all
14927         uses changed.
14928         (allocnos_processed): New sparseset.
14929         (make_object_born): Renamed from make_allocno_born; take an
14930         ira_object_t argument.  All callers changed.
14931         (make_object_dead): Renamed from make_allocno_dead; take an
14932         ira_object_t argument.  All callers changed.
14933         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
14934         All callers changed.
14935         (mark_pseudo_regno_live): Iterate over allocno subobjects.
14936         (mark_pseudo_regno_dead): Likewise.
14937         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
14938         functions.
14939         (mark_ref_live): Detect subword accesses and call
14940         mark_pseudo_regno_subword_live as appropriate.
14941         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
14942         (process_bb_nodes_live): Deal with object-related updates first; set
14943         and test bits in allocnos_processed to avoid computing allocno
14944         statistics more than once.
14945         (create_start_finish_chains): Iterate over objects, not allocnos.
14946         (print_object_live_ranges): New function.
14947         (print_allocno_live_ranges): Use it.
14948         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
14949         and objects_live.
14950
14951 2010-07-22  Richard Guenther  <rguenther@suse.de>
14952
14953         PR lto/42451
14954         * gimple.c (gtc_next_dfs_num): New global.
14955         (struct sccs): Make value a union, add integer same_p member.
14956         (gtc_visit): New function.
14957         (gimple_types_compatible_p_1): New function, split out from ...
14958         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
14959         (iterative_hash_gimple_type): Adjust for sccs change.
14960
14961 2010-07-22  Martin Jambor  <mjambor@suse.cz>
14962
14963         PR tree-optimization/44891
14964         * tree-sra.c: Include gimple-pretty-print.h.
14965         (replace_uses_with_default_def_ssa_name): Renamed to
14966         get_repl_default_def_ssa_name, return the new SSA name instead of
14967         replacing the old one.
14968         (sra_modify_assign): Dump a message when removing a load, if the LHS
14969         is an SSA_NAME, do not do any propagation, just set the RHS to a
14970         default definition SSA NAME, type convert if necessary.
14971         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
14972
14973 2010-07-22  Richard Guenther  <rguenther@suse.de>
14974
14975         PR tree-optimization/45017
14976         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
14977         TYPE_PRECISION of integral types in addition to size.
14978
14979 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
14980
14981         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
14982         when no C library is specified.
14983
14984 2010-07-22  Martin Jambor  <mjambor@suse.cz>
14985
14986         * ipa-prop.h (struct ipa_node_params): Updated comment.
14987         (struct ipa_edge_args): Likewise.
14988         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
14989
14990 2010-07-22  Martin Jambor  <mjambor@suse.cz>
14991
14992         * cgraphunit.c (verify_edge_count_and_frequency): New function.
14993         (verify_cgraph_node): Verify frequencies of indirect edges.
14994         * tree-inline.c (tree_function_versioning): Update frequencies of
14995         indirect edges.
14996
14997 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14998
14999         PR target/43698
15000         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
15001         Set *arm_rev to be predicable.
15002
15003 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15004
15005         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
15006         (LINK_COMMAND_SPEC_A): New.
15007         (DSYMUTIL): New.
15008         (DSYMUTIL_SPEC): New.
15009         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
15010         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
15011
15012 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15013
15014         * calls.c (load_register_parameters): Move check for zero
15015         sized items so that only the call to
15016         mem_overlaps_already_clobbered_arg_p () is protected.
15017
15018 2010-07-22  Jan Hubicka  <jh@suse.cz>
15019
15020         * ipa-pure-const.c (varying_state): Break out from ...
15021         (get_function_state): ... here; always return varying_state
15022         when state would be NULL otherwise.
15023         (remove_node_data): Do not free varying state.
15024
15025 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15026
15027         PR bootstrap/44970
15028         PR middle-end/45009
15029         * postreload.c: Include "target.h".
15030         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
15031         into account.
15032         (fixup_debug_insns): Don't copy the rtx.
15033         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
15034         Don't copy when replacing.  Call fixup_debug_insns in the case where
15035         we merged one add with another.
15036         (reload_combine_recognize_pattern): Fail if there aren't any uses.
15037         Try harder to determine whether we're picking a valid index register.
15038         Don't set store_ruid for an insn we're going to scan in the
15039         next iteration.
15040         (reload_combine): Remove unused code.
15041         (reload_combine_note_use): When updating use information for
15042         an old insn, ignore a use that occurs after store_ruid.
15043         * Makefile.in (postreload.o): Update dependencies.
15044
15045         * function.c (record_hard_reg_sets): Restrict the previous change
15046         to cases where the incoming nominal mode is the same as the
15047         incoming promoted mode and everything happens in MODE_INT.
15048
15049 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15050
15051         PR debug/45015
15052         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
15053         ASM_OPERANDS_OUTPUT_IDX.
15054         (adjust_insn): For inline asm with multiple sets ensure first
15055         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
15056         the insn.
15057
15058 2010-07-21  Richard Henderson  <rth@redhat.com>
15059
15060         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
15061         comparison for avoiding xmm register saves.  Emit the xmm register
15062         saves explicitly.
15063         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
15064         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
15065         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
15066         Remove patterns and the associated splitters.
15067
15068 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
15069
15070         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
15071         and imagine parts of a complex, so that they can have the same
15072         base and fall into the same group.
15073
15074 2010-07-21  Richard Guenther  <rguenther@suse.de>
15075
15076         PR lto/45018
15077         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
15078         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
15079         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
15080
15081 2010-07-21  Martin Jambor  <mjambor@suse.cz>
15082
15083         PR tree-optimization/44900
15084         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
15085         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
15086
15087 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
15088
15089         PR middle-end/44738
15090         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
15091
15092 2010-07-21  Richard Guenther  <rguenther@suse.de>
15093
15094         PR middle-end/45013
15095         * tree-ssa.c (useless_type_conversion_p): Dispatch to
15096         gimple_types_compatible_p only when in lto.
15097         * gimple.c (gimple_types_compatible_p): Use canonical types
15098         to speed up comparison.
15099
15100 2010-07-21  Richard Guenther  <rguenther@suse.de>
15101
15102         * tree-flow.h (referenced_var): Move define ...
15103         * tree-flow-inline.h (referenced_var): ... here as an inline
15104         function.  Assert here ...
15105         * tree-dfa.c (referenced_var_lookup): ... instead of here.
15106         * tree-ssa.c (maybe_optimize_var): Check if the variable
15107         is in referenced vars.
15108         (execute_update_addresses_taken): Remove old broken check.
15109         * gimple-pretty-print.c (pp_points_to_solution): Use
15110         referenced_var_lookup.
15111         * tree-into-ssa.c (dump_decl_set): Likewise.
15112
15113 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15114
15115         PR debug/45003
15116         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
15117         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
15118         ZERO_EXTEND here.
15119
15120 2010-07-20  Richard Henderson  <rth@redhat.com>
15121
15122         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
15123
15124 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15125
15126         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
15127         computing the sum of the stack pointer and a large constant.
15128         * config/arm/constraints.md (M): Remove superfluous parentheses.
15129         (Pc): New constraint.
15130
15131 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15132
15133         PR debug/45006
15134         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
15135         operand's type if exp is tcc_unary class tree.
15136
15137 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15138
15139         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
15140         Reverse sense of if_then_else condition.
15141
15142 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15143
15144         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
15145         * config/rs6000/rs6000.c (rs6000_override_options): Set
15146         rs6000_block_move_inline_limit appropriately.
15147         (expand_block_move): Use rs6000_block_move_inline_limit.
15148         * doc/invoke.texi (mblock-move-inline-limit): Document.
15149
15150 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15151
15152         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
15153         FROM and TO.  All callers changed.  Don't look for tracked uses,
15154         just scan the RTL for DEBUG_INSNs and substitute.
15155         (reload_combine_recognize_pattern): Call fixup_debug_insns.
15156         (reload_combine): Ignore DEBUG_INSNs.
15157
15158 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15159
15160         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
15161         depth to 8 from 5.
15162
15163         PR debug/45003
15164         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
15165         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
15166         instead of the result's type.
15167
15168 2010-07-20  Richard Guenther  <rguenther@suse.de>
15169
15170         PR tree-optimization/44977
15171         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
15172         SSA form.
15173
15174 2010-07-20  Richard Guenther  <rguenther@suse.de>
15175
15176         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
15177         (lto_symtab_merge_decls_2): Likewise.
15178         * gimple.h (gimple_types_compatible_p): Declare.
15179         * gimple.c (gimple_queue_type_fixup): Remove.
15180         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
15181         (gimple_compatible_complete_and_incomplete_type_p): New function.
15182         (gimple_types_compatible_p): Adjust.
15183         (gimple_register_type): Remove type fixup code.
15184         (print_gimple_types_stats): Adjust.
15185         (free_gimple_type_tables): Likewise.
15186         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
15187         * tree-ssa.c (useless_type_conversion_p): Likewise.
15188
15189 2010-07-20  Richard Guenther  <rguenther@suse.de>
15190
15191         PR middle-end/44971
15192         PR middle-end/44988
15193         * tree-ssa.c (maybe_optimize_var): New function split out from ...
15194         (execute_update_addresses_taken): ... here.
15195         (non_rewritable_mem_ref_base): Likewise.
15196         (execute_update_addresses_taken): Do not iterate over all referenced
15197         vars but just all local decls and parms.
15198         Properly check call and asm arguments and rewrite call arguments.
15199
15200 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
15201
15202         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
15203         to top level.
15204         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
15205         definitions ...
15206         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
15207         New macro.
15208         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
15209
15210 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
15211
15212         * gengtype.c (start_root_entry): New function, split out from
15213         write_root.  Check whether V is null and raise an error if so.
15214         (write_field_root): Check for V being null.  Don't raise an error here;
15215         set V to null instead.
15216         (write_root): Update comment above function.  Use start_root_entry.
15217
15218 2010-07-19  Xinliang David Li  <davidxl@google.com>
15219
15220         PR testsuite/44932
15221         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
15222         def edges.
15223         (find_uninit_use): Add dump.
15224         (is_use_properly_guarded): Ditto.
15225         (warn_uninitialized_phi): Ditto.
15226         (execute_late_warn_uninitialized): Ditto.
15227
15228 2010-07-19  Richard Guenther  <rguenther@suse.de>
15229
15230         PR middle-end/44941
15231         * expr.c (emit_block_move_hints): Move zero size check first.
15232         Move asserts to more useful places.
15233         * calls.c (load_register_parameters): Check for zero size.
15234
15235 2010-07-19  Richard Henderson  <rth@redhat.com>
15236
15237         * tree-optimize.c (execute_all_early_local_passes): New.  Change
15238         cgraph_state here ...
15239         (execute_early_local_optimizations): ... not here.  Remove.
15240         (pass_early_local_passes, pass_all_early_optimizations): Update.
15241
15242 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
15243
15244         * postreload.c (reload_combine_closest_single_use): Ignore the
15245         number of uses for DEBUG_INSNs.
15246         (fixup_debug_insns): New static function.
15247         (reload_combine_recognize_const_pattern): Use it.  Don't let the
15248         main loop be affected by DEBUG_INSNs.
15249         Really disallow moving adds past a jump insn.
15250         (reload_combine_recognize_pattern): Don't update use_ruid here.
15251         (reload_combine_note_use): Do it here.
15252         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
15253
15254 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
15255
15256         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
15257         of a loop.
15258         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
15259
15260 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
15261
15262         * config/i386/darwin.h: Define darwin_emit_branch_islands.
15263         (TARGET_MACHO_BRANCH_ISLANDS): New.
15264         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
15265         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
15266         default value.
15267         * config/i386/i386.c (output_pic_addr_const): Do not emit
15268         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
15269         (x86_output_mi_thunk): Adjust symbol creation.
15270         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
15271         Remove out of date comment.
15272         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
15273         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
15274         (DARWIN_GENERATE_ISLANDS): Ditto.
15275         (output_call):  Do not emit branch islands unless
15276         darwin_emit_branch_islands is set.
15277         * config/darwin.c: Declare darwin_emit_branch_islands.
15278         (machopic_indirect_data_reference): Do not emit unless
15279         darwin_emit_branch_islands is set.
15280         (darwin_override_options): Set darwin_emit_branch_islands
15281         where it is needed.
15282         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
15283
15284 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15285
15286         * doc/sourcebuild.texi (Effective-Target Keywords): Document
15287         sse_runtime, sse2_runtime.
15288
15289 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
15290
15291         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
15292         low half of a single-register SCmode return value before ORing
15293         it with the high half.
15294         * config/mips/mips16.S (MERGE_GPRf): Likewise.
15295
15296 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15297
15298         PR target/44805
15299         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
15300         on all targets.
15301
15302 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
15303
15304         PR target/42235
15305         * postreload.c (reload_cse_move2add): Return bool, true if anything.
15306         changed.  All callers changed.
15307         (move2add_use_add2_insn): Likewise.
15308         (move2add_use_add3_insn): Likewise.
15309         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
15310         reload_combine.
15311         (RELOAD_COMBINE_MAX_USES): Bump to 16.
15312         (last_jump_ruid): New static variable.
15313         (struct reg_use): New members CONTAINING_MEM and RUID.
15314         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
15315         (reload_combine_split_one_ruid, reload_combine_split_ruids,
15316         reload_combine_purge_insn_uses, reload_combine_closest_single_use
15317         reload_combine_purge_reg_uses_after_ruid,
15318         reload_combine_recognize_const_pattern): New static functions.
15319         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
15320         is true for our reg and that we have available index regs.
15321         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
15322         callers changed.  Use them to initialize fields in struct reg_use.
15323         (reload_combine): Initialize last_jump_ruid.  Be careful when to
15324         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
15325         Call reload_combine_recognize_const_pattern.
15326         (reload_combine_note_store): Update REAL_STORE_RUID field.
15327
15328 2010-07-16  Jason Merrill  <jason@redhat.com>
15329
15330         * Makefile.in (opts-common.o): Depend on options.h.
15331
15332 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
15333
15334         * tree.c (build_common_builtin_nodes): Use build_function_type_list
15335         instead of build_function_type.
15336         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
15337         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
15338
15339 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
15340
15341         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
15342         do all the work.
15343         (rs6000_emit_int_cmove): Use function pointers for insn generation.
15344         Don't force values into registers unnecessarily.
15345         (output_isel): Assert that we're not given conditions we can't handle.
15346         Delete corresponding code.
15347         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
15348         scc_comparison_operator constraint.  Permit 0 for the consequent
15349         operand.  Permit any GPR for the alternative operand.
15350         (isel_unsigned_<mode>): Likewise.
15351
15352 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
15353
15354         PR target/44942
15355         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
15356         argument to const_tree.
15357         * config/i386/i386.c (function_arg_advance): If padding needs to be
15358         inserted before argument, increment cum->words by number of padding
15359         words as well.
15360         (contains_aligned_value_p): Change argument to const_tree.
15361         (ix86_function_arg_boundary): Change second argument to const_tree.
15362
15363 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
15364
15365         PR target/42235
15366         * function.c (record_hard_reg_sets): New static function.
15367         (assign_parm_setup_reg): If an optab for extending exists and the
15368         generated code clobbbers no hard regs, emit the insn directly and
15369         create a REG_EQUIV note.
15370
15371 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15372
15373         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
15374         TREE_CHAIN.
15375         * c-typeck.c (push_init_level): Likewise.
15376         (process_init_element): Likewise.
15377
15378 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
15379
15380         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
15381         (integer_three_node): Add.
15382         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
15383         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
15384         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
15385         of call build_int_cst.
15386         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
15387         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
15388         (find_interesting_uses_address): Ditto.
15389         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
15390         * tree-eh.c (lower_eh_constructs_2): Ditto.
15391         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
15392         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
15393         * expmed.c (expand_divmod): Ditto.
15394         * tree-mudflap.c (mx_register_decls): Ditto.
15395         * varasm.c (array_size_for_constructor): Ditto.
15396         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
15397         * c-parser.c (c_parser_postfix_expression): Ditto.
15398
15399 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
15400
15401         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
15402         New static variables.
15403         (reload_combine_recognize_pattern): New static function, broken out
15404         of reload_combine.
15405         (reload_combine): Use it.  Only initialize first_index_reg and
15406         last_index_reg once.
15407
15408 2010-07-15  Richard Henderson  <rth@redhat.com>
15409
15410         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
15411         when done.
15412
15413 2010-07-15  Jan Hubicka  <jh@suse.cz>
15414
15415         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
15416         comdats for broken gold.
15417         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
15418
15419 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15420
15421         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
15422
15423 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15424
15425         * tree.h (DECL_CHAIN): Define.
15426         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
15427         * c-decl.c: Likewise.
15428         * c-parser.c: Likewise.
15429         * c-typeck.c: Likewise.
15430         * cfgexpand.c: Likewise.
15431         * cgraph.c: Likewise.
15432         * cgraphunit.c: Likewise.
15433         * combine.c: Likewise.
15434         * config/alpha/alpha.c: Likewise.
15435         * config/arm/arm.c: Likewise.
15436         * config/frv/frv.c: Likewise.
15437         * config/i386/i386.c: Likewise.
15438         * config/i386/winnt-cxx.c: Likewise.
15439         * config/ia64/ia64.c: Likewise.
15440         * config/iq2000/iq2000.c: Likewise.
15441         * config/mep/mep.c: Likewise.
15442         * config/mips/mips.c: Likewise.
15443         * config/pa/som.h: Likewise.
15444         * config/rs6000/rs6000.c: Likewise.
15445         * config/s390/s390.c: Likewise.
15446         * config/sh/sh.c: Likewise.
15447         * config/sh/symbian-cxx.c: Likewise.
15448         * config/sparc/sparc.c: Likewise.
15449         * config/spu/spu.c: Likewise.
15450         * config/stormy16/stormy16.c: Likewise.
15451         * config/vxworks.c: Likewise.
15452         * config/xtensa/xtensa.c: Likewise.
15453         * coverage.c: Likewise.
15454         * dbxout.c: Likewise.
15455         * dwarf2out.c: Likewise.
15456         * emit-rtl.c: Likewise.
15457         * expr.c: Likewise.
15458         * function.c: Likewise.
15459         * gimple-low.c: Likewise.
15460         * gimple-pretty-print.c: Likewise.
15461         * gimplify.c: Likewise.
15462         * integrate.c: Likewise.
15463         * ipa-inline.c: Likewise.
15464         * ipa-prop.c: Likewise.
15465         * ipa-split.c: Likewise.
15466         * ipa-struct-reorg.c: Likewise.
15467         * ipa-type-escape.c: Likewise.
15468         * langhooks.c: Likewise.
15469         * lto-cgraph.c: Likewise.
15470         * omp-low.c: Likewise.
15471         * stor-layout.c: Likewise.
15472         * tree-cfg.c: Likewise.
15473         * tree-complex.c: Likewise.
15474         * tree-dfa.c: Likewise.
15475         * tree-dump.c: Likewise.
15476         * tree-inline.c: Likewise.
15477         * tree-mudflap.c: Likewise.
15478         * tree-nested.c: Likewise.
15479         * tree-object-size.c: Likewise.
15480         * tree-pretty-print.c: Likewise.
15481         * tree-sra.c: Likewise.
15482         * tree-ssa-live.c: Likewise.
15483         * tree-ssa-loop-niter.c: Likewise.
15484         * tree-ssa-math-opts.c: Likewise.
15485         * tree-ssa-reassoc.c: Likewise.
15486         * tree-ssa-sccvn.c: Likewise.
15487         * tree-ssa-structalias.c: Likewise.
15488         * tree-tailcall.c: Likewise.
15489         * tree-vrp.c: Likewise.
15490         * tree.c: Likewise.
15491         * var-tracking.c: Likewise.
15492         * varasm.c: Likewise.
15493
15494 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15495
15496         PR target/44877
15497         * config/spu/spu.c (spu_expand_builtin_1): Allow references
15498         (as well as pointers) as argument to mask_for_load builtins.
15499
15500 2010-07-15  Richard Guenther  <rguenther@suse.de>
15501
15502         PR tree-optimization/44946
15503         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
15504         with accessing only padding properly.
15505
15506 2010-07-15  Jan Hubicka  <jh@suse.cz>
15507
15508         * ipa.c (function_and_variable_visibility): Variables marked as used
15509         should not be localized.
15510
15511 2010-07-15  Jan Hubicka  <jh@suse.cz>
15512
15513         * cgraph.c: Include lto-streamer.h
15514         (change_decl_assembler_name): Work when assembler name hash is at place.
15515         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
15516         be sure to rename it to avoid name clash.
15517         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
15518         Localize hidden symbols only when locally defined.
15519
15520 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
15521
15522         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
15523
15524 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
15525             Kevin F. Quinn  <kevquinn@gentoo.org>
15526
15527         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
15528         * common.opt: Add -Wtrampolines.
15529         * doc/invoke.texi: Add -Wtrampolines.
15530
15531 2010-07-15  Jie Zhang  <jie@codesourcery.com>
15532
15533         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
15534         cortex_a8_issue_ls.
15535
15536 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
15537
15538         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
15539         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
15540
15541 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15542
15543         * config/spu/spu.c (reg_names): Remove prototype.
15544         (call_used_regs): Likewise.
15545
15546 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
15547
15548         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
15549         "unused" with attribute "used".
15550         (__JCR_END__): Likewise.
15551         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
15552         "used" attribute.
15553         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
15554
15555 2010-07-14  Richard Guenther  <rguenther@suse.de>
15556
15557         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
15558         (maybe_fixup_decls): Likewise.
15559         (input_gimple_stmt): Do not fixup anything.
15560         * lto-streamer-out.c (output_gimple_stmt): Make sure all
15561         non-automatic variable uses are wrapped inside a MEM_REF.
15562
15563 2010-07-14  Richard Henderson  <rth@redhat.com>
15564
15565         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
15566         for functions.
15567         * varasm.c (assemble_variable): Remove early exit for functions;
15568         assert that we're given a variable.
15569
15570 2010-07-14  Jie Zhang  <jie@codesourcery.com>
15571
15572         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
15573         cortex_a8_default when neon_type is not none.
15574
15575 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
15576
15577         * lower-subreg.c (subreg_context): New static bitmap.
15578         (decompose_multiword_subregs): Allocate and free it.
15579         (find_decomposable_subregs): Set a bit in it for a register that
15580         occurs in a subreg that changes mode but not size.
15581         (can_decompose_p): Test it instead of non_decomposable_context.
15582
15583 2010-07-14  Richard Guenther  <rguenther@suse.de>
15584
15585         PR tree-optimization/44824
15586         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
15587         is_gimple_mem_ref_addr.
15588         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
15589         non-decl_address_invariant_p addresses.
15590
15591 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
15592
15593         * reload.c (find_reloads): Revert code to penalize small register
15594         classes that was brought in with the IRA merge.
15595
15596 2010-07-14  Richard Guenther  <rguenther@suse.de>
15597
15598         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
15599         as base of ARRAY_REFs.
15600
15601 2010-07-14  Richard Guenther  <rguenther@suse.de>
15602
15603         PR middle-end/44930
15604         * tree-pretty-print.c (do_niy): Do not print a newline.
15605
15606 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
15607
15608         * ira-int.h (struct ira_object): New.
15609         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
15610         (struct ira_allocno): Remove members min, max,
15611         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
15612         conflict_allocnos_num and conflict_vec_p.  Add new member object.
15613         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
15614         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
15615         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
15616         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
15617         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
15618         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
15619         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
15620         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
15621         an ira_object_t rather than ira_allocno_t.  All uses changed.
15622         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
15623         contains a vector of ira_object_t; all uses changed.
15624         (ira_objects_num): Declare variable.
15625         (ira_create_allocno_object): Declare function.
15626         (ira_conflict_vector_profitable_p): Adjust prototype.
15627         (ira_allocate_conflict_vec): Renamed from
15628         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
15629         (ira_allocate_object_conflicts): Renamed from
15630         ira_allocate_allocno_conflicts; first arg now ira_object_t.
15631         (struct ira_object_iterator): New.
15632         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
15633         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
15634         to conflict_vec_p.  All uses changed.
15635         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
15636         Changed to take into account that conflicts are now tracked for
15637         objects.
15638         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
15639         Args changed to accept ira_object_t.  All uses changed.
15640         (allocnos_conflict_p): New static function.
15641         (collected_conflict_objects): Renamed from collected_allocno_objects;
15642         now a vector of ira_object_t.  All uses changed.
15643         (build_conflict_bit_table): Changed to take into account that
15644         conflicts are now tracked for objects.
15645         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
15646         (print_allocno_conflicts, ira_build_conflicts): Likewise.
15647         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
15648         setup_allocno_left_conflicts_size, allocno_reload_assign,
15649         fast_allocation): Likewise.
15650         * ira-lives.c (make_hard_regno_born, make_allocno_born)
15651         process_single_reg_class_operands, process_bb_node_lives): Likewise.
15652         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
15653         Likewise.
15654         * ira-build.c (ira_objects_num): New variable.
15655         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
15656         contains a vector of ira_object_t; all uses changed.
15657         (ira_object_id_map_vec): Corresponding change.
15658         (object_pool): New static variable.
15659         (initiate_allocnos): Initialize it.
15660         (finish_allocnos): Free it.
15661         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
15662         New functions.
15663         (ira_create_allocno): Don't set members that were removed.
15664         (ira_set_allocno_cover_class): Don't change conflict hard regs.
15665         (merge_hard_reg_conflicts): Changed to take into account that
15666         conflicts are now tracked for objects.
15667         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
15668         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
15669         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
15670         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
15671         setup_min_max_conflict_allocno_ids, ):  Likewise.
15672         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
15673         to ira_object_t; all callers changed.
15674         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
15675         to ira_object_t, all callers changed.
15676         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
15677         to ira_object_t, all callers changed.
15678         (conflict_check, curr_conflict_check_tick): Renamed from
15679         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
15680         changed.
15681         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
15682         arg changed to ira_object_t, all callers changed.
15683         (create_cap_allocno): Call ira_create_allocno_object.
15684         (finish_allocno): Free the corresponding object.
15685         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
15686         callers changed.  Adjusted for dealing with objects.
15687         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
15688         dealing with objects.
15689         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
15690
15691         * ira-int.h (struct live_range): Rename allocno member to object
15692         and change type to ira_object_t.
15693         (struct ira_object): New member live_ranges.
15694         (struct ira_allocno): Remove member live_ranges.
15695         (ALLOCNO_LIVE_RANGES): Remove.
15696         (OBJECT_LIVE_RANGES): New macro.
15697         (ira_create_live_range, ira_copy_live_range_list,
15698         ira_merge_live_range_list, ira_live_ranges_intersect_p,
15699         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
15700         * ira-build.c (ira_create_object): Initialize live ranges here.
15701         (ira_create_allocno): Not here.
15702         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
15703         changed to ira_object_t, all callers changed.
15704         (copy_live_range): Rename from copy_allocno_live_range, all callers
15705         changed.
15706         (ira_copy_live_range_list): Rename from
15707         ira_copy_allocno_live_range_list, all callers changed.
15708         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
15709         all callers changed.
15710         (ira_live_ranges_intersect_p): Rename from
15711         ira_allocno_live_ranges_intersect_p, all callers changed.
15712         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
15713         callers changed.
15714         (ira_finish_live_range_list): Rename from
15715         ira_finish_allocno_live_range_list, all callers changed.
15716         (change_object_in_range_list): Rename from change_allocno_in_range_list,
15717         last arg changed to ira_object_t, all callers changed.
15718         (finish_allocno): Changed to expect live ranges in the allocno's object.
15719         (move_allocno_live_ranges, copy_allocno_live_ranges,
15720         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
15721         ira_flattening, ira_build): Likewise.
15722         * ira-color.c (allocnos_have_intersected_live_ranges_p,
15723         slot_coalesced_allocno_live_ranges_intersect,
15724         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
15725         * ira-conflicts.c (build_conflict_bit_table): Likewise.
15726         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
15727         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
15728         make_allocno_dead, create_start_finish_chains,
15729         remove_some_program_points_and_update_live_ranges,
15730         ira_debug_live_range_list): Likewise.
15731
15732         * ira-int.h (ira_object_conflict_iterator): Rename from
15733         ira_allocno_conflict_iterator.
15734         (ira_object_conflict_iter_init): Rename from
15735         ira_allocno_conflict_iter_init, second arg changed to
15736         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
15737         FOR_EACH_ALLOCNO_CONFLICT.
15738         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
15739         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
15740         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
15741         * ira-conflicts.c (print_allocno_conflicts): Likewise.
15742
15743 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
15744
15745         PR other/44874
15746         * tree-dump.c (dump_options): Add enumerate_locals entry.
15747         Add TDF_NOID exclusion to all entry.
15748         * tree-dump.h (dump_enumerated_decls): Declare.
15749         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
15750         Don't display type uid.
15751         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
15752         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
15753         * tree-ssa-live.c: Include gimple.h.
15754         (numbered_tree_d): New struct.
15755         (numbered_tree): New typedef.
15756         (DEF_VEC_O (numbered_tree): New.
15757         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
15758         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
15759         (dump_enumerated_decls): Likewise.
15760         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
15761         debug info and flag_dump_final_insns, call dump_enumerated_decls.
15762         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
15763         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
15764
15765 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
15766
15767         * expmed.h (MAX_BITS_PER_WORD): Move to...
15768         * defaults.h (MAX_BITS_PER_WORD): ...here.
15769
15770 2010-07-13  DJ Delorie  <dj@redhat.com>
15771
15772         * config/h8300/h8300.c (h8300_init_once): Default to
15773         -fstrict_volatile_bitfields.
15774
15775         * config/sh/sh.c (sh_override_options): Default to
15776         -fstrict_volatile_bitfields.
15777
15778         * config/rx/rx.c (rx_option_override): New.
15779
15780         * config/m32c/m32c.c (m32c_override_options): Default to
15781         -fstrict_volatile_bitfields.
15782
15783 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
15784
15785         * tree.h (build_function_call_expr): Delete.
15786         (build_call_expr_loc_array): New function.
15787         (build_call_expr_loc_vec): New function.
15788         * tree-flow.h (struct omp_region): Change type of ws_args field
15789         to a VEC.
15790         * builtins.c (build_function_call_expr): Delete.
15791         (build_call_expr_loc_array): New function.
15792         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
15793         (build_call_expr): Likewise.
15794         (build_call_expr_loc_vec): New function.
15795         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
15796         build_function_call_expr.
15797         * expr.c (emutls_var_address): Likewise.
15798         * varasm.c (emutls_common_1): Likewise.
15799         * omp-low.c (expand_omp_atomic_mutex): Likewise.
15800         (expand_omp_taskreg): Adjust for new type of region->ws_args.
15801         (get_ws_args_for): Return a VEC instead of a tree.
15802         (expand_parallel_call): Call build_call_expr_loc_vec instead of
15803         build_function_call_expr.
15804         * stor-layout.c (self_referential_size): Likewise.
15805
15806 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
15807
15808         PR testsuite/44701
15809         * recog.c (constrain_operands): Allow side-effects in memory
15810         operands if either < or > constraint is used, rather than if
15811         both < and > is used.
15812
15813 2010-07-13  Richard Guenther  <rguenther@suse.de>
15814
15815         PR middle-end/44911
15816         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
15817         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
15818         without name.
15819
15820 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
15821
15822         PR target/44761
15823         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
15824         to variable emited.
15825         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
15826         * config/sh/sh.md (symGOT_load): Likewise.
15827         (symDTPOFF2reg): Likewise.
15828         (symTPOFF2reg): Likewise.
15829
15830 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15831
15832         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
15833         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
15834
15835 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15836
15837         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
15838         explanation.
15839         Find ucontext_t * on Solaris 11.
15840         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
15841         Handle new Solaris 11 __sighndlr patterns.
15842
15843 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
15844
15845         PR debug/44901
15846         * vec.h (VEC_block_remove): Fix comment.
15847         * tree-ssa-live.c (remove_unused_locals): Don't use
15848         VEC_unordered_remove on local_decls, instead replace a single
15849         vector element in each iteration if at least one element had
15850         to be removed and VEC_truncate at the end.
15851         * omp-low.c (expand_omp_taskreg): Likewise.
15852
15853 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15854
15855         * c-decl.c (finish_function): Fix typo in comment.
15856
15857 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
15858
15859         PR bootstrap/44921
15860         * postreload.c (move2add_use_add3_insn): Silence gcc warning
15861         on min_regno.
15862
15863 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
15864
15865         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
15866         (simplify_stmt_using_ranges): Use it.
15867
15868 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15869
15870         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
15871         member.  Do not mark as GTY(()).
15872         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
15873         (spu_builtin_decls): New static variable.
15874         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
15875         (spu_init_builtins): Likewise.
15876         (spu_builtin_mul_widen_even): Likewise.
15877         (spu_builtin_mul_widen_odd): Likewise.
15878         (spu_builtin_mask_for_load): Likewise.
15879         (spu_builtin_vec_perm): Likewise.
15880         * config/spu/spu-c.c: Include "target.h".
15881         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
15882         of using spu_builtins[].fndecl.
15883
15884 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15885
15886         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
15887         imply -minterlink-mips16.
15888
15889 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15890
15891         * config/mips/mips.h (mips16_globals): Declare.
15892         (SWITCHABLE_TARGET): Define.
15893         * config/mips/mips.c: Include target-globals.h.
15894         (mips16_globals): New variable.
15895         (mips_set_mips16_mode): Use save_target_globals and
15896         restore_target_globals instead of target_reinit.
15897
15898 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15899
15900         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
15901         to say that the function can be called more than once.
15902         * target-globals.c (save_target_globals): Call init_reg_sets.
15903
15904 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15905
15906         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
15907         * bb-reorder.h: New file.
15908         * bb-reorder.c (default_target_bb_reorder): New variable.
15909         (this_target_bb_reorder): New conditional variable.
15910         (uncond_jump_length): Redefine as a macro.
15911         * target-globals.h (this_target_bb_reorder): Declare.
15912         (target_globals): Add a bb_reorder field.
15913         (restore_target_globals): Copy the bb_reorder field to
15914         this_target_bb-reorder.
15915         * target-globals.c: Include bb-reorder.h.
15916         (default_target_globals): Initialize the bb_reorder field.
15917         (save_target_globals): Likewise.
15918
15919 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15920
15921         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
15922         * gcse.h: New file.
15923         * gcse.c: Include gcse.h.
15924         (default_target_gcse): New variable.
15925         (this_target_gcse): New conditional variable.
15926         (can_copy): Redefine as a macro.
15927         (can_copy_init_p): New macro.
15928         (can_copy_p): Remove can_copy_init_p.
15929         * target-globals.h (this_target_gcse): Declare.
15930         (target_globals): Add a gcse field.
15931         (restore_target_globals): Copy the gcse field to this_target_gcse.
15932         * target-globals.c: Include gcse.h.
15933         (default_target_globals): Initialize the gcse field.
15934         (save_target_globals): Likewise.
15935
15936 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15937
15938         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
15939         and x_ira_prohibited_mode_move_regs_initialized_p.
15940         (ira_prohibited_mode_move_regs): Redefine as a macro.
15941         * ira.c (ira_prohibited_mode_move_regs): Delete.
15942         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
15943
15944 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15945
15946         * reload.h (target_reload): Add x_cached_reg_save_code and
15947         x_cached_reg_restore_code.
15948         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
15949         Redefine as macros.
15950
15951 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15952
15953         * Makefile.in (target-globals.o): Depend on builtins.h.
15954         * builtins.h: New file.
15955         * builtins.c: Include builtins.h.
15956         (default_target_builtins): New variable.
15957         (this_target_builtins): New conditional variable.
15958         (apply_args_mode, apply_result_mode): Redefine as macros.
15959         * target-globals.h (this_target_builtins): Declare.
15960         (target_globals): Add a builtins field.
15961         (restore_target_globals): Copy the builtins field to
15962         this_target_builtins.
15963         * target-globals.c: Include builtins.h.
15964         (default_target_globals): Initialize the builtins field.
15965         (save_target_globals): Likewise.
15966
15967 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15968
15969         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
15970         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
15971         from expmed.c.
15972         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
15973         (alg_hash, alg_hash_used_p): New macros.
15974         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
15975         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
15976         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
15977
15978 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15979
15980         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
15981         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
15982         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
15983         (this_op_costs, costs_classes): Redefine as macros.
15984         (record_reg_classes): Don't take op_costs as a parameter.
15985         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
15986         (scan_one_insn): Update call to record_operand_costs.
15987
15988 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
15989
15990         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
15991         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
15992         (target_ira_int): New structure.
15993         (default_target_ira_int): Declare.
15994         (this_target_ira_int): Declare as a variable or define as a macro.
15995         (ira_reg_mode_hard_regset, ira_register_move_cost)
15996         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
15997         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
15998         (prohibited_class_mode_regs, ira_important_classes_num)
15999         (ira_important_classes, ira_reg_class_intersect)
16000         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
16001         (ira_reg_class_union): Redefine as macros.
16002         * ira.h (target_ira): New structure.
16003         (default_target_ira): Declare.
16004         (this_target_ira): Declare as a variable or define as a macro.
16005         (ira_available_class_regs, ira_hard_regno_cover_class)
16006         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
16007         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
16008         (ira_class_hard_regs_num): Redefine as macros.
16009         * ira.c (default_target_ira, default_target_ira_int): New variables.
16010         (this_target_ira, this_target_ira_int): New conditional variables.
16011         (ira_reg_mode_hard_regset, ira_memory_move_cost)
16012         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
16013         (ira_class_subset_p): Delete.
16014         (no_unit_alloc_regs): Redefine as a macro.
16015         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
16016         (ira_class_hard_regs_num, ira_class_hard_reg_index)
16017         (ira_available_class_regs): Delete.
16018         (alloc_reg_class_subclasses): Redefine as a macro.
16019         (ira_reg_class_cover_size, ira_reg_class_cover)
16020         (ira_important_classes_num, ira_important_classes)
16021         (ira_important_class_nums, ira_class_translate): Delete.
16022         (cover_class_order): Document the variable's lifetime.
16023         (reorder_important_classes): Don't set ira_important_class_nums.
16024         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
16025         (ira_reg_class_super_classes, ira_reg_class_union)
16026         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
16027         Delete.
16028         (setup_reg_class_nregs): Don't set ira_max_regs.
16029         (prohibited_class_mode_regs): Delete.
16030         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
16031         (target_globals): Add ira and ira_int fields.
16032         (restore_target_globals): Copy the ira field to this_target_ira
16033         and the ira_int field to this_target_ira_int.
16034         * target-globals.c: Include ira-int.h.
16035         (default_target_globals): Initialize the ira and ira_int fields.
16036         (save_target_globals): Likewise.
16037
16038 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16039
16040         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
16041         * cfgloop.h (target_cfgloop): New structure.
16042         (default_target_cfgloop): Declare.
16043         (this_target_cfgloop): Declare as a variable or define as a macro.
16044         (target_avail_regs, target_clobbered_regs, target_res_regs)
16045         (target_reg_cost, target_spill_cost): Redefine as macros.
16046         * cfgloopanal.c (default_target_cfgloop): New variable.
16047         (this_target_cfgloop): New conditional variable.
16048         (target_avail_regs, target_clobbered_regs, target_res_regs)
16049         (target_reg_cost, target_spill_cost): Delete.
16050         * target-globals.h (this_target_cfgloop): Declare.
16051         (target_globals): Add a cfgloop field.
16052         (restore_target_globals): Copy the cfgloop field to
16053         this_target_cfgloop.
16054         * target-globals.c: Include cfgloop.h.
16055         (default_target_globals): Initialize the cfgloop field.
16056         (save_target_globals): Likewise.
16057
16058 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16059
16060         * regs.h (target_regs): Add x_direct_load, x_direct_store and
16061         x_float_extend_from_mem.
16062         (direct_load, direct_store, float_extend_from_mem): New macros.
16063         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
16064
16065 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16066
16067         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
16068         (target-globals.o): Depend on $(LIBFUNCS_H).
16069         * libfuncs.h: Include hashtab.h.
16070         (libfunc_entry): Moved from optabs.c.
16071         (target_libfuncs): New structure.
16072         (default_target_libfuncs): Declare.
16073         (this_target_libfuncs): Declare as a variable or define as a macro.
16074         (libfunc_table): Redefine as a macro.
16075         * optabs.c (default_target_libfuncs): New variable.
16076         (this_target_libfuncs): New conditional variable.
16077         (libfunc_table): Delete.
16078         (libfunc_entry): Moved to optabs.h.
16079         (libfunc_hash): Redefine as a macro.
16080         (hash_libfunc, eq_libfunc): Fix comments.
16081         (init_optabs): Use libfunc_hash to detect cases where the function
16082         has already been called.  Clear the hash table instead of
16083         recreating it.
16084         * target-globals.h (this_target_libfuncs): Declare.
16085         (target_globals): Add a libfuncs field.
16086         (restore_target_globals): Copy the libfuncs field to
16087         this_target_libfuncs.
16088         * target-globals.c: Include libfuncs.h.
16089         (default_target_globals): Initialize the libfuncs field.
16090         (save_target_globals): Likewise.
16091
16092 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16093
16094         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
16095         in all dependency lists.
16096
16097 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16098
16099         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
16100         * optabs.h (target_optabs): New structure.
16101         (default_target_optabs): Declare.
16102         (this_target_optabs): Declare as a variable or define as a macro.
16103         (optab_table, convert_optab_table, direct_optab_table): Redefine
16104         as macros.
16105         * optabs.c (default_target_optabs): New variable.
16106         (this_target_optabs): New conditional variable.
16107         (optab_table, convert_optab_table, direct_optab_table): Delete.
16108         * target-globals.h (this_target_optabs): Declare.
16109         (target_globals): Add a optabs field.
16110         (restore_target_globals): Copy the optabs field to
16111         this_target_optabs.
16112         * target-globals.c: Include expr.h and optabs.h.
16113         (default_target_globals): Initialize the optabs field.
16114         (save_target_globals): Likewise.
16115
16116 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16117
16118         * flags.h (target_flagstate): Add x_flag_excess_precision.
16119         (flag_excess_precision): Redefine as a macro.
16120         * toplev.c (flag_excess_precision): Delete.
16121
16122 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16123
16124         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
16125         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
16126         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
16127         (no_caller_save_reg_set): Redefine as a macro.
16128         * reload.h (target_reload): Add x_caller_save_initialized_p and
16129         x_regno_save_mode.
16130         (caller_save_initialized_p): Redefine as a macro.
16131         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
16132         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
16133         (regno_save_mode): Redefine as a macro.
16134
16135 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16136
16137         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
16138         * expmed.h: New file.
16139         * expmed.c (default_target_costs): New variable.
16140         (this_target_costs): New conditional variable.
16141         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
16142         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
16143         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
16144         * target-globals.h (this_target_expmed): Declare.
16145         (target_globals): Add a expmed field.
16146         (restore_target_globals): Copy the expmed field to
16147         this_target_expmed.
16148         * target-globals.c: Include expmed.h.
16149         (default_target_globals): Initialize the expmed field.
16150         (save_target_globals): Likewise.
16151
16152 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16153
16154         * Makefile.in (target-globals.o): Depend on reload.h.
16155         * reload.h (target_reload): New structure.
16156         (default_target_reload): Declare.
16157         (this_target_reload): Declare as a variable or define as a macro.
16158         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
16159         * reload1.c (default_target_reload): New variable
16160         (this_target_reload): New conditional variable.
16161         (indirect_symref_ok, double_reg_address_ok): Delete.
16162         (spill_indirect_levels): Redefine as a macro.
16163         * target-globals.h (this_target_reload): Declare.
16164         (target_globals): Add a reload field.
16165         (restore_target_globals): Copy the reload field to
16166         this_target_reload.
16167         * target-globals.c: Include hard-reg-set.h.
16168         (default_target_globals): Initialize the reload field.
16169         (save_target_globals): Likewise.
16170
16171 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16172
16173         * rtl.h (target_rtl): Add x_static_reg_base_value.
16174         * alias.c (static_reg_base_value): Redefine as a macro.
16175
16176 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16177
16178         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
16179         (GTFILES): Remove reginfo.c.
16180         * rtl.h (target_rtl): Add x_top_of_stack.
16181         (top_of_stack): New macro.
16182         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
16183         (top_of_stack): Delete.
16184
16185 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16186
16187         * regs.h (target_regs): Add x_hard_regs_of_mode,
16188         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
16189         x_may_move_out_cost and x_last_mode_for_init_move_cost.
16190         (have_regs_of_mode, contains_reg_of_mode, move_cost)
16191         (may_move_in_cost, may_move_out_cost): Redefine as macros.
16192         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
16193         (may_move_in_cost, may_move_out_cost): Delete.
16194         (last_mode_for_init_move_cost): Redefine as a macro.
16195
16196 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16197
16198         * hard-reg-set.h (target_hard_regs): New structure.
16199         (default_target_hard_regs): Declare.
16200         (this_target_hard_regs): Declare as a variable or define as a macro.
16201         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
16202         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
16203         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
16204         (reg_class_size, reg_class_subclasses, reg_class_subunion)
16205         (reg_class_superunion, reg_names): Redefine as macros.
16206         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
16207         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
16208         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
16209         (reg_class_contents, reg_class_size, reg_class_subclasses)
16210         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
16211         (default_target_hard_regs): New variable
16212         (this_target_hard_regs, initial_call_really_used_regs)
16213         (initial_reg_alloc_order): New conditional variables.
16214         (initial_reg_names): New variable.
16215         (init_reg_sets): Assert that initial_call_really_used_regs,
16216         initial_reg_alloc_order and initial_reg_names
16217         are all the same size as their variable counterparts.  Use them to
16218         initialize those counterparts.
16219         * target-globals.h (this_target_hard_regs): Declare.
16220         (target_globals): Add a hard_regs field.
16221         (restore_target_globals): Copy the hard_regs field to
16222         this_target_hard_regs.
16223         * target-globals.c: Include hard-reg-set.h.
16224         (default_target_globals): Initialize the hard_regs field.
16225         (save_target_globals): Likewise.
16226
16227 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16228
16229         * Makefile.in (target-globals.o): Depend on $(RTL_H).
16230         * rtl.h (target_rtl): New structure.
16231         (default_target_rtl): Declare.
16232         (this_target_rtl): Declare as a variable or define as a macro.
16233         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
16234         Redefine as macros.
16235         * emit-rtl.c (default_target_rtl): New variable.
16236         (this_target_rtl): New conditional variable.
16237         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
16238         (return_address_pointer_rtx): Delete.
16239         (initial_regno_reg_rtx): New macro.
16240         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
16241         (init_emit_regs): Likewise.
16242         * target-globals.h (this_target_rtl): Declare.
16243         (target_globals): Add a rtl field.
16244         (restore_target_globals): Copy the rtl field to this_target_rtl.
16245         * target-globals.c: Include rtl.h.
16246         (default_target_globals): Initialize the rtl field.
16247         (save_target_globals): Likewise.
16248
16249 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16250
16251         * Makefile.in (target-globals.o): Depend on $(REGS_H).
16252         * regs.h (target_reg_modes): New structure.
16253         (default_target_reg_modes): Declare.
16254         (this_target_reg_modes): Declare as a variable or define as a macro.
16255         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
16256         * reginfo.c (default_target_reg_modes): New variable.
16257         (this_target_reg_modes): New conditional variable.
16258         (hard_regno_nregs, reg_raw_mode): Delete.
16259         * target-globals.h (this_target_regs): Declare.
16260         (target_globals): Add a regs field.
16261         (restore_target_globals): Copy the regs field to this_target_regs.
16262         * target-globals.c: Include regs.h.
16263         (default_target_globals): Initialize the regs field.
16264         (save_target_globals): Likewise.
16265
16266 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16267
16268         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
16269         * doc/tm.texi: Regenerate.
16270         * Makefile.in (OBJS-common): Add target-globals.o.
16271         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
16272         and target-globals.h.
16273         (target-globals.o): New rule.
16274         (GTFILES): Include $(srcdir)/target-globals.h.
16275         * defaults.h (SWITCHABLE_TARGET): Define.
16276         * gengtype.c (open_base_files): Add target-globals.h to the
16277         list of includes.
16278         * target-globals.h: New file.
16279         * target-globals.c: Likewise.
16280
16281         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
16282         * flags.h (target_flag_state): New structure.
16283         (default_target_flag_state): Declare.
16284         (this_target_flag_state): Declare as a variable or define as a macro.
16285         (align_loops_log): Redefine as a macro.
16286         (align_loops_max_skip, align_jumps_log): Likewise.
16287         (align_jumps_max_skip, align_labels_log): Likewise.
16288         (align_labels_max_skip, align_functions_log): Likewise.
16289         * toplev.c (default_target_flag_state): New variable.
16290         (this_target_flag_state): New conditional variable.
16291         (align_loops_log): Delete.
16292         (align_loops_max_skip, align_jumps_log): Likewise.
16293         (align_jumps_max_skip, align_labels_log): Likewise.
16294         (align_labels_max_skip, align_functions_log): Likewise.
16295         * target-globals.h (this_target_flag_state): Declare.
16296         (target_globals): Add a flag_state field.
16297         (restore_target_globals): Copy the flag_state field to
16298         this_target_flag_state.
16299         * target-globals.c: Include flags.h.
16300         (default_target_globals): Initialize the flag_state field.
16301         (save_target_globals): Likewise.
16302
16303 2010-07-12  Jie Zhang  <jie@codesourcery.com>
16304
16305         * postreload.c (reg_symbol_ref[]): New.
16306         (move2add_use_add2_insn): New.
16307         (move2add_use_add3_insn): New.
16308         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
16309         (move2add_note_store): Likewise.
16310
16311 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
16312
16313         PR rtl-optimization/44752
16314         * genautomata.c (main): Don't emit an empty file even if there
16315         is no automaton.
16316
16317 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16318
16319         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
16320         ix86_solaris_return_in_memory.
16321         * config/i386-protos.h: Reflect this.
16322         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
16323         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
16324         Move ...
16325         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
16326
16327 2010-07-12  Jie Zhang  <jie@codesourcery.com>
16328
16329         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
16330         align the stack when it's going to be saved.
16331
16332 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16333
16334         PR pch/14940
16335         * config/host-solaris.c (mmap_fixed): New function.
16336         (sol_gt_pch_get_address): Use it.
16337         (sol_gt_pch_use_address): Likewise.
16338
16339 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16340
16341         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
16342         pentiumpro on Solaris 8 and 9/x86.
16343         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
16344         Document SSE/SSE2 support.
16345         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
16346
16347 2010-07-12  Andi Kleen  <ak@linux.intel.com>
16348
16349         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
16350         instead of gcc_assert to print better error message for multiple
16351         prevailing defs.
16352
16353 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
16354
16355         * config/i386/i386.c (ix86_asm_output_function_label): Change format
16356         string placeholder from 0x%x to %#x.
16357         (ix86_code_end): Use putc to output '\n'.
16358         (ix86_print_operand) <case ';'>: Use putc to output ';'.
16359
16360 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
16361
16362         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
16363         in directive -export.
16364
16365 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
16366
16367         * reginfo.h (reg_classes_intersect_p): Change arguments type to
16368         reg_class_t.
16369         * rtl.h (reg_classes_intersect_p): Adjust prototype.
16370
16371         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16372         Remove macros.
16373         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
16374         rs6000_memory_move_cost): Remove
16375         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
16376         TARGET_MEMORY_MOVE_COST): Define.
16377         (rs6000_register_move_cost): Make static. Change arguments type from
16378         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
16379         (rs6000_memory_move_cost): Make static. Change arguments type from
16380         'enum reg_class' to reg_class_t.
16381
16382 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
16383
16384         PR middle-end/42505
16385         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
16386         lookup code into....
16387         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
16388         new functions.
16389         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
16390         * cfgloopanal.c (target_clobbered_regs): Define.
16391         (init_set_costs): Initialize target_clobbered_regs.
16392         (estimate_reg_pressure_cost): Add call_p argument.  When true,
16393         adjust the number of available registers to exclude the
16394         call-clobbered registers.
16395         * cfgloop.h (target_clobbered_regs): Declare.
16396         (estimate_reg_pressure_cost): Adjust declaration.
16397         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
16398         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
16399         (determine_set_costs): Dump target_clobbered_regs.
16400         (loop_body_includes_call): New function.
16401         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
16402         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
16403         call_p flag through.
16404         (best_gain_for_invariant): Likewise.
16405         (find_invariants_to_move): Likewise.
16406         (move_single_loop_invariants): Likewise, using already-computed
16407         has_call field.
16408
16409 2010-07-10  Richard Guenther  <rguenther@suse.de>
16410             Joern Rennecke  <joern.rennecke@embecosm.com>
16411
16412         PR debug/44832
16413         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
16414         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
16415         unless they have DECL_IGNORED_P set.
16416
16417 2010-07-10  Richard Guenther  <rguenther@suse.de>
16418
16419         PR lto/44889
16420         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
16421         helper function.
16422         (gimple_types_compatible_p): Similar to pointed-to
16423         types allow and merge a mix of complete and incomplete aggregate.
16424         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
16425         (iterative_hash_gimple_type): Adjust for that.
16426
16427 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
16428
16429         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
16430
16431 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
16432
16433         PR objc/44140
16434         * config/darwin.c (output_objc_section_asm_op): Save and restore
16435         section when outputting ObjC section list.
16436
16437 2010-07-09  Jan Hubicka  <jh@suse.cz>
16438
16439         * lto-streamer-out.c (produce_symtab): Do not write alias
16440         cgraph/varpool nodes.
16441
16442 2010-07-09  Jan Hubicka  <jh@suse.cz>
16443
16444         * tree-inline.c (declare_return_variable): Fix ICE while
16445         inlining DECL_BY_VALUE function not in SSA form
16446
16447 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
16448
16449         PR tree-optimization/44576
16450         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
16451         New.  Pull out from is_loop_prefetching_profitable to implement
16452         the trip count to ahead ratio heuristic.
16453         (mem_ref_count_reasonable_p): New.  Pull out from
16454         is_loop_prefetching_profitable to implement the instruction to
16455         memory reference ratio heuristic.  Also consider not reasonable if
16456         the memory reference count is above a threshold (to avoid
16457         explosive compilation time.
16458         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
16459         is_loop_prefetching_profitable to implement the instruction to
16460         prefetch ratio heuristic.
16461         (is_loop_prefetching_profitable): Removed.
16462         (loop_prefetch_arrays): Distribute the cost analysis across the
16463         function to allow early exit of the prefetch analysis.
16464         is_loop_prefetching_profitable is splitted into three functions,
16465         with each one called as early as possible.
16466         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
16467         number of memory references in a loop is considered too many.
16468
16469 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
16470
16471         * reload.c (find_reloads): Don't clear badop if we have a winreg
16472         alternative, but not win, and the class only has fixed regs.
16473         * hard-reg-set.h (class_only_fixed_regs): Declare.
16474         * reginfo.c (class_only_fixed_regs): New array.
16475         (init_reg_sets_1): Initialize it.
16476         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
16477         discourage alternatives using the stack pointer.
16478
16479         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
16480
16481         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
16482
16483         * config/arm/arm.md (cbranchqi4): Fix array size.
16484         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
16485         calculating length.
16486
16487 2010-07-09  Richard Guenther  <rguenther@suse.de>
16488
16489         * gimple.c (struct type_fixup_s): New struct and VEC type.
16490         (gimple_register_type_fixups): New static global.
16491         (gimple_queue_type_fixup): New function.
16492         (gimple_types_compatible_p): Queue type fixups instead of
16493         applying them here.
16494         (gimple_register_type): Apply queued fixups for the
16495         canonical type.  Empty the type fixup queue.
16496
16497 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
16498
16499         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
16500         * configure: Regenerate.
16501         * config.in: Ditto.
16502
16503 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
16504             Denys Vlasenko  <dvlasenk@redhat.com>
16505             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16506
16507         PR tree-optimization/28632
16508         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
16509         (extract_range_from_binary_expr): Further optimize
16510         BIT_AND_EXPR and BIT_IOR_EXPR.
16511
16512 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
16513
16514         * tree-if-conv.c (fold_or_predicates): New.
16515         (add_to_predicate_list): Call it.
16516
16517 2010-07-09  Richard Guenther  <rguenther@suse.de>
16518
16519         PR middle-end/44890
16520         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
16521         if base is a pointer.
16522         * tree-cfg.c (verify_expr): Update MEM_REF checking.
16523
16524 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
16525
16526         PR target/44877
16527         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
16528         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
16529         builtin mask for load/store builtins.
16530
16531 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
16532
16533         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
16534         for "lock addl".
16535         * configure: Regenerate.
16536         * config/i386/i386.c (ix86_print_operand) <case ';'>:
16537         Remove TARGET_MACHO.
16538
16539 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
16540
16541         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
16542         default ISA flags.
16543         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
16544
16545 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
16546
16547         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
16548
16549 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
16550
16551         * config/picochip/picochip.md (commsTestPort): Emit more
16552         efficient sequence for tstport instruction.
16553
16554 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
16555
16556         * config/i386/i386.c (ix86_veclib_handler): Make static.
16557
16558 2010-07-09  Richard Guenther  <rguenther@suse.de>
16559
16560         PR tree-optimization/44852
16561         * tree-ssa-alias.c: Include toplev.h for exact_log2.
16562         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
16563         in MEM_REF.
16564         (indirect_refs_may_alias_p): Likewise.
16565         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
16566
16567 2010-07-09  Richard Guenther  <rguenther@suse.de>
16568
16569         PR tree-optimization/44882
16570         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
16571         sets do conflict.
16572         (vectorizable_load): Likewise.
16573
16574 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
16575
16576         PR target/40657
16577         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
16578         All callers changed.
16579         Handle the case when we're called for the epilogue.
16580         (thumb_unexpanded_epilogue): Use it.
16581         (thumb1_expand_epilogue): Likewise.
16582
16583 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
16584
16585         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
16586         both ranges are range_int_cst_p with non-negative minimum,
16587         try harder to derive smaller range.
16588
16589 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16590
16591         * genrecog.c: Include diagnostic-core.h before toplev.h.
16592         * genoutput.c: Likewise.
16593         * genextract.c: Likewise.
16594         * genautomata.c: Likewise.
16595         * genemit.c: Likewise.
16596         * genpeep.c: Likewise.
16597         * genattrtab.c: Likewise.
16598         * genconditions.c: Likewise.
16599         * genpreds.c: Likewise.
16600
16601 2010-07-08  Andi Kleen  <ak@linux.intel.com>
16602
16603         * lto-section-in.c (lto_section_name): Add missing comma.
16604
16605 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
16606
16607         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
16608         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
16609         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
16610         (ia64_override_options): Rename to...
16611         (ia64_option_override): ... this one. Make static.
16612
16613 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
16614
16615         PR middle-end/44843
16616         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
16617         pointed-to type of the offset in a MEM_REF to compute the alignment.
16618
16619 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
16620
16621         * final.c (final_scan_insn): Replace
16622         TARGET_UNWIND_INFO macro check by unwind_emit
16623         hook NULL check.
16624         * targhooks.c (default_unwind_emit): Removed.
16625         * targhooks.h (default_unwind_emit): Likewise.
16626         * target.def (unwind_emit): Set default value to NULL.
16627
16628         * config/i386/i386-protos.h (ix86_asm_output_function_label):
16629         New prototype.
16630         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
16631         for NULL fntype argument and allow 64-bit targets.
16632         (ix86_asm_output_function_label): New function.
16633         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
16634         (ix86_handle_fndecl_attribute): Likewise.
16635         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
16636         * doc/doc/tm.texi: Regenerated.
16637         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
16638         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
16639         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
16640         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
16641         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
16642         * config/elfos.h: Likewise.
16643         * config/i386/cygming.h: Likewise.
16644         * config/netbsd-aout.h: Likewise.
16645         * config/openbsd.h: Likewise.
16646         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
16647         by ix86_asm_output_function_label function call.
16648         * varasm.c (assemble_start_function): Use
16649         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
16650
16651 2010-07-08  Jan Hubicka  <jh@suse.cz>
16652
16653         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
16654         New function.
16655         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
16656         Declare.
16657         * ipa-cp.c (ipcp_estimate_growth): Use it.
16658         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
16659         Likewise.
16660
16661 2010-07-08  Jan Hubicka  <jh@suse.cz>
16662
16663         * tree-inline.c (declare_return_variable): Allocate annotation for new
16664         temporary.
16665
16666 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
16667
16668         PR tree-optimization/44710
16669         * tree-if-conv.c (parse_predicate): New.
16670         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
16671         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
16672
16673 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
16674
16675         * common.opt (ftree-loop-if-convert): New flag.
16676         * doc/invoke.texi (ftree-loop-if-convert): Documented.
16677         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
16678         when flag_tree_loop_if_convert is set.
16679
16680 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
16681
16682         * config/i386/i386.c: Use short syntax for function calls
16683         through function pointers.
16684         * config/i386/i386.md: Ditto.
16685
16686 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
16687
16688         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
16689
16690 2010-07-08  Richard Guenther  <rguenther@suse.de>
16691
16692         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
16693         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
16694
16695 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
16696
16697         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
16698         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
16699         (loc_list_from_tree): Likewise.
16700         (output_loc_operands): Handle outputting DW_OP_const[48]u
16701         with loc->dtprel set.
16702         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
16703
16704 2010-07-08  Jan Hubicka  <jh@suse.cz>
16705
16706         * ipa.c: Include pointer-set.h
16707         (cgraph_externally_visible_p): New attribute ALIASED;
16708         when in LTO, hidden symbols are local unless they are aliased.
16709         (function_and_variable_visibility): Compute aliased nodes;
16710         handle LTO and hidden symbol on functions and vars.
16711         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
16712         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
16713
16714 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
16715
16716         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16717         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16718         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16719         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16720         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16721         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
16722         (ix86_gen_probe_stack_range): Likewise.
16723         (override_options): Set them.
16724         (ix86_target_stack_probe): New function.
16725         (ix86_compute_frame_layout): Force use of push instructions to
16726         save registers if stack checking with probes is enabled.
16727         (get_scratch_register_on_entry): New function.
16728         (release_scratch_register_on_entry): Likewise.
16729         (ix86_adjust_stack_and_probe): Likewise.
16730         (output_adjust_stack_and_probe): Likewise.
16731         (ix86_emit_probe_stack_range): Likewise.
16732         (output_probe_stack_range): Likewise.
16733         (ix86_expand_prologue): Emit stack checking code if static built-in
16734         stack checking is enabled.
16735         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
16736         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
16737         (output_adjust_stack_and_probe): Likewise.
16738         (output_probe_stack_range): Likewise.
16739         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16740         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
16741         TARGET_STACK_PROBE.
16742         (allocate_stack_worker_64): Likewise.
16743         (allocate_stack): Likewise.
16744         (adjust_stack_and_probe): New insn.
16745         (probe_stack_range): Likewise.
16746
16747 2010-07-08  Richard Guenther  <rguenther@suse.de>
16748
16749         PR tree-optimization/44831
16750         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
16751         a MEM_REF preserving TBAA info of the original dereference.
16752         Dereference the original pointer if the address is not invariant.
16753         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
16754         at least one invariant address that we are going to dereference.
16755
16756 2010-07-08  Richard Guenther  <rguenther@suse.de>
16757
16758         PR tree-optimization/44861
16759         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
16760         information when building MEM_REFs.
16761         (vectorizable_load): Likewise.
16762         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
16763
16764 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
16765
16766         * config/sol2-c.c: Do not include diagnostic-core.h.
16767
16768 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16769
16770         PR bootstrap/44768
16771         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
16772         with respect to current_function_decl. Pass decl of the function.
16773         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
16774         * ipa-inline.c (compute_inline_parameters): Pass decl to
16775         estimated_stack_frame_size.
16776
16777 2010-07-08  Richard Guenther  <rguenther@suse.de>
16778
16779         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
16780         New function.
16781         (valueize_refs): Call it.
16782
16783 2010-07-08  Richard Guenther  <rguenther@suse.de>
16784
16785         PR rtl-optimization/44838
16786         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
16787         SSA form do not use pointer equivalence.
16788
16789 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
16790
16791         * dwarf2out.c (AT_linkage_name): Delete.
16792         (add_linkage_attr): New function.
16793         (add_linkage_name): Call it to emit the linkage attribute.
16794         (dwarf2out_finish): Likewise.
16795         (move_linkage_attr): Explicitly accept both attribute variants.
16796
16797 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16798
16799         * toplev.h: Do not include diagnostic-core.h.
16800         Include diagnostic-core.h in every file that includes toplev.h.
16801         * c-tree.h: Do not include toplev.h.
16802         * pretty-print.h: Update comment.
16803         * Makefile.in: Update dependencies.
16804         * alias.c: Include diagnostic-core.h in every file that includes
16805         toplev.h.
16806         * attribs.c: Likewise.
16807         * auto-inc-dec.c: Likewise.
16808         * bb-reorder.c: Likewise.
16809         * bt-load.c: Likewise.
16810         * caller-save.c: Likewise.
16811         * calls.c: Likewise.
16812         * cfg.c: Likewise.
16813         * cfganal.c: Likewise.
16814         * cfgbuild.c: Likewise.
16815         * cfgcleanup.c: Likewise.
16816         * cfghooks.c: Likewise.
16817         * cfgloop.c: Likewise.
16818         * combine.c: Likewise.
16819         * config/alpha/alpha.c: Likewise.
16820         * config/arc/arc.c: Likewise.
16821         * config/arm/arm.c: Likewise.
16822         * config/arm/pe.c: Likewise.
16823         * config/avr/avr.c: Likewise.
16824         * config/bfin/bfin.c: Likewise.
16825         * config/cris/cris.c: Likewise.
16826         * config/crx/crx.c: Likewise.
16827         * config/darwin-c.c: Likewise.
16828         * config/darwin.c: Likewise.
16829         * config/fr30/fr30.c: Likewise.
16830         * config/frv/frv.c: Likewise.
16831         * config/h8300/h8300.c: Likewise.
16832         * config/host-darwin.c: Likewise.
16833         * config/i386/i386.c: Likewise.
16834         * config/i386/netware.c: Likewise.
16835         * config/i386/nwld.c: Likewise.
16836         * config/i386/winnt-cxx.c: Likewise.
16837         * config/i386/winnt-stubs.c: Likewise.
16838         * config/i386/winnt.c: Likewise.
16839         * config/ia64/ia64-c.c: Likewise.
16840         * config/ia64/ia64.c: Likewise.
16841         * config/iq2000/iq2000.c: Likewise.
16842         * config/lm32/lm32.c: Likewise.
16843         * config/m32c/m32c-pragma.c: Likewise.
16844         * config/m32c/m32c.c: Likewise.
16845         * config/m32r/m32r.c: Likewise.
16846         * config/m68hc11/m68hc11.c: Likewise.
16847         * config/m68k/m68k.c: Likewise.
16848         * config/mcore/mcore.c: Likewise.
16849         * config/mep/mep-pragma.c: Likewise.
16850         * config/mep/mep.c: Likewise.
16851         * config/mmix/mmix.c: Likewise.
16852         * config/mn10300/mn10300.c: Likewise.
16853         * config/moxie/moxie.c: Likewise.
16854         * config/pa/pa.c: Likewise.
16855         * config/pdp11/pdp11.c: Likewise.
16856         * config/picochip/picochip.c: Likewise.
16857         * config/rs6000/rs6000-c.c: Likewise.
16858         * config/rs6000/rs6000.c: Likewise.
16859         * config/rx/rx.c: Likewise.
16860         * config/s390/s390.c: Likewise.
16861         * config/score/score.c: Likewise.
16862         * config/score/score3.c: Likewise.
16863         * config/score/score7.c: Likewise.
16864         * config/sh/sh.c: Likewise.
16865         * config/sh/symbian-base.c: Likewise.
16866         * config/sh/symbian-c.c: Likewise.
16867         * config/sh/symbian-cxx.c: Likewise.
16868         * config/sol2-c.c: Likewise.
16869         * config/sol2.c: Likewise.
16870         * config/sparc/sparc.c: Likewise.
16871         * config/spu/spu.c: Likewise.
16872         * config/stormy16/stormy16.c: Likewise.
16873         * config/v850/v850-c.c: Likewise.
16874         * config/v850/v850.c: Likewise.
16875         * config/vax/vax.c: Likewise.
16876         * config/vxworks.c: Likewise.
16877         * config/xtensa/xtensa.c: Likewise.
16878         * convert.c: Likewise.
16879         * cse.c: Likewise.
16880         * cselib.c: Likewise.
16881         * dbgcnt.c: Likewise.
16882         * dbxout.c: Likewise.
16883         * ddg.c: Likewise.
16884         * dominance.c: Likewise.
16885         * emit-rtl.c: Likewise.
16886         * explow.c: Likewise.
16887         * expmed.c: Likewise.
16888         * fixed-value.c: Likewise.
16889         * fold-const.c: Likewise.
16890         * fwprop.c: Likewise.
16891         * gcse.c: Likewise.
16892         * ggc-common.c: Likewise.
16893         * ggc-page.c: Likewise.
16894         * ggc-zone.c: Likewise.
16895         * gimple-low.c: Likewise.
16896         * gimplify.c: Likewise.
16897         * graph.c: Likewise.
16898         * haifa-sched.c: Likewise.
16899         * ifcvt.c: Likewise.
16900         * implicit-zee.c: Likewise.
16901         * integrate.c: Likewise.
16902         * ira-build.c: Likewise.
16903         * ira-color.c: Likewise.
16904         * ira-conflicts.c: Likewise.
16905         * ira-costs.c: Likewise.
16906         * ira-lives.c: Likewise.
16907         * ira.c: Likewise.
16908         * lists.c: Likewise.
16909         * loop-doloop.c: Likewise.
16910         * loop-iv.c: Likewise.
16911         * lto-opts.c: Likewise.
16912         * lto-symtab.c: Likewise.
16913         * main.c: Likewise.
16914         * modulo-sched.c: Likewise.
16915         * optabs.c: Likewise.
16916         * params.c: Likewise.
16917         * plugin.c: Likewise.
16918         * postreload-gcse.c: Likewise.
16919         * postreload.c: Likewise.
16920         * predict.c: Likewise.
16921         * profile.c: Likewise.
16922         * real.c: Likewise.
16923         * regcprop.c: Likewise.
16924         * reginfo.c: Likewise.
16925         * regmove.c: Likewise.
16926         * reorg.c: Likewise.
16927         * resource.c: Likewise.
16928         * rtl.c: Likewise.
16929         * rtlanal.c: Likewise.
16930         * sched-deps.c: Likewise.
16931         * sched-ebb.c: Likewise.
16932         * sched-rgn.c: Likewise.
16933         * sdbout.c: Likewise.
16934         * sel-sched-dump.c: Likewise.
16935         * sel-sched-ir.c: Likewise.
16936         * simplify-rtx.c: Likewise.
16937         * stmt.c: Likewise.
16938         * stor-layout.c: Likewise.
16939         * store-motion.c: Likewise.
16940         * targhooks.c: Likewise.
16941         * tree-cfg.c: Likewise.
16942         * tree-cfgcleanup.c: Likewise.
16943         * tree-dump.c: Likewise.
16944         * tree-eh.c: Likewise.
16945         * tree-inline.c: Likewise.
16946         * tree-nomudflap.c: Likewise.
16947         * tree-object-size.c: Likewise.
16948         * tree-optimize.c: Likewise.
16949         * tree-outof-ssa.c: Likewise.
16950         * tree-phinodes.c: Likewise.
16951         * tree-profile.c: Likewise.
16952         * tree-ssa-ccp.c: Likewise.
16953         * tree-ssa-coalesce.c: Likewise.
16954         * tree-ssa-live.c: Likewise.
16955         * tree-ssa-loop-niter.c: Likewise.
16956         * tree-ssa-loop-prefetch.c: Likewise.
16957         * tree-ssa-loop.c: Likewise.
16958         * tree-ssa-structalias.c: Likewise.
16959         * tree-ssa-uninit.c: Likewise.
16960         * tree-ssa.c: Likewise.
16961         * tree-vect-data-refs.c: Likewise.
16962         * tree-vect-loop-manip.c: Likewise.
16963         * tree-vect-loop.c: Likewise.
16964         * tree-vect-patterns.c: Likewise.
16965         * tree-vect-stmts.c: Likewise.
16966         * tree-vrp.c: Likewise.
16967         * varasm.c: Likewise.
16968         * vec.c: Likewise.
16969         * web.c: Likewise.
16970         * xcoffout.c: Likewise.
16971
16972 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
16973
16974         * gengtype.c (write_field_root): New function.
16975         (write_root): Use it.
16976
16977 2010-07-07  Wei Guozhi  <carrot@google.com>
16978
16979         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
16980         of lowest bits to lshift/compare): Add a missing line.
16981
16982 2010-07-07  Wei Guozhi  <carrot@google.com>
16983
16984         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
16985         of lowest bits to lshift/compare): New.
16986
16987 2010-07-07  Tom Tromey  <tromey@redhat.com>
16988
16989         * doc/tm.texi: Update.
16990         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
16991         Add @hook.
16992         * target.def (want_debug_pub_sections): New hook.
16993         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
16994         * dwarf2out.c (add_pubname_string): Check
16995         targetm.want_debug_pub_sections.
16996         (add_pubname): Likewise.
16997         (add_pubtype): Likewise.
16998
16999 2010-07-07  Jie Zhang  <jie@codesourcery.com>
17000
17001         * genautomata.c (output_automata_list_min_issue_delay_code):
17002         Correctly decompress min_issue_delay.
17003
17004 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17005
17006         PR rtl-optimization/44404
17007         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
17008         possible, use reg_overlap_mentioned_p instead.
17009
17010 2010-07-07  Duncan Sands  <baldrick@free.fr>
17011
17012         PR middle-end/41355
17013         * tree.c (build_function_type_skip_args): Copy the original type using
17014         build_distinct_type_copy rather than copy_node.
17015
17016 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17017
17018         PR target/44850
17019         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
17020         revision 161876.
17021         (ix86_expand_prologue): Likewise.
17022         (ix86_handle_fndecl_attribute): Likewise.
17023         (ix86_asm_declare_function_name): Likewise.
17024         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17025         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17026         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
17027         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
17028         * doc/extend.texi: Likewise.
17029
17030 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17031
17032         PR target/44844
17033         * config/i386/i386.md (rdrand<mode>): Changed to expand to
17034         retry if the carry flag isn't valid.
17035         (rdrand<mode>_1): New.
17036
17037 2010-07-07  Richard Guenther  <rguenther@suse.de>
17038
17039         PR middle-end/44790
17040         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
17041         for expanding the constant offset for MEM_REFs.
17042
17043 2010-07-07  Richard Guenther  <rguenther@suse.de>
17044
17045         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
17046         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
17047         * gimple.h (is_gimple_operand): Remove.
17048         * gimple.c (is_gimple_operand): Likewise.
17049         (walk_gimple_op): Fix wi->val_only setting for calls.
17050         * tree-cfg.c (verify_gimple_call): Fix argument validation.
17051         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
17052         invalid gimple calls.
17053
17054 2010-07-06  Jan Hubicka  <jh@suse.cz>
17055
17056         * lto-cgraph.c (output_cgraph): Add missing declaration.
17057
17058 2010-07-06  Jan Hubicka  <jh@suse.cz>
17059
17060         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
17061         partition.
17062
17063 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
17064
17065         * doc/gimple.texi (GIMPLE_DEBUG): Document.
17066         * doc/rtl.texi (Debug Information): New node.
17067         (NOTE_INSN_VAR_LOCATION): Document.
17068         (debug_insn): Likewise.
17069         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
17070
17071 2010-07-07  Jan Hubicka  <jh@suse.cz>
17072
17073         With parts by Richard Guenther.
17074
17075         PR middle-end/44813
17076         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
17077         for functions passed by reference.
17078         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
17079         in memory when passed by reference.
17080         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
17081         beggining.
17082         * ipa-split.c (split_function): Cleanup way return value is passed;
17083         handle SSA DECL_BY_REFERENCE retvals.
17084         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
17085         DECL_BY_REFERENCE is set.
17086         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
17087         find_what_p_points_to): Handle RESULT_DECL.
17088         * tree-inline.c (declare_return_variable): Get new entry_block argument;
17089         when passing by reference ensure that RESULT_DECL is gimple_val.
17090         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
17091         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
17092
17093 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17094
17095         PR rtl-optimization/44787
17096         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
17097         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
17098
17099 2010-07-06  Jan Hubicka  <jh@suse.cz>
17100
17101         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
17102         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
17103         with body can prevail.
17104         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
17105         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
17106         * cgraph.c (cgraph_get_node_or_alias): New function.
17107         * cgraph.h (cgraph_get_node_or_alias): Declare.
17108
17109 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
17110
17111         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
17112         support.
17113         (ix86_expand_prologue): Likewise.
17114         (ix86_handle_fndecl_attribute): Likewise.
17115         (ix86_asm_declare_function_name): New function for
17116         ASM_DECLARE_FUNCTION_NAME.
17117         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
17118         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
17119         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
17120         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
17121         * doc/extend.texi: Adjust documentation about ms_hook_prologue
17122         attribute.
17123
17124 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17125
17126         * config/i386/i386.md (immediate_operand): New mode attribute.
17127
17128         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
17129         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
17130         using P mode iterator.
17131         (pro_epilogue_adjust_stack_di_2): Rename from
17132         pro_epilogue_adjust_stack_rex64_2.
17133
17134         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
17135
17136 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17137
17138         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
17139         through gen_mov_insv_1 function pointer.
17140         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
17141         gen_truncxf<mode>2 through gen_truncxf function pointer.
17142         (remainder<mode>3): Ditto.
17143         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
17144         (allocate_stack): Call gen_allocate_stack_worker_64 or
17145         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
17146         function pointer.
17147         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
17148         function pointer.
17149
17150 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17151
17152         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
17153         operand constraint instead of <r><i>m.
17154
17155 2010-07-06  Richard Guenther  <rguenther@suse.de>
17156
17157         PR middle-end/44828
17158         * convert.c (convert_to_integer): Watch out for overflowing
17159         MULT_EXPR as well.
17160
17161 2010-07-05  Jan Hubicka  <jh@suse.cz>
17162
17163         * lto-streamer.c (write_symbol_vec): Rename to ...
17164         (write_symbol) ... this one; write only symbol given and when
17165         present in cache. Sanity check that what is defined is present
17166         in cgraph/varpool with body/finalized decl.
17167         (write_symbols_of_kind): Remove.
17168         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
17169         pairs to produce symtab.
17170         (produce_asm_for_decls): Update call of produce_symtab; don't do so
17171         when doing WPA streaming.
17172
17173 2010-07-05  Jan Hubicka  <jh@suse.cz>
17174
17175         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
17176         function is still available to fold into.
17177
17178 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17179
17180         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
17181         * function.h (struct_function): Change type of local_decls field
17182         to a VEC.
17183         (add_local_decl): New function.
17184         (FOR_EACH_LOCAL_DECL): New macro.
17185         * cfgexpand.c (init_vars_expansion): Adjust for new type of
17186         cfun->local_decls.
17187         (estimated_stack_frame_size): Likewise.
17188         (expand_used_vars): Likewise.
17189         * cgraphbuild.c (build_cgraph_edges): Likewise.
17190         * function.c (instantiate_decls_1): Likewise.
17191         * ipa-struct-reorg.c (build_data_structure): Likewise.
17192         * ipa-type-escape.c (analyze_function): Likewise.
17193         * lto-streamer-in.c (input_function): Likewise.
17194         * lto-streamer-out.c (output_function): Likewise.
17195         * tree-ssa-live.c (remove_unused_locals): Likewise.
17196         * tree.c (free_lang_data_in_decl): Likewise.
17197         (find_decls_types_in_node): Likewise.
17198         * omp-low.c (remove_exit_barrier): Likewise.
17199         (expand_omp_taskreg): Likewise.
17200         (list2chain): Rename to...
17201         (vec2chain): ...this.  Adjust.
17202         * cgraphunit.c (assemble_thunk): Call add_local_decl.
17203         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
17204         * gimple-low.c (record_vars_into): Likewise.
17205         * tree-inline.c (remap_decls): Likewise.
17206         (declare_return_variable): Likewise.
17207         (declare_inline_vars): Likewise.
17208         (copy_forbidden): Adjust for new type of cfun->local_decls.
17209         (add_local_variables): New function.
17210         (expand_call_inline): Call it.
17211         (tree_function_versioning): Likewise.
17212
17213 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
17214
17215         AVX Programming Reference (June, 2010)
17216         * config/i386/cpuid.h (bit_F16C): New.
17217         (bit_RDRND): Likewise.
17218         (bit_FSGSBASE): Likewise.
17219
17220         * config/i386/i386-builtin-types.def: Add
17221         "DEF_FUNCTION_TYPE (UINT16)", function types for
17222         float16 <-> float conversions and
17223         "DEF_FUNCTION_TYPE (VOID, UINT64)".
17224
17225         * config/i386/i386-c.c (ix86_target_macros_internal): Support
17226         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
17227         OPTION_MASK_ISA_F16C.
17228
17229         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
17230         (OPTION_MASK_ISA_RDRND_SET): Likewise.
17231         (OPTION_MASK_ISA_F16C_SET): Likewise.
17232         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
17233         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
17234         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
17235         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
17236         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
17237         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
17238         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
17239         (override_options): Handle them.
17240         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
17241         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
17242         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
17243         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
17244         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
17245         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
17246         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
17247         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
17248         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
17249         (bdesc_args): Likewise.
17250         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
17251         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
17252         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
17253         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
17254         Handle non-memory store.
17255
17256         * config/i386/i386.h (TARGET_FSGSBASE): New.
17257         (TARGET_RDRND): Likewise.
17258         (TARGET_F12C): Likewise.
17259
17260         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
17261         (UNSPEC_VCVTPS2PH): Likewise.
17262         (UNSPECV_RDFSBASE): Likewise.
17263         (UNSPECV_RDGSBASE): Likewise.
17264         (UNSPECV_WRFSBASE): Likewise.
17265         (UNSPECV_WRGSBASE): Likewise.
17266         (UNSPECV_RDRAND): Likewise.
17267         (rdfsbase<mode>): Likewise.
17268         (rdgsbase<mode>): Likewise.
17269         (wrfsbase<mode>): Likewise.
17270         (wrgsbase<mode>): Likewise.
17271         (rdrand<mode>): Likewise.
17272
17273         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
17274
17275         * config/i386/immintrin.h (_rdrand_u16): New.
17276         (_rdrand_u32): Likewise.
17277         (_readfsbase_u32): Likewise.
17278         (_readfsbase_u64): Likewise.
17279         (_readgsbase_u32): Likewise.
17280         (_readgsbase_u64): Likewise.
17281         (_writefsbase_u32): Likewise.
17282         (_writefsbase_u64): Likewise.
17283         (_writegsbase_u32): Likewise.
17284         (_writegsbase_u64): Likewise.
17285         (_rdrand_u64): Likewise.
17286         (_cvtsh_ss): Likewise.
17287         (_mm_cvtph_ps): Likewise.
17288         (_mm256_cvtph_ps): Likewise.
17289         (_cvtss_sh): Likewise.
17290         (_mm_cvtps_ph): Likewise.
17291         (_mm256_cvtps_ph): Likewise.
17292
17293         * config/i386/sse.md (vcvtph2ps): New.
17294         (*vcvtph2ps_load): Likewise.
17295         (vcvtph2ps256): Likewise.
17296         (vcvtps2ph): Likewise.
17297         (*vcvtps2ph): Likewise.
17298         (*vcvtps2ph_store): Likewise.
17299         (vcvtps2ph256): Likewise.
17300
17301         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
17302
17303         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
17304
17305 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
17306
17307         PR bootstrap/44512
17308         * genenums.c (main): Output include of insn-constants.h
17309         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
17310
17311 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
17312
17313         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
17314         (override_options): Initialize it.
17315         (ix86_expand_prologue): Use it.
17316
17317 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
17318
17319         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
17320
17321 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
17322
17323         * double-int.h (fit_double_type): Remove declaration.
17324         * double-int.c (fit_double_type): Remove function.
17325         * tree.h (int_fits_type_p): Adjust prototype.
17326         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
17327         instead of fit_double_type.
17328         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
17329         instead of fit_double_type and build_int_cst_wide.
17330         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
17331         instead of fit_double_type and build_int_cst_wide.
17332         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
17333         of fit_double_type.
17334
17335 2010-07-05  Jan Hubicka  <jh@suse.cz>
17336
17337         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
17338         in_other_partition.
17339         * lto-cgraph.c (referenced_from_other_partition_p,
17340         reachable_from_other_partition_p): Use in_other_partition flags.
17341         (output_node, output_varpool_node): COMDAT nodes always have private
17342         copies and thus are never used from other partition.
17343
17344 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
17345
17346         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
17347         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
17348         * config/ia64/ia64.c Include reload.h.
17349         (ia64_memory_move_cost): New function.
17350         (TARGET_MEMORY_MOVE_COST): Define.
17351         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
17352         memory_move_cost.
17353
17354 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
17355
17356         PR middle-end/42505
17357         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
17358         comments about cost model.
17359         (try_add_cand_for):  Add second strategy for choosing initial set
17360         based on original IVs, controlled by ORIGINALP argument.
17361         (get_initial_solution): Add ORIGINALP argument.
17362         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
17363         (find_optimal_iv_set): Try two different strategies for choosing
17364         the IV set, and return the one with lower cost.
17365
17366 2010-07-05  Richard Guenther  <rguenther@suse.de>
17367
17368         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
17369
17370 2010-07-05  Richard Guenther  <rguenther@suse.de>
17371
17372         * tree.c (reference_alias_ptr_type): New function.
17373         * tree.h (reference_alias_ptr_type): Declare.
17374         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
17375         allow non-TARGET_MEM_REF new refs.
17376         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
17377         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
17378         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
17379         (create_mem_ref): Get alias pointer type.  Adjust calls to
17380         create_mem_ref_raw.
17381         (maybe_fold_tmr): Likewise.
17382         * tree-flow.h (create_mem_ref): Adjust prototype.
17383
17384 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
17385
17386         PR c++/44808
17387         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
17388         *from_p is VAR_DECL.
17389
17390 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17391
17392         * tree.h (build_call_list): Remove.
17393         * tree.c (build_call_list): Remove.
17394
17395 2010-07-05  Richard Guenther  <rguenther@suse.de>
17396
17397         * double-int.h (double_int_sub): Declare.
17398         * double-int.c (double_int_sub): New function.
17399         * dwarf2out.c (field_byte_offset): Use it.
17400         * fixed-value.c (do_fixed_add): Likewise.
17401         (do_fixed_multiply): Likewise.
17402         (do_fixed_divide): Likewise.
17403         * tree-predcom.c (add_ref_to_chain): Likewise.
17404         (determine_roots_comp): Likewise.
17405         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
17406
17407 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17408
17409         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
17410         implementations.
17411
17412 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
17413
17414         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
17415         * arm-modes.def (CC_NOTB): Don't define.
17416         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
17417         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
17418         (LTUGEU): New code_iterator.
17419         (cnb, optab): New corresponding code_attrs.
17420         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
17421         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
17422         using LTUGEU.
17423         (addsi3_carryin_shift_<optab>): Likewise.
17424         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
17425         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
17426         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
17427         (subsi3_compare): Renamed from subsi3_compare0_c.
17428         Change CC_NOTB to CC.
17429         (arm_subsi3_insn): Allow constants for operand 0.
17430         (compare_scc peephole for eq case): New.
17431         (compare_scc splitters): Change CC_NOTB to CC.
17432
17433 2010-07-05  Richard Guenther  <rguenther@suse.de>
17434
17435         * tree-ssa-loop-im.c (for_each_index): Do not handle
17436         ALIGN_INDIRECT_REF.
17437         (gen_lsm_tmp_name): Likewise.
17438         * tree-dump.c (dequeue_and_dump): Likewise.
17439         * tree-pretty-print.c (dump_generic_node): Likewise.
17440         (op_code_prio): Likewise.
17441         (op_symbol_code): Likewise.
17442         * tree.c (staticp): Likewise.
17443         (build1_stat): Likewise.
17444         * tree.h (INDIRECT_REF_P): Likewise.
17445         * fold-const.c (maybe_lvalue_p): Likewise.
17446         (operand_equal_p): Likewise.
17447         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
17448         (ao_ref_init_from_vn_reference): Likewise.
17449         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
17450         (find_interesting_uses_address): Likewise.
17451         * dwarf2out.c (loc_list_from_tree): Likewise.
17452         * gimplify.c (gimplify_expr): Likewise.
17453         * tree-eh.c (tree_could_trap_p): Likewise.
17454         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
17455         * cfgexpand.c (expand_debug_expr): Likewise.
17456         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
17457         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
17458         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
17459         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
17460         * tree-ssa-operands.c (get_expr_operands): Likewise.
17461         * expr.c (safe_from_p): Likewise.
17462         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
17463         * tree-vect-data-refs.c (vect_setup_realignment): Build
17464         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
17465         * tree-vect-stmts.c (vectorizable_load): Likewise.
17466         * tree.def (ALIGN_INDIRECT_REF): Remove.
17467
17468 2010-07-05  Richard Guenther  <rguenther@suse.de>
17469
17470         PR tree-optimization/44784
17471         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
17472         for inserted stmts.
17473         (find_or_generate_expression): Fix SCCVN insertion check.
17474
17475 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
17476
17477         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
17478         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
17479         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
17480         directives.
17481
17482 2010-07-05  Ira Rosen  <irar@il.ibm.com>
17483
17484         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
17485         statements that are not vectorized.
17486         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
17487         in INSIDE_COST.
17488
17489 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
17490
17491         PR bootstrap/44820
17492         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
17493
17494 2010-07-05  Richard Guenther  <rguenther@suse.de>
17495
17496         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
17497         RESULT_DECLs properly.
17498
17499 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
17500
17501         PR rtl-optimization/44695
17502         * config/i386/i386.md (extract_code): Removed.
17503         (<u>divmodqi4): Likewise.
17504         (divmodqi4): New.
17505         (udivmodqi4): Likewise.
17506         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
17507         (udivmodhiqi3): Likewise.
17508
17509 2010-07-04  Jan Hubicka  <jh@suse.cz>
17510
17511         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
17512
17513 2010-07-04  Jan Hubicka  <jh@suse.cz>
17514
17515         * cgraphunit.c (init_cgraph): Only initialize dump file if it
17516         is not already initialized.
17517
17518 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
17519
17520         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
17521         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
17522         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
17523         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
17524         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
17525         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
17526         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
17527         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
17528         (sync_new_nand_optab): Redefine as macros.
17529         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
17530         Delete.
17531         (direct_optab_index): New enum.
17532         (direct_optab_d): New structure.
17533         (direct_optab): New typedef.
17534         (direct_optab_table): Declare.
17535         (direct_optab_handler, set_direct_optab_handler): New functions.
17536         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
17537         (sync_lock_release_optab): New macros.
17538         * optabs.c (direct_optab_table): New variable.
17539         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
17540         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
17541         cmpstr_optab and cmpstrn_optab.
17542         (emit_conditional_move): Likewise for movcc_optab.
17543         (can_conditionally_move_p): Likewise for movcc_gen_code.
17544         (init_insn_codes): Clear direct_optab_table.
17545         (init_optabs): Don't initialize the new "direct optabs" here.
17546         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
17547         vcond_gen_code.
17548         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
17549         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
17550         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
17551         (expand_sync_operation): Likewise other sync_*_optabs.
17552         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
17553         to sync_compare_and_swap_optab.
17554         (expand_sync_lock_test_and_set): Use direct_optab_handler for
17555         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
17556         to the names of both.
17557         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
17558         cmpstr_optab and cmpstrn_optab.
17559         (expand_builtin_lock_release): Likewise sync_lock_release.
17560         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
17561         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
17562         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
17563         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
17564         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
17565         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
17566         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
17567         (sync_lock_test_and_set, sync_lock_release): Delete.
17568         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
17569         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
17570         * genopinit.c (optabs): Use set_direct_optab_handler for the new
17571         macro optabs.
17572         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
17573         the "optab" local variable.  Use direct_optab_handler for optab and
17574         sync_compare_and_swap_optab.
17575         * reload1.c (reload_in_optab, reload_out_optab): Delete.
17576         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
17577         reload_in_optab and reload_out_optab.
17578         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
17579         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
17580         * config/pa/pa.c (pa_secondary_reload): Likewise.
17581         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
17582         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
17583         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
17584         (VMSupportsCS8_builtin): Likewise.
17585
17586 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
17587
17588         * optabs.h (optab_handlers): Change type of insn_code to int.
17589         (optab_handler, set_optab_handler, convert_optab_handler)
17590         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
17591         CODE_FOR_nothing".
17592         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
17593         (init_insn_codes): Zero both the above arrays.
17594         (init_optabs): Never call init_insn_codes first time around.
17595
17596 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
17597
17598         * optabs.h (optab_handler, convert_optab_handler): Turn into
17599         inline functions that return an insn code.
17600         (set_optab_handler, set_convert_optab_handler): New functions.
17601         * builtins.c: Replace optab_handler(X)->insn_code with
17602         optab_handler or set_optab_handler thoughout.  Likewise
17603         convert_optab_handler(X)->insn_code with convert_optab_handler
17604         and set_convert_optab_handler.
17605         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
17606         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
17607         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
17608         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
17609         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
17610         config/spu/spu.c: Likewise.
17611
17612 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
17613
17614         PR target/44531
17615         * config.gcc (sh*-*-*): Use regular expressions instead of
17616         the 'i' modifier for sed substitutions.
17617
17618 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
17619
17620         * gimple.c (gimple_body): Comments added.
17621
17622 2010-07-04  Richard Guenther  <rguenther@suse.de>
17623
17624         PR middle-end/44809
17625         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
17626         of an INDIRECT_REF.
17627
17628 2010-07-04  Richard Guenther  <rguenther@suse.de>
17629
17630         PR tree-optimization/44479
17631         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
17632         extra SSA name copy statements which preserves points-to
17633         information.
17634         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17635         Copy points-to information for all pointers.  Properly handle
17636         MEM_REFs.
17637         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
17638         copy statements.
17639         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
17640         dependency.
17641
17642 2010-07-04  Richard Guenther  <rguenther@suse.de>
17643
17644         PR middle-end/44785
17645         * tree-inline.c (initialize_inlined_parameters): Do not
17646         re-use pointer-map slot over remap_type call.
17647
17648 2010-07-04  Richard Guenther  <rguenther@suse.de>
17649
17650         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
17651
17652 2010-07-04  Richard Guenther  <rguenther@suse.de>
17653
17654         PR tree-optimization/44656
17655         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
17656         again after value-replacing in the defintions lhs.
17657
17658 2010-07-04  Ira Rosen  <irar@il.ibm.com>
17659             Revital Eres  <eres@il.ibm.com>
17660
17661         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
17662         Document new arguments.
17663         * doc/tm.texi: Regenerate.
17664         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
17665         Handle unaligned store.
17666         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
17667         * target.def (builtin_vectorization_cost): Add new arguments.
17668         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
17669         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
17670         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
17671         (vect_vfa_segment_size): Fix indentation.
17672         * tree-vectorizer.h (struct _vect_peel_info): New.
17673         (struct _vect_peel_extended_info): New.
17674         (struct _loop_vec_info): Add new field for peeling hash table and a
17675         macro for its access.
17676         (VECT_MAX_COST): Define.
17677         (vect_get_load_cost): Declare.
17678         (vect_get_store_cost, vect_get_known_peeling_cost,
17679         vect_get_single_scalar_iteraion_cost): Likewise.
17680         (vect_supportable_dr_alignment): Add new argument.
17681         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
17682         field.
17683         (destroy_loop_vec_info): Free peeling hash table.
17684         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
17685         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
17686         vect_analyze_slp. Fix indentation.
17687         (vect_get_single_scalar_iteraion_cost): New function.
17688         (vect_get_known_peeling_cost): Likewise.
17689         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
17690         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
17691         statement. Move outside cost calculation inside unknown peeling case.
17692         Call vect_get_known_peeling_cost for known amount of peeling.
17693         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
17694         reference to the print message of forced alignment.
17695         (vect_verify_datarefs_alignment): Update call to
17696         vect_supportable_dr_alignment.
17697         (vect_get_data_access_cost): New function.
17698         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
17699         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
17700         vect_peeling_hash_choose_best_peeling): Likewise.
17701         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
17702         to store all the accesses in the loop and find best possible access to
17703         align using peeling for known alignment case. For unknown alignment
17704         check if stores are preferred or if peeling is worthy.
17705         (vect_find_same_alignment_drs): Analyze pairs of loads too.
17706         (vect_supportable_dr_alignment): Add new argument and check aligned
17707         accesses according to it.
17708         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
17709         (cost_for_stmt): Call vect_get_stmt_cost.
17710         (vect_model_simple_cost): Likewise.
17711         (vect_model_store_cost): Call vect_get_stmt_cost. Call
17712         vect_get_store_cost to calculate the cost of the statement.
17713         (vect_get_store_cost): New function.
17714         (vect_model_load_cost): Call vect_get_stmt_cost. Call
17715         vect_get_load_cost to calculate the cost of the statement.
17716         (vect_get_load_cost): New function.
17717         (vectorizable_store): Update call to vect_supportable_dr_alignment.
17718         (vectorizable_load): Likewise.
17719         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
17720         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
17721         arguments. Handle unaligned store.
17722         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
17723         (rs6000_builtin_support_vector_misalignment): Return true for word and
17724         double word alignments for VSX.
17725         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
17726         vect_supportable_dr_alignment and builtin_vectorization_cost.
17727
17728 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17729
17730         PR target/44597
17731         * config/pa/predicates.md (prefetch_cc_operand): Remove.
17732         (prefetch_nocc_operand): Likewise.
17733         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
17734         (prefetch_20): New insn.
17735         (prefetch_cc): Remove.
17736         (prefetch_nocc): Likewise.
17737
17738 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17739
17740         * expr.c (vector_mode_valid_p): Move to c-common.c.
17741         * expr.h (vector_mode_valid_p): Do not declare here.
17742         * system.h: Poison GCC_EXPR_H in front-ends.
17743         * Makefile.in: Update dependencies.
17744
17745 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17746
17747         PR target/44705
17748         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
17749
17750 2010-07-03  Jan Hubicka  <jh@suse.cz>
17751
17752         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
17753         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
17754         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
17755         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
17756         Likewise.
17757
17758         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
17759         Update timevars.V
17760         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
17761         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
17762         TV_IPA_LTO_DECL_OUT): New.
17763         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
17764
17765 2010-07-03  Jan Hubicka  <jh@suse.cz>
17766
17767         * ipa-inline.c (update_edge_key): Break out from ...
17768         update_callers_keys): ... here;
17769         (update_callee_keys): Update only the edges from caller to callee.
17770         (update_all_calle_keys): Do what update_calle_keys did.
17771         (decide_inlining_of_small_functions): Avoid recomputing of all
17772         callees when badness increase.
17773
17774 2010-07-03  Jie Zhang  <jie@codesourcery.com>
17775
17776         * config/arm/arm.c (arm_attr_length_move_neon): New.
17777         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
17778         * config/arm/neon.md (define_mode_attr V_slen): Remove.
17779         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
17780         to compute length attribute.
17781
17782 2010-07-03  Jie Zhang  <jie@codesourcery.com>
17783
17784         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
17785         as predicate for operand 1 and remove its constraint.
17786         * config/arm/predicates.md (vfp_register_operand): New.
17787         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
17788         (*push_fp_multi): Likewise.
17789
17790 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
17791
17792         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
17793
17794 2010-07-03  Jan Hubicka  <jh@suse.cz>
17795
17796         * config/i386/i386.c (override_options): Revert accidental commit.
17797
17798 2010-07-02  Le-Chun Wu  <lcwu@google.com>
17799
17800         PR c++/44128
17801         * doc/invoke.texi: Update documentation of -Wshadow.
17802
17803 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
17804             Julian Brown  <julian@codesourcery.com>
17805             Sandra Loosemore  <sandra@codesourcery.com>
17806
17807         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
17808         comparisons.  Adjust to take both operands.
17809         (arm_select_cc_mode): Handle DImode comparisons.
17810         (arm_gen_compare_reg): Generate a scratch register for DImode
17811         comparisons which require one.  Use xor for Thumb equality checks.
17812         (arm_const_double_by_immediates): New.
17813         (arm_print_operand): Allow 'Q' and 'R' for constants.
17814         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
17815         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
17816         arm_canonicalize_comparison.
17817         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
17818         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
17819         prototype.
17820         (arm_const_double_by_immediates): Declare.
17821         * config/arm/constraints.md (Di): New constraint.
17822         * config/arm/predicates.md (arm_immediate_di_operand)
17823         (arm_di_operand, cmpdi_operand): New.
17824         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
17825         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
17826         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
17827         (cstoredi4): Handle non-Cirrus also.
17828
17829 2010-07-02  Julian Brown  <julian@codesourcery.com>
17830             Sandra Loosemore  <sandra@codesourcery.com>
17831
17832         PR target/43703
17833         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
17834         (smax<mode>3): Disable for NEON float modes when
17835         flag_unsafe_math_optimizations is false.
17836         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
17837         (*mul<mode>3_neon)
17838         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
17839         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
17840         for NEON float modes when flag_unsafe_math_optimizations is false.
17841         (quad_halves_<code>v4sf): Only enable if
17842         flag_unsafe_math_optimizations is true.
17843         * doc/invoke.texi (ARM Options): Add note about floating point
17844         vectorization requiring -funsafe-math-optimizations.
17845
17846 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
17847             Julian Brown  <julian@codesourcery.com>
17848
17849         * config/arm/neon.md (UNSPEC_VABA): Delete.
17850         (UNSPEC_VABAL): Delete.
17851         (UNSPEC_VABS): Delete.
17852         (UNSPEC_VMUL_N): Delete.
17853         (adddi3_neon): New.
17854         (subdi3_neon): New.
17855         (mul<mode>3add<mode>_neon): Make the pattern named.
17856         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
17857         (neon_vadd<mode>): Replace with define_expand, and move the remaining
17858         unspec parts...
17859         (neon_vadd<mode>_unspec): ...to this.
17860         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
17861         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
17862         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
17863         (neon_vaba<mode>): Rewrite in terms of vabd.
17864         (neon_vabal<mode>): Rewrite in terms of vabdl.
17865         (neon_vabs<mode>): Rewrite without unspec.
17866         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
17867         (*arm_subdi3): Likewise.
17868         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
17869         No_op attribute to disable assembly output checks.
17870         * config/arm/arm_neon.h: Regenerated.
17871         * doc/arm-neon-intrinsics.texi: Regenerated.
17872
17873 2010-07-02  Jan Hubicka  <jh@suse.cz>
17874
17875         * ipa-split.c (split_function): For aggregate values, set the return
17876         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
17877         *<retval> = fncall.part ().
17878         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
17879
17880 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
17881
17882         * config/arm/neon.md (UNSPEC_VAND): Delete.
17883         (UNSPEC_VBIC): Delete.
17884         (UNSPEC_VCLZ): Delete.
17885         (UNSPEC_VCNT): Delete.
17886         (UNSPEC_VEOR): Delete.
17887         (UNSPEC_VORN): Delete.
17888         (UNSPEC_VORR): Delete.
17889         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
17890         core registers too.
17891         (anddi3_neon): Likewise.
17892         (orndi3_neon): Likewise.
17893         (bicdi3_neon): Likewise.
17894         (xordi3_neon): Likewise.
17895         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
17896         rid of unspec and handle unused operand.
17897         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
17898         * config/arm/predicates.md (imm_for_neon_logic_operand):
17899         Require TARGET_NEON.
17900         (imm_for_neon_inv_logic_operand): Likewise.
17901         * config/arm/arm.md (define_split for logical_binary_operator):
17902         Disable for NEON registers.
17903         (anddi3): Add new define_expand, and rename the insn.  Disable
17904         this insn for NEON, where anddi3_neon now applies.
17905         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
17906         (iordi3): As for anddi3.
17907         (xordi3): Likewise.
17908         * config/arm/neon.ml (Vand): Split DImode variants and mark them
17909         as No_op to disable testing for exact instruction match.
17910         (Vorr): Likewise.
17911         (Veor): Likewise.
17912         (Vbic): Likewise.
17913         (Vorn): Likewise.
17914         * config/arm/arm_neon.h: Regenerated.
17915         * doc/arm-neon-intrinsics.texi: Regenerated.
17916
17917 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
17918
17919         * expr.h (emit_stack_probe): Declare.
17920         * explow.c (emit_stack_probe): Make global.
17921         (anti_adjust_stack_and_probe): Fix comments.
17922         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
17923         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17924         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17925         * config/sparc/sparc.c: Include except.h.
17926         (sparc_emit_probe_stack_range): New function.
17927         (output_probe_stack_range): Likewise.
17928         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
17929         built-in stack checking is enabled.
17930         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
17931         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
17932         (probe_stack_range): New insn.
17933
17934 2010-07-02  Richard Guenther  <rguenther@suse.de>
17935
17936         PR target/43958
17937         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
17938         for argument alignment.
17939
17940 2010-07-02  Jan Hubicka  <jh@suse.cz>
17941
17942         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
17943         walk backwards from entry_bb to check only those basic block of header
17944         that might lead to execution of split part.
17945         (consider_split) ... here.
17946         (find_return_bb): Allow assignment in return BB.
17947         (find_retval): New.
17948         (split_function): Fix name of cloned function; take care of updating
17949         return value in return_bb containing move.
17950
17951 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
17952
17953         PR target/44771
17954         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
17955         used variable insn.
17956
17957 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
17958
17959         * implicit-zee.c (combine_reaching_defs): Fix long lines.
17960         (is_set_with_extension_DI): Delete.
17961         (struct zero_extend_info): New structure.
17962         (add_removable_zero_extend): New function.
17963         (find_removable_zero_extends): Use note_stores to find SETs.
17964         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
17965
17966 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
17967
17968         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
17969         is_miss_rate_acceptable. Pull total_positions computation
17970         out of the loops.  Early return if miss_positions exceeds
17971         the acceptable threshold.
17972         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
17973         is_miss_rate_acceptable after renaming of compute_miss_rate.
17974
17975 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
17976
17977         PR middle-end/44576
17978         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
17979         of 1000) for miss rate if the address diference is greater than or
17980         equal to the cache line size (the two reference will never hit the
17981         same cache line).
17982
17983 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
17984
17985         PR target/42835
17986         * config/arm/arm-modes.def (CC_NOTB): New mode.
17987         * config/arm/arm.c (get_arm_condition_code): Handle it.
17988         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
17989         * config/arm/arm.md (subsi3_compare0_c): New pattern.
17990         (compare_scc): Now a define_and_split.  Add a number of extra
17991         splitters before it.
17992
17993         PR target/42172
17994         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
17995         and ZERO_EXTEND.
17996         (arm_rtx_costs_1): Likewise.
17997         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
17998         * config/arm/arm.md (is_arch6): New attribute.
17999         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
18000         extendqisi2): Tighten the code somewhat, avoiding invalid
18001         RTL to occur in the expander patterns.
18002         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
18003         (thumb1_zero_extendhisi2_v6): Delete.
18004         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
18005         (thumb1_extendhisi2_v6): Delete.
18006         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
18007         (thumb1_extendqisi2_v6): Delete.
18008         (zero_extendhisi2 for register input splitter): New.
18009         (zero_extendqisi2 for register input splitter): New.
18010         (thumb1_extendhisi2 for register input splitter): New.
18011         (extendhisi2 for register input splitter): New.
18012         (extendqisi2 for register input splitter): New.
18013         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
18014         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
18015         and add support for a register alternative requiring a split.
18016         (thumb1_zero_extendqisi2): Likewise.
18017         (arm_zero_extendqisi2): Likewise.
18018         (arm_extendhisi2): Likewise.
18019         (arm_extendqisi2): Likewise.
18020
18021 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18022
18023         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
18024         instead of an unspec.
18025         (neon_expand_vector_init): Likewise.
18026         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
18027         (UNSPEC_VDUP_LANE): Delete.
18028         (UNSPEC VDUP_N): Delete.
18029         (UNSPEC_VGET_HIGH): Delete.
18030         (UNSPEC_VGET_LANE): Delete.
18031         (UNSPEC_VGET_LOW): Delete.
18032         (UNSPEC_VMVN): Delete.
18033         (UNSPEC_VSET_LANE): Delete.
18034         (V_double_vector_mode): New.
18035         (vec_set<mode>_internal): Make code emitted match that for the
18036         corresponding intrinsics.
18037         (vec_setv2di_internal): Likewise.
18038         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
18039         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
18040         (neon_vset_lane<mode>): Combine double and quad patterns and
18041         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
18042         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
18043         (neon_vdup_n<mode>): Rewrite RTL without unspec.
18044         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
18045         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
18046         with neon_vdup_lanev2di, adjusting the pattern from the latter
18047         to be predicable for consistency.
18048         (neon_vdup_lane<mode>_internal): New.
18049         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
18050         to avoid using an unspec.
18051         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
18052         (neon_vdup_lanev2di): Turn into a define_expand.
18053         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
18054         (neon_vget_high<mode>): Replace with....
18055         (neon_vget_highv16qi): New pattern using canonical RTL.
18056         (neon_vget_highv8hi): Likewise.
18057         (neon_vget_highv4si): Likewise.
18058         (neon_vget_highv4sf): Likewise.
18059         (neon_vget_highv2di): Likewise.
18060         (neon_vget_low<mode>): Replace with....
18061         (neon_vget_lowv16qi): New pattern using canonical RTL.
18062         (neon_vget_lowv8hi): Likewise.
18063         (neon_vget_lowv4si): Likewise.
18064         (neon_vget_lowv4sf): Likewise.
18065         (neon_vget_lowv2di): Likewise.
18066
18067         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
18068         test for this emitting vmov.
18069         (Vset_lane): Likewise.
18070         (Vdup_n): Likewise.
18071         (Vmov_n): Likewise.
18072
18073         * doc/arm-neon-intrinsics.texi: Regenerated.
18074
18075 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18076
18077         * config/arm/neon.md (vec_extractv2di): Correct error in register
18078         numbering to reconcile with neon_vget_lanev2di.
18079
18080 2010-07-02  Richard Guenther  <rguenther@suse.de>
18081
18082         * tree-ssa-structalias.c (pt_solution_set_var): New function.
18083         * tree-ssa-alias.h (pt_solution_set_var): Declare.
18084         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
18085         points-to information.
18086
18087 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
18088
18089         * config/s390/s390.c (override_options): Adopt prefetching
18090         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
18091
18092 2010-07-02  Jan Hubicka  <jh@suse.cz>
18093
18094         * df-problems.c (df_kill_notes): Do not collect dead  notes.
18095         (df_set_note): Just call add_reg_note.
18096         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
18097         df_create_unused_note): Do not deal with lists of old notes.
18098         (df_note_bb_compute): Likewise.
18099
18100 2010-07-02  Richard Guenther  <rguenther@suse.de>
18101
18102         * tree-ssa-structalias.c (find_func_aliases): Handle
18103         pointer alignment via BIT_AND_EXPR.
18104         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
18105
18106 2010-07-02  Richard Guenther  <rguenther@suse.de>
18107
18108         * tree-data-ref.c (initialize_data_dependence_relation): Handle
18109         mismatching number of dimensions properly.
18110
18111 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18112
18113         PR target/44707
18114         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
18115         (lo_sum (high ...) ...) patterns generated by earlier passes.
18116
18117 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18118
18119         * doc/install.texi (Prerequisites): Document Perl requirement on
18120         Solaris 2.
18121         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
18122
18123 2010-07-02  Richard Guenther  <rguenther@suse.de>
18124
18125         PR middle-end/44777
18126         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
18127
18128 2010-07-02  Jan Hubicka  <jh@suse.cz>
18129
18130         PR middle-end/44706
18131         * predict.c (predict_paths_for_bb): Handle case when control dependence
18132         BB has only abnormal edges.
18133
18134 2010-07-02  Richard Guenther  <rguenther@suse.de>
18135
18136         PR tree-optimization/44748
18137         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
18138         the embedded conversion in MEM_REFs.
18139
18140 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
18141
18142         * reload.c: Include toplev.h.
18143         * recog.c:  Likewise.
18144         * Makefile.in: Adjust dependencies.
18145
18146 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
18147
18148         PR debug/44694
18149         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
18150         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
18151
18152 2010-07-01  Richard Guenther  <rguenther@suse.de>
18153
18154         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
18155         types for offsets.
18156
18157 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
18158
18159         PR target/44732
18160         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
18161         Fix argument types.
18162
18163 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
18164
18165         PR target/44727
18166         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
18167         Make sure operand 0 dies.
18168
18169 2010-07-01  Richard Guenther  <rguenther@suse.de>
18170
18171         PR middle-end/42834
18172         PR middle-end/44468
18173         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
18174         * doc/generic.texi (References to storage): Document MEM_REF.
18175         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
18176         (print_call_name): Likewise.
18177         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
18178         (build_simple_mem_ref_loc): New function.
18179         (mem_ref_offset): Likewise.
18180         * tree.h (build_simple_mem_ref_loc): Declare.
18181         (build_simple_mem_ref): Define.
18182         (mem_ref_offset): Declare.
18183         * fold-const.c: Include tree-flow.h.
18184         (operand_equal_p): Handle MEM_REF.
18185         (build_fold_addr_expr_with_type_loc): Likewise.
18186         (fold_comparison): Likewise.
18187         (fold_unary_loc): Fold
18188         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
18189         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
18190         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
18191         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
18192         (ptr_deref_may_alias_ref_p_1): Likewise.
18193         (ao_ref_base_alias_set): Properly differentiate base object for
18194         offset and TBAA.
18195         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
18196         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
18197         (indirect_refs_may_alias_p): Likewise.
18198         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
18199         chasing code.
18200         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
18201         (call_may_clobber_ref_p_1): Likewise.
18202         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
18203         * expr.c (expand_assignment): Handle MEM_REF.
18204         (store_expr): Handle MEM_REFs from STRING_CSTs.
18205         (store_field): If expanding a MEM_REF of a non-addressable
18206         decl use bitfield operations.
18207         (get_inner_reference): Handle MEM_REF.
18208         (expand_expr_addr_expr_1): Likewise.
18209         (expand_expr_real_1): Likewise.
18210         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
18211         * alias.c (ao_ref_from_mem): Handle MEM_REF.
18212         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
18213         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
18214         (dr_analyze_indices): Likewise.
18215         (dr_analyze_alias): Likewise.
18216         (object_address_invariant_in_loop_p): Likewise.
18217         * gimplify.c (mark_addressable): Handle MEM_REF.
18218         (gimplify_cond_expr): Build MEM_REFs.
18219         (gimplify_modify_expr_to_memcpy): Likewise.
18220         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
18221         (gimple_fold_indirect_ref): Adjust.
18222         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
18223         * tree.def (MEM_REF): New tree code.
18224         * tree-dfa.c: Include toplev.h.
18225         (get_ref_base_and_extent): Handle MEM_REF.
18226         (get_addr_base_and_unit_offset): New function.
18227         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
18228         * gimple-fold.c (may_propagate_address_into_dereference): Handle
18229         MEM_REF.
18230         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
18231         accesses if the array has just one dimension.  Remove always true
18232         parameter.  Do not require type compatibility here.
18233         (maybe_fold_offset_to_component_ref): Remove.
18234         (maybe_fold_stmt_indirect): Remove.
18235         (maybe_fold_reference): Remove INDIRECT_REF handling.
18236         Fold back to non-MEM_REF.
18237         (maybe_fold_offset_to_address): Simplify.  Deal with type
18238         mismatches here.
18239         (maybe_fold_reference): Likewise.
18240         (maybe_fold_stmt_addition): Likewise.  Also handle
18241         &ARRAY + I in addition to &ARRAY[0] + I.
18242         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
18243         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
18244         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
18245         * tree-ssa.c (useless_type_conversion_p): Make most pointer
18246         conversions useless.
18247         (warn_uninitialized_var): Handle MEM_REF.
18248         (maybe_rewrite_mem_ref_base): New function.
18249         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
18250         to SSA form.
18251         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
18252         INDIRECT_REF handling.
18253         (copy_tree_body_r): Handle MEM_REF.
18254         * gimple.c (is_gimple_addressable): Adjust.
18255         (is_gimple_address): Likewise.
18256         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
18257         invariant base are invariant.
18258         (is_gimple_min_lval): Adjust.
18259         (is_gimple_mem_ref_addr): New function.
18260         (get_base_address): Handle MEM_REF.
18261         (count_ptr_derefs): Likewise.
18262         (get_base_loadstore): Likewise.
18263         * gimple.h (is_gimple_mem_ref_addr): Declare.
18264         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
18265         * tree-cfg.c (verify_address): New function, split out from ...
18266         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
18267         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
18268         INDIRECT_REFs.
18269         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
18270         INDIRECT_REF.  Allow conversions.
18271         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
18272         a register does not change its size.
18273         (verify_types_in_gimple_reference): Verify MEM_REF.
18274         (verify_gimple_assign_single): Disallow INDIRECT_REF.
18275         Handle MEM_REF.
18276         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
18277         New.
18278         (mark_address_taken): Handle MEM_REF.
18279         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
18280         (get_asm_expr_operands): Pass opf_not_non_addressable.
18281         (get_expr_operands): Handle opf_[not_]non_addressable.
18282         Handle MEM_REF.  Remove INDIRECT_REF handling.
18283         * tree-vrp.c (check_array_ref): Handle MEM_REF.
18284         (search_for_addr_array): Likewise.
18285         (check_array_bounds): Likewise.
18286         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
18287         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
18288         (ref_always_accessed_p): Likewise.
18289         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
18290         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
18291         Handle MEM_REF.
18292         * cgraphbuild.c (mark_load): Properly check for NULL result
18293         from get_base_address.
18294         (mark_store): Likewise.
18295         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
18296         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
18297         handling for MEM_REF.
18298         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
18299         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
18300         * builtins.c (stabilize_va_list_loc): Use the function ABI
18301         valist type if we couldn't canonicalize the argument type.
18302         Always dereference with the canonical va-list type.
18303         (maybe_emit_free_warning): Handle MEM_REF.
18304         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
18305         memmove to memcpy.
18306         * builtins.c (fold_builtin_memory_op): Use ref-all types
18307         for all memcpy foldings.
18308         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
18309         (build_outer_var_ref): Likewise.
18310         (scan_omp_1_op): Likewise.
18311         (lower_rec_input_clauses): Likewise.
18312         (lower_lastprivate_clauses): Likewise.
18313         (lower_reduction_clauses): Likewise.
18314         (lower_copyprivate_clauses): Likewise.
18315         (expand_omp_atomic_pipeline): Likewise.
18316         (expand_omp_atomic_mutex): Likewise.
18317         (create_task_copyfn): Likewise.
18318         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
18319         Remove old union trick.  Initialize constant offsets.
18320         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
18321         INDIRECT_REF.  Init base_alias_set properly.
18322         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
18323         (vn_reference_fold_indirect): Adjust for MEM_REFs.
18324         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
18325         for ARRAY_REFs.
18326         (may_insert): Remove.
18327         (visit_reference_op_load): Do not test may_insert.
18328         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
18329         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
18330         a field to store the constant offset this op applies.
18331         (run_scc_vn): Adjust prototype.
18332         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
18333         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
18334         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
18335         bother about volatile qualifiers on pointers.
18336         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
18337         * tree-ssa-loop-ivopts.c
18338         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
18339         (strip_offset_1): Likewise.
18340         (find_interesting_uses_address): Replace INDIRECT_REF handling with
18341         MEM_REF handling.
18342         (get_computation_cost_at): Likewise.
18343         * ipa-pure-const.c (check_op): Handle MEM_REF.
18344         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
18345         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
18346         and constants.
18347         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
18348         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
18349         (eliminate_local_variables_1): Likewise.
18350         (create_call_for_reduction_1): Likewise.
18351         (create_loads_for_reductions): Likewise.
18352         (create_loads_and_stores_for_name): Likewise.
18353         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
18354         (ssa_accessed_in_tree): Handle MEM_REF.
18355         (ssa_accessed_in_assign_rhs): Likewise.
18356         (update_type_size): Likewise.
18357         (analyze_accesses_for_call_stmt): Likewise.
18358         (analyze_accesses_for_assign_stmt): Likewise.
18359         (transform_access_sites): Likewise.
18360         (transform_allocation_sites): Likewise.
18361         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
18362         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
18363         not handle INDIRECT_REF.
18364         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
18365         (cond_store_replacement): Likewise.
18366         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
18367         MEM_REF, no not handle INDIRECT_REFs.
18368         (insert_into_preds_of_block): Properly initialize avail.
18369         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
18370         for ARRAY_REFs.  Properly handle reference lookups that
18371         require a bit re-interpretation.
18372         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
18373         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
18374         (build_ref_for_offset_1): Remove.
18375         (build_ref_for_offset): Build MEM_REFs.
18376         (gate_intra_sra): Disable for now.
18377         (sra_ipa_modify_expr): Handle MEM_REF.
18378         (ipa_early_sra_gate): Disable for now.
18379         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
18380         MEM_REF handling.
18381         (disqualify_base_of_expr): Likewise.
18382         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
18383         MEM_REF handling.
18384         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
18385         Use mem_ref_offset.  Remove bogus folding.
18386         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
18387         (make_fancy_name_1): Add support for MEM_REF.
18388         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
18389         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
18390         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
18391         (compute_complex_ancestor_jump_func): Likewise.
18392         (ipa_analyze_virtual_call_uses): Likewise.
18393         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
18394         INDIRECT_REF folding with more generalized MEM_REF folding.
18395         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
18396         (forward_propagate_addr_into_variable_array_index): Also handle
18397         &ARRAY + I in addition to &ARRAY[0] + I.
18398         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
18399         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
18400         creates assignments with overlap.
18401         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
18402         (get_frame_field): Likewise.
18403         (get_nonlocal_debug_decl): Likewise.
18404         (convert_nonlocal_reference_op): Likewise.
18405         (struct nesting_info): Add mem_refs pointer-set.
18406         (create_nesting_tree): Allocate it.
18407         (convert_local_reference_op): Insert to be folded mem-refs.
18408         (fold_mem_refs): New function.
18409         (finalize_nesting_tree_1): Perform defered folding of mem-refs
18410         (free_nesting_tree): Free the pointer-set.
18411         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
18412         (vectorizable_load): Likewise.
18413         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
18414         (propagate_with_phi): Likewise.
18415         * tree-object-size.c (addr_object_size): Handle MEM_REFs
18416         instead of INDIRECT_REFs.
18417         (compute_object_offset): Handle MEM_REF.
18418         (plus_stmt_object_size): Handle MEM_REF.
18419         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
18420         for &MEM_REF.
18421         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
18422         (symbol_marked_for_renaming): Likewise.
18423         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
18424         (fold-const.o): Add $(TREE_FLOW_H).
18425         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
18426         (find_func_clobbers): Likewise.
18427         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
18428         (decompose_access): Likewise.
18429         (replace_field_acc): Likewise.
18430         (replace_field_access_stmt): Likewise.
18431         (insert_new_var_in_stmt): Likewise.
18432         (get_stmt_accesses): Likewise.
18433         (reorg_structs_drive): Disable.
18434         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
18435         (ix86_canonical_va_list_type): Likewise.
18436
18437 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
18438
18439         PR other/44566
18440         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
18441         * target.def (struct gcc_target): Replace enum reg_class with
18442         reg_class_t in hook argument / return types.
18443         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
18444         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
18445         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
18446         * targhooks.h (default_branch_target_register_class): Likewise.
18447         (default_ira_cover_classes, default_secondary_reload): Likewise.
18448         (default_memory_move_cost, default_register_move_cost): Likewise.
18449         * targhooks.c (default_branch_target_register_class): Likewise.
18450         (default_ira_cover_classes, default_secondary_reload): Likewise.
18451         (default_memory_move_cost, default_register_move_cost): Likewise.
18452         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
18453         * bt-load.c (branch_target_load_optimize): Likewise.
18454         * ira.c (setup_cover_and_important_classes): Likewise.
18455         * ira-costs.c (copy_cost): Likewise.
18456         * reload1.c (emit_input_reload_insns): Likewise.
18457         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
18458         * config/frv/frv.c (frv_secondary_reload): Likewise.
18459         * config/s390/s390.c (s390_secondary_reload): Likewise.
18460         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
18461         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
18462         (ix86_register_move_cost): Likewise.
18463         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
18464         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
18465         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
18466         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
18467         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
18468         (rs6000_ira_cover_classes): Likewise.
18469         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
18470         * config/picochip/picochip-protos.h (picochip_secondary_reload):
18471         Likewise.
18472         * config/pa/pa.c (pa_secondary_reload): Likewise.
18473         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
18474         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
18475         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
18476         * doc/tm.texi: Regenerate.
18477
18478 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
18479
18480         PR bootstrrap/44726
18481         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
18482         use.
18483         (build_alias_set_optimal_p): Likewise.
18484         (build_base_obj_set_for_drs): Likewise.
18485
18486 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
18487
18488         * target.def: Remove comment about licensing problems of function
18489         declarations.
18490
18491         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
18492         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
18493         * doc/tm.texi: Regenerate.
18494
18495         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
18496         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
18497
18498         * target.def (enum_va_list_p): Use DEFHOOK.
18499         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
18500         Rename ptype to ptree.
18501         * doc/tm.texi: Regenerate.
18502
18503         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
18504         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
18505         * doc/tm.texi: Regenerate.
18506
18507         * target.def (memory_move_cost): Use DEFHOOK.
18508         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
18509         Rename regclass AKA class to rclass.
18510         * doc/tm.texi: Regenerate.
18511
18512         * target.def (pragma_parse): Use DEFHOOK.
18513         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
18514         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
18515         * doc/tm.texi: Regenerate.
18516
18517         * target.def (pass_by_reference): Use DEFHOOK.
18518         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
18519         * doc/tm.texi: Regenerate.
18520
18521         * target.def (resolve_overloaded_builtin): Rename params to arglist.
18522         Use DEFHOOK.
18523         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
18524         * doc/tm.texi: Regenerate.
18525
18526         * target.def (return_pops_args): Use DEFHOOK.
18527         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
18528         Rename stack-size to size.
18529         * doc/tm.texi: Regenerate.
18530
18531         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
18532         last-sched_cycle to last_clock, cur_cycle to clock.
18533         * doc/tm.texi.in: Use @hook.
18534         * doc/tm.texi: Regenerate.
18535
18536         * target.def (print_operand, print_operand_address): Update comment.
18537         (print_operand_punct_valid_p): Likewise.
18538
18539 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18540
18541         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
18542         to rtl.h.
18543         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
18544         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
18545         * rtl-error.h: New.
18546         * regrename.c: Do not include toplev.h. Include rtl-error.h.
18547         * rtl-error.c: Likewise.
18548         * reload.c: Likewise.
18549         * recog.c:  Likewise.
18550         * sel-sched.c: Likewise.
18551         * function.c: Likewise.
18552         * reg-stack.c: Likewise.
18553         * cfgrtl.c: Likewise.
18554         * reload1.c: Likewise.
18555         * final.c: Include rtl-error.
18556         * Makefile.in: Adjust dependencies.
18557
18558 2010-06-30  Jan Hubicka  <jh@suse.cz>
18559
18560         PR middle-end/PR44706
18561         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
18562         to return the value.
18563
18564 2010-06-30  Michael Matz  <matz@suse.de>
18565
18566         PR bootstrap/44699
18567         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
18568         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
18569         a gimple reg, attach the original VDEF to the last store in the
18570         sequence.
18571
18572 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
18573
18574         PR other/44034
18575         * config/darwin.c (darwin_override_options): Use renamed
18576         targetm.asm_out.emit_unwind_label.
18577
18578 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
18579
18580         PR tree-optimization/39799
18581         * tree-inline.c (remap_ssa_name): Initialize variable only if
18582         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
18583
18584 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
18585
18586         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
18587
18588 2010-06-30  Richard Guenther  <rguenther@suse.de>
18589
18590         PR target/44722
18591         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
18592         against oscillation with reverse peephole2.
18593
18594 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
18595
18596         PR target/44721
18597         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
18598         Fix last commit.
18599
18600 2010-06-30  Nick Clifton  <nickc@redhat.com>
18601
18602         * config/rx/rx-modes.def: New file.
18603         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
18604         (CC_REGNUM): Define.
18605         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
18606         register.
18607         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
18608         (SELECT_CC_MODE): Define.
18609         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
18610         (reg:CC CC_REG) instead of (cc0).
18611         (attr "cc"): Delete.
18612         (cbranchsi4): Do not split compare and branch here. Instead move
18613         it to...
18614         (cbranchsi4_<code>): ... here.  New patterns.
18615         (cmpsi): Call rx-compare_redundant to find out if it is necessary
18616         to emit the compare instruction.
18617         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
18618         cc_status flags.
18619         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
18620         FIRST_PSEUDO_REGNUM.
18621         (rx_expand_prologue, rx_expand_epilogue): Likewise.
18622         (rx_notice_update_cc): Delete.
18623         (rx_cc_modes_compatible): New function.
18624         (flags_needed_for_conditional): New function.
18625         (flags_from_mode): New function.
18626         (rx_compare_redundant): New function - scans backwards through
18627         insn list to find out if condition flags are already set correctly.
18628         (TARGET_CC_MODES_COMPATIBLE): Define.
18629         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
18630
18631         * config/rx/rx.h (BRANCH_COST): Define.
18632         (REGISTER_MOVE_COST): Define.
18633         * config/rx/predicates (rx_source_operand): Allow all constant types.
18634         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
18635         (tstsi4): New pattern.
18636         * config/rx/rx.c (rx_memory_move_cost): Define.
18637         (TARGET_MEMORY_MOVE_COST): Define.
18638
18639 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18640
18641         * tree.h (block_may_fallthru): Declare here.
18642         * tree-flow.h (block_may_fallthru): Do not declare here.
18643         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
18644         bitmap.h
18645         * Makefile.in (c-typeck.o): Update dependencies.
18646
18647 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
18648
18649         PR debug/44694
18650         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
18651         * cselib.c (cfa_base_preserved_regno): New static variable.
18652         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
18653         of REGNO (cfa_base_preserved_val->locs->loc).
18654         (cselib_preserve_cfa_base_value): Add regno argument, set
18655         cfa_base_preserved_regno to it.
18656         (cselib_invalidate_regno): Allow removal of registers other than
18657         cfa_base_preserved_regno from cfa_base_preserved_val.
18658         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
18659         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
18660         of MEM addresses, if not on LHS.
18661         (reverse_op): Don't add reverse ops for cfa_base_rtx.
18662         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
18663
18664 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
18665
18666         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
18667         static variables.
18668         (peep2_buf_position): New static function.
18669         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
18670         peephole2_optimize): Use it.
18671         (peep2_attempt, peep2_update_life): New static functions, broken out
18672         of peephole2_optimize.
18673         (peep2_fill_buffer): New static function.
18674         (peephole2_optimize): Change the main loop to try to fill the buffer
18675         with the maximum number of insns before matching them against
18676         peepholes.  Use a forward scan.  Remove special case for targets with
18677         conditional execution.
18678         * genrecog.c (change_state): Delete dead code.
18679         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
18680         Rewrite so as not to expect the second insn to have had a peephole
18681         applied yet.
18682
18683 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
18684
18685         * genhooks.c (emit_findices): Cast field precision to int.
18686         (emit_documentation): Likewise.
18687
18688 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
18689
18690         PR tree-optimization/43801
18691         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
18692         if old_decl was DECL_ONE_ONLY.
18693
18694         PR debug/44668
18695         * dwarf2out.c (add_accessibility_attribute): New function.
18696         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
18697         instead of adding DW_AT_accessibility manually.
18698         (gen_enumeration_type_die, gen_struct_or_union_type_die,
18699         gen_typedef_die): Use it.
18700
18701 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
18702
18703         * vmsdbgout.c (full_name): Just output the file name if not native.
18704
18705 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
18706
18707         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
18708         (funcnam_table): New static table.
18709         (funcnum_table): New static table.
18710         (write_rtnbeg): Write value saved in funcnum_table.
18711         (write_rtnend): Write value saved in funcnum_table.
18712         (vmsdbgout_begin_function): Save current function info in
18713         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
18714         (vmsdbgout_finish): Iterate over funcnum_table.
18715
18716 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
18717
18718         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
18719         (vmsdbgout_type_decl): Declare
18720         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
18721         (FUNC_EPILOGUE_LABEL): New macro
18722         (vmsdbgout_begin_epilogue): New function.
18723         (vmsdbgout_type_decl): New function.
18724
18725 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
18726
18727         * vmsdbg.h: Update copyright.
18728
18729 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
18730
18731         * vmsdbg.h (DST_K_TBG): New DST constant.
18732         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
18733         (write_modbeg): Cast module_language to avoid warning.
18734         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
18735
18736 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
18737
18738         PR other/44034
18739         * target.def, doc/tm.texi.in, genhooks.c: New files.
18740         * target.h: Instead of defining individual hook members,
18741         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
18742         include target.def.
18743         * target-def.h: Instead of defining individual hook initializers,
18744         include target-hooks-def.h.
18745         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
18746         targetm.live_on_entry -> targetm.extra_live_on_entry
18747         targetm.sched.md_finish ->targetm.sched.finish
18748         targetm.sched.md_init -> targetm.sched.init
18749         targetm.sched.md_init_global -> targetm.sched.init_global
18750         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
18751         targetm.asm_out.except_table_label ->
18752           targetm.asm_out.emit_except_table_label
18753         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
18754         targetm.target_help -> targetm.help
18755         targetm.vectorize.builtin_support_vector_misalignment ->
18756           targetm.vectorize.support_vector_misalignment
18757         targetm.file_start_app_off -> targetm.asm_file_start_app_off
18758         targetm.file_start_file_directive ->
18759          targetm.asm_file_start_file_directive
18760         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
18761         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
18762         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
18763         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
18764           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
18765         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
18766           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
18767         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
18768         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
18769         * Makefile.in (TARGET_H): Depend on target.def.
18770         (TARGET_DEF_H): Depend on target-hooks-def.h.
18771         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
18772         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
18773         * doc/tm.texi: Regenerate.
18774
18775         * Makefile.in (s-tm-texi): Remove stray tab / rule.
18776
18777         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
18778         (targetm.sched.init): Likewise.
18779
18780 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
18781
18782         PR bootstrap/44713
18783         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
18784         (function_arg_advance_32): Const-ify TYPE parameter.
18785         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
18786         (ix86_function_arg_advance): Change type of NAMED to bool.
18787         (function_arg_32): Const-ify CUM and TYPE parameters.
18788         (function_arg_64): Likewise.  Change type of NAMED to bool.
18789         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
18790         to bool.
18791         (ix86_function_arg): Change type of NAMED to bool.
18792         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
18793         last argument as a bool.
18794
18795 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
18796
18797         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
18798         (OVERRIDE_OPTIONS): Add note of obsolescence.
18799         Replace references with references to TARGET_OPTION_OVERRIDE.
18800         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
18801          the macro).
18802         * targhooks.c (default_target_option_override): New function.
18803         * targhooks.h (default_target_option_override): Declare.
18804         * target.h (struct gcc_target): Add override member to
18805         target_option member.
18806         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
18807         targetm.target_option.override call.
18808         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
18809         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
18810
18811 2010-06-29  Jan Hubicka  <jh@suse.cz>
18812
18813         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
18814
18815 2010-06-29  Jan Hubicka  <jh@suse.cz>
18816
18817         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
18818         unreachable.
18819         (rebuild_frequencies): New function.
18820         * predict.h (rebuild_frequencies): Declare.
18821         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
18822         entry block and edge reaching new_entry.
18823         (tree_function_versioning): When doing partial cloning, rebuild
18824         frequencies when done.
18825         * passes.c (execute_function_todo): Use rebild_frequencies.
18826
18827 2010-06-29  Richard Guenther  <rguenther@suse.de>
18828
18829         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
18830         * tree-flow.h (enum noalias_state): Remove.
18831         (struct var_ann_d): Remove noalias_state member.
18832
18833 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
18834
18835         PR target/43902
18836         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
18837         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
18838         (maddhidi4): Likewise.
18839
18840         Revert parts of the change for PR25130.
18841         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
18842         MEM_ALIAS_SET.
18843
18844 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
18845
18846         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
18847         targetm.calls.function_incoming_arg, and
18848         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
18849         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
18850         * target.h (struct gcc_target): Add function_arg_advance,
18851         function_arg, and function_incoming_arg fields.
18852         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
18853         (TARGET_FUNCTION_INCOMING_ARG): Define.
18854         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
18855         and TARGET_FUNCTION_INCOMING_ARG.
18856         * targhooks.h (default_function_arg_advance): Declare.
18857         (default_function_arg, default_function_incoming_arg): Declare.
18858         * targhooks.c (default_function_arg_advance): New function.
18859         (default_function_arg, default_function_incoming_arg): New function.
18860         * config/i386/i386.c (function_arg_advance): Rename to...
18861         (ix86_function_arg_advance): ...this.  Make static.
18862         (function_arg): Rename to...
18863         (ix86_function_arg): ...this.  Make static.
18864         (TARGET_FUNCTION_ARG_ADVANCE): Define.
18865         (TARGET_FUNCTION_ARG): Define.
18866         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
18867         (FUNCTION_ARG): Delete.
18868         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
18869         (function_arg): Delete prototype.
18870
18871 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
18872
18873         * reginfo.c (init_reg_sets_1): Adjust comments.
18874         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
18875         * calls.c (prepare_call_address): Likewise.
18876         (emit_call_1): Use targetm.calls.return_pops_args.
18877         (expand_call): Likewise.
18878         * function.c (assign_parms): Likewise.
18879         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
18880         * target.h (struct gcc_target) [struct calls]: Add
18881         return_pops_args field.
18882         * targhooks.h (default_return_pops_args): Declare.
18883         * targhooks.c (default_return_pops_args): Define.
18884         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
18885         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
18886         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
18887         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
18888         documentation.
18889         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
18890         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
18891         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
18892         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
18893         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
18894         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
18895         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
18896         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
18897         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
18898         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
18899         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
18900         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
18901         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
18902         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
18903         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
18904         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
18905         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
18906         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
18907         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
18908         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
18909         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
18910         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
18911         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
18912         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
18913         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
18914         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
18915         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
18916         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
18917         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
18918         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
18919         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
18920         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
18921         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
18922         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
18923         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
18924         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
18925         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
18926         * config/i386/i386.c (ix86_return_pops_args): Make static.
18927         Constify arguments.
18928         (TARGET_RETURN_POPS_ARGS): Define.
18929         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
18930         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
18931         (TARGET_RETURN_POPS_ARGS): Define.
18932         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
18933         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
18934         (TARGET_RETURN_POPS_ARGS): Define.
18935
18936 2010-06-29  Richard Guenther  <rguenther@suse.de>
18937
18938         PR middle-end/44667
18939         * tree-inline.c (initialize_inlined_parameters): Make sure
18940         to remap the inlined parameter variable substitutions types.
18941
18942 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
18943
18944         PR rtl-optimization/44659
18945         * combine.c (make_compound_operation) <SUBREG>: Do not return the
18946         result of force_to_mode if it partially re-expanded the compound.
18947
18948 2010-06-28  Jan Hubicka  <jh@suse.cz>
18949
18950         PR middle-end/44671
18951         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
18952         RESULT_DECL.
18953
18954 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
18955
18956         * double-int.h (force_fit_type_double): Remove declaration.
18957         * double-int.c (force_fit_type_double): Move to tree.c.
18958         * tree.h (force_fit_type_double): Declare.
18959         * tree.h (force_fit_type_double): Moved from double-int.c. Use
18960         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
18961         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
18962         * convert.c (convert_to_pointer): Adjust call to
18963         force_fit_type_double.
18964         * tree-vrp.c (extract_range_from_assert,
18965         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
18966         * fold-const.c: Update comment.
18967         (int_const_binop, fold_convert_const_int_from_int,
18968         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
18969         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
18970         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
18971         round_up_loc): Adjust call to force_fit_type_double.
18972
18973 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
18974
18975         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
18976
18977 2010-06-28  Martin Jambor  <mjambor@suse.cz>
18978
18979         * tree-sra.c (convert_callers): New parameter, change fndecls of
18980         recursive calls.
18981         (modify_function): Pass the old decl to convert_callers.
18982
18983 2010-06-28  Martin Jambor  <mjambor@suse.cz>
18984
18985         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
18986         ipa_check_create_node_params and ipa_initialize_node_params with
18987         checking asserts they are not necessary.
18988
18989 2010-06-28  Jan Hubicka  <jh@suse.cz>
18990
18991         PR tree-optimization/44687
18992         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
18993
18994 2010-06-28  Martin Jambor  <mjambor@suse.cz>
18995
18996         PR c++/44535
18997         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
18998         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
18999         instead of BINFO_BASE_BINFO.
19000
19001 2010-06-28  Michael Matz  <matz@suse.de>
19002
19003         PR middle-end/44592
19004         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
19005         proper VDEF chain for intermediate stores in the sequence.
19006
19007 2010-06-28  Jan Hubicka  <jh@suse.cz>
19008
19009         PR tree-optimization/44357
19010         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
19011         uninlinable functions.
19012
19013 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19014
19015         * config.gcc (powerpc*-*-*): Handle titan.
19016         * config/rs6000/rs6000.c (titan_cost): New costs.
19017         (rs6000_override_options): Add "titan" to processor_target_table.
19018         Add Titan to branch alignment logic.
19019         Correctly set rs6000_cost for titan.
19020         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
19021         * config/rs6000/titan.md: New file.
19022         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
19023
19024 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19025
19026         * tree-browser.c (TB_history_stack): Convert to a VEC.
19027         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
19028         (TB_history_prev): Likewise.
19029
19030 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19031
19032         * vec.h (vec_heap_free): Add parentheses around free.
19033
19034 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
19035
19036         * system.h: Poison GCC_EXCEPT_H for front-end files.
19037
19038         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
19039         langhook.
19040         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
19041         Define to NULL by default.
19042         * except.h: Define GCC_EXCEPT_H.
19043         (doing_eh): Remove prototype.
19044         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
19045         (lang_protect_cleanup_actions): Remove.
19046         * except.c (lang_protect_cleanup_actions): Remove.
19047         (doing_eh): Remove.
19048         (gen_eh_region): Don't check doing_eh here.
19049         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
19050         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
19051         instead of lang_protect_cleanup_actions.
19052         * omp-low.c (maybe_catch_exception): Likewise.
19053         * Makefile.in: Update dependencies.
19054
19055 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
19056
19057         * cgraph.h (struct varpool_node): new used_from_object_file flag.
19058         (struct cgraph_local_info): new used_from_object_file flag.
19059         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
19060         (cgraph_clone_node): initialize used_from_object_file.
19061         (cgraph_create_virtual_clone): initialize used_from_object_file.
19062         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
19063         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
19064         when compiling with -fwhole-program.
19065         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
19066         internal resolver.
19067         * ipa.c (function_and_variable_visibility): Set externally_visible
19068         flag of varpool_node if used_from_object_file flag is set.
19069         (cgraph_externally_visible_p): check used_from_object_file flag.
19070         * doc/invoke.texi (-fwhole-program option): Change description of
19071         externally_visible attribute accordingly.
19072         * doc/extend.texi (externally_visible): Ditto.
19073
19074 2010-06-27  Jan Hubicka  <jh@suse.cz>
19075
19076         * params.def (max-inline-insns-auto): Default to 40.
19077         * doc/invoke.texi (max-inline-insns-auto): Document the change.
19078
19079 2010-06-27  Jan Hubicka  <jh@suse.cz>
19080
19081         PR middle-end/44671
19082         PR middle-end/44686
19083         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
19084         signature change.
19085         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
19086         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
19087
19088 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
19089
19090         * target.h (struct gcc_target): Add register_move_cost field.
19091         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
19092         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
19093         * targhooks.c (default_register_move_cost): New function.
19094         * targhooks.h (default_register_move_cost): Declare function.
19095         * defaults.h (REGISTER_MOVE_COST): Delete.
19096         * ira-int.h (ira_register_move_cost): Update comment.
19097         * ira.c (ira_register_move_cost): Update comment.
19098         * reload.h (register_move_cost): Declare.
19099         * reginfo.c (register_move_cost): New function.
19100         (move_cost): Update comment.
19101         (init_move_cost, memory_move_secondary_cost): Replace
19102         REGISTER_MOVE_COST with register_move_cost.
19103         * postreload.c (reload_cse_simplify_set): (Ditto.).
19104         * reload.c (find_valid_class, find_reloads): (Ditto.).
19105         * reload1.c (choose_reload_regs): (Ditto.).
19106         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
19107         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
19108         * doc/md.texi (can_create_pseudo_p): Update documentation.
19109
19110         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19111         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19112         * config/i386/i386.h (ix86_memory_move_cost): Make static.
19113         (TARGET_MEMORY_MOVE_COST): Define.
19114
19115         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19116         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
19117         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
19118         (TARGET_MEMORY_MOVE_COST): Define.
19119
19120 2010-06-27  Richard Guenther  <rguenther@suse.de>
19121
19122         PR tree-optimization/44683
19123         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
19124         false edge from the inverted condition.
19125
19126 2010-06-27  Richard Guenther  <rguenther@suse.de>
19127
19128         PR middle-end/44684
19129         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
19130         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
19131         for register LHS.  Or non-store assignments.
19132
19133 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
19134
19135         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
19136         (sparc_emit_set_const64): Likewise.  Remove disabled code.
19137         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
19138         (sparc_emit_set_const64): Likewise.
19139
19140 2010-06-26  Catherine Moore  <clm@codesourcery.com>
19141
19142         * config/mips/mips.md (alu_type): New attribute.
19143         (type): Infer type from alu_type.
19144         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
19145         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
19146         *subsi3_extended, negsi2, negdi2, *low<mode>,
19147         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
19148         xor<mode>3, *nor<mode>3,
19149         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
19150         *zero_extendhi_truncqi):  Set alu_type instead of type.
19151
19152 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
19153
19154         * config/alpha/alpha.c (alpha_need_linkage): Adjust
19155         splay_tree_new_ggc call.
19156         (alpha_use_linkage): Likewise.
19157
19158 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19159
19160         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
19161         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
19162         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
19163         (static_specs): Remove switches_need_spaces.
19164         (process_command, do_self_spec): Hardcode handling "-o" instead of
19165         checking switches_need_spaces.
19166         * system.h (SWITCHES_NEED_SPACES): Poison.
19167
19168 2010-06-26  Richard Guenther  <rguenther@suse.de>
19169
19170         PR tree-optimization/44393
19171         * tree-loop-distribution.c (generate_loops_for_partition): Fix
19172         stmt removal and VOP renaming.
19173         (generate_memset_zero): Remove redundant stmt updating.
19174         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
19175         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
19176
19177 2010-06-26  Jan Hubicka  <jh@suse.cz>
19178
19179         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
19180         edges comming from header are equivalent.
19181         (visit_bb): Handle PHIs correctly.
19182         * tree-inline.c (copy_phis_for_bb): Be able to copy
19183         PHI from entry edge.
19184         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
19185
19186 2010-06-26  Richard Guenther  <rguenther@suse.de>
19187
19188         PR middle-end/44674
19189         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
19190         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
19191
19192 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19193
19194         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
19195         add_infile, alloc_switch): New.
19196         (process_command): Remove variable lang_n_infiles.  Process
19197         options in a single pass.  Use new functions for allocating
19198         infiles and switches arrays.  Properly skip operands of
19199         -Xpreprocessor and -Xassembler.
19200
19201 2010-06-26  Jan Hubicka  <jh@suse.cz>
19202
19203         PR middle-end/44671
19204         * cgraphunit.c (cgraph_function_versioning): Remove wrong
19205         cgraph_make_decl_local call; fix typo copying RTL data.
19206
19207 2010-06-25  DJ Delorie  <dj@redhat.com>
19208
19209         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
19210         (m32c_output_aligned_common): Likewise.
19211         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
19212         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
19213         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
19214         (m32c_register_pragmas): Register it.
19215         * config/m32c/m32c.c (m32c_get_pragma_address): New.
19216         (m32c_insert_attributes): Set #pragma address decls volatile.
19217         (pragma_entry_eq): New.
19218         (pragma_entry_hash): New.
19219         (m32c_note_pragma_address): New.
19220         (m32c_get_pragma_address): New.
19221         (m32c_output_aligned_common): New.
19222         * doc/extend.texi: Document the new pragma.
19223
19224         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
19225         also.
19226         * config/m32c/predicates.md (m32c_any_operand): Check the code
19227         instead of memory_operand so as to allow matching volatile MEMs.
19228         (m32c_nonimmediate_operand): Likewise.
19229         (mra_operand): Allow volatiles.
19230
19231 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
19232
19233         PR debug/44610
19234         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
19235         address if the offset is unknown.
19236
19237 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
19238
19239         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
19240         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
19241         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
19242         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
19243         to ia64_start_function. Invoke it.
19244         * config/ia64/ia64.c (ia64_start_function): Call new function
19245         dwarf2out_vms_debug_main_pointer.
19246
19247 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19248
19249         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
19250         statements computing the true predicate.
19251
19252 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19253
19254         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
19255         to boolean_true_node.
19256         (reset_bb_predicate): New.
19257         (predicate_bbs): Call reset_bb_predicate.
19258
19259 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19260
19261         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
19262         (tree_if_conversion): Returns true when something has been changed.
19263         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
19264         changed something.
19265
19266 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19267
19268         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
19269         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
19270         * tree-if-conv.c: Include dbgcnt.h.
19271         (tree_if_conversion): Use if_conversion_tree to count the number of
19272         if-convertible loops.
19273
19274 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
19275
19276         * common.opt (fprefetch-loop-arrays): Re-define
19277         -fprefetch-loop-arrays as a tri-state option with the initial
19278         value of -1.
19279         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
19280         pass only when flag_prefetch_loop_arrays > 0.
19281         * toplev.c (process_options): Note that, with tri-states,
19282         flag_prefetch_loop_arrays>0 means prefetching is enabled.
19283         * config/i386/i386.c (override_options): Enable prefetching at -O3
19284         for a set of CPUs that sw prefetching is helpful.
19285         (software_prefetching_beneficial_p): New.  Return TRUE if software
19286         prefetching is beneficial for the given CPU.
19287
19288 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
19289
19290         PR rtl-optimization/44326
19291         * implicit-zee.c (find_removable_zero_extends): Replace
19292         INSN_P with NONDEBUG_INSN_P.
19293
19294 2010-06-25  Martin Jambor  <mjambor@suse.cz>
19295
19296         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
19297         (struct ipa_node_params): Removed the modification_analysis_done flag.
19298         (ipa_is_param_modified): Removed.
19299         (ipa_analyze_node): Declare.
19300         (ipa_compute_jump_functions): Remove declaration.
19301         (ipa_count_arguments): Likewise.
19302         (ipa_detect_param_modifications): Likewise.
19303         (ipa_analyze_params_uses): Likewise.
19304         * ipa-prop.c (struct param_analysis_info): New type.
19305         (visit_store_addr_for_mod_analysis): Removed.
19306         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
19307         moved down in the file.
19308         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
19309         (ipa_count_arguments): Made static.
19310         (mark_modified): New function.
19311         (is_parm_modified_before_call): New function.
19312         (compute_pass_through_member_ptrs): New parameter parms_info, call
19313         is_parm_modified_before_call instead of ipa_is_param_modified.
19314         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
19315         it to compute_pass_through_member_ptrs.
19316         (ipa_compute_jump_functions): New parameter parms_info, pass it to
19317         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
19318         on the callee if it is analyzed.  Made static.
19319         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
19320         is_parm_modified_before_call instead of ipa_is_param_modified.
19321         (ipa_analyze_call_uses): New parameter parms_info, pass it to
19322         ipa_analyze_indirect_call_uses.
19323         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
19324         ipa_analyze_call_uses.
19325         (ipa_analyze_params_uses): New parameter parms_info, pass it to
19326         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
19327         (ipa_analyze_node): New function.
19328         (ipa_print_node_params): Do not dump the modified flag.
19329         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
19330         it.  Do not stream the modified parameter flag.
19331         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
19332         it.  Do not stream the modified parameter flag.
19333         * ipa-cp.c (ipcp_analyze_node): Removed.
19334         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
19335         with only a call to ipa_analyze_node.
19336         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
19337         node with only a call to ipa_analyze_node.
19338
19339 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19340
19341         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
19342
19343 2010-06-25  Jan Hubicka  <jh@suse.cz>
19344
19345         * tree-pass.h (pass_split_functions): Declare.
19346         * opts.c (decode_options): Enable function splitting at -O2
19347         * timevar.def (TV_IPA_FNSPLIT): New macro.
19348         * ipa-split.c: New file.
19349         * common.opt (-fpartial-inlining): New flag.
19350         * Makefile.in (ipa-split.o): New object file.
19351         * passes.c (init_optimization_passes): Add ipa-split.
19352         * params.def (partial-inlining-entry-probability): New parameters.
19353         * doc/invoke.texi (-fpartial-inlining): New.
19354
19355 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19356
19357         PR 44665
19358         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
19359         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
19360         (gimplify_expr): Likewise.
19361
19362 2010-06-25  Martin Jambor  <mjambor@suse.cz>
19363
19364         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
19365         statements instead of bailing out on them.
19366         (ipa_analyze_indirect_call_uses): Do not require that loads from the
19367         parameter are in the same BB as the condition.  Update comments.
19368
19369 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
19370
19371         PR middle-end/43866
19372         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
19373         true or always false, return NULL_TREE.
19374         (tree_unswitch_single_loop): Optimize conditions even when reaching
19375         max-unswitch-level parameter.  If num > 0, optimize first all conditions
19376         using entry checks, then do still reachable block discovery and consider
19377         only conditions in still reachable basic blocks in the loop.
19378
19379         PR tree-optimization/44539
19380         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
19381         the call doesn't have LHS, but has VDEF.
19382
19383 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
19384
19385         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
19386         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
19387         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
19388         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
19389         * system.h (MODIFY_TARGET_NAME): Poison.
19390
19391 2010-06-25  Alan Modra  <amodra@gmail.com>
19392
19393         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
19394         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
19395         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
19396         CMODEL_LARGE as default.
19397         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
19398         (offsettable_ok_by_alignment): Delete.
19399         (rs6000_emit_move): Remove mcmodel=medium optimization.
19400
19401 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
19402
19403         With large parts from Jim Wilson:
19404         PR target/43902
19405         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
19406         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
19407         * optabs.c (optab_for_tree_code): Likewise.
19408         (expand_widen_pattern_expr): Likewise.
19409         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
19410         out of execute_optimize_widening_mul.
19411         (convert_plusminus_to_widen): New function.
19412         (execute_optimize_widening_mul): Use the two new functions.
19413         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
19414         Remove code to generate widening multiply-accumulate.  Add support
19415         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
19416         * gimple-pretty-print.c (dump_ternary_rhs): New function.
19417         (dump_gimple_assign): Call it when appropriate.
19418         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
19419         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
19420         (expand_gimple_stmt_1): Likewise.
19421         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
19422         WIDEN_MULT_MINUS_EXPR.
19423         * tree-ssa-operands.c (get_expr_operands): Likewise.
19424         * tree-inline.c (estimate_operator_cost): Likewise.
19425         * gimple.c (extract_ops_from_tree_1): Renamed from
19426         extract_ops_from_tree.  Add new arg for a third operand; fill it.
19427         (gimple_build_assign_stat): Support operations with three operands.
19428         (gimple_build_assign_with_ops_stat): Likewise.
19429         (gimple_assign_set_rhs_from_tree): Likewise.
19430         (gimple_assign_set_rhs_with_ops_1): Renamed from
19431         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
19432         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
19433         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
19434         WIDEN_MULT_MINUS_EXPR.
19435         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
19436         (extract_ops_from_tree_1): Adjust declaration.
19437         (gimple_assign_set_rhs_with_ops_1): Likewise.
19438         (gimple_build_assign_with_ops): Pass NULL for last operand.
19439         (gimple_build_assign_with_ops3): New macro.
19440         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
19441         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
19442         functions.
19443         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
19444         (verify_gimple_assign): Call it.
19445         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
19446         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
19447         functions for dealing with three-operand statements.
19448         * tree.c (commutative_ternary_tree_code): New function.
19449         * tree.h (commutative_ternary_tree_code): Declare it.
19450         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
19451         ternary statements.
19452         (gimple_assign_nonzero_warnv_p): Likewise.
19453         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
19454         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
19455         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
19456         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
19457         (struct hashtable_expr): New member ternary in the union.
19458         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
19459         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
19460         (iterative_hash_hashable_expr): Likewise.
19461         (print_expr_hash_elt): Handle EXPR_TERNARY.
19462         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
19463         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
19464         statements.  Handle GIMPLE_TERNARY_RHS.
19465
19466 2010-06-25  Jan Hubicka  <jh@suse.cz>
19467
19468         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
19469
19470 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
19471
19472         PR c/44517
19473         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
19474         parameters are not good.
19475         (c_parser_parameter_declaration): Error unknown type name if the type
19476         name can't start declaration specifiers.
19477
19478 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
19479
19480         * gcc.c (translate_options): Don't mention +e in comment.
19481         (process_command): Don't handle +e specially.
19482
19483 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
19484
19485         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
19486
19487         * ira-build.c (merge_hard_reg_conflicts): New function.
19488         (create_cap_allocno, copy_info_to_removed_store_destinations,
19489         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
19490         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
19491         (remove_unnecessary_allocnos, remove_low_level_allocnos)
19492         copy_nifo_to_removed_store_destination): Use them.
19493         * ira-lives.c (make_hard_regno_born): New function, split out of
19494         make_regno_born.
19495         (make_allocno_born): Likewise.
19496         (make_hard_regno_dead): New function, split out of make_regno_dead.
19497         (make_allocno_dead): Likewise.
19498         (inc_register_pressure): New function, split out of set_allocno_live.
19499         (dec_register_pressure): New function, split out of clear_allocno_live.
19500         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
19501         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
19502         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
19503         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
19504         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
19505         mark_pseudo_regno_live.
19506         (process_bb_node_lives): Use mark_pseudo_regno_live,
19507         make_hard_regno_born and make_allocno_dead.
19508         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
19509         set_allocno_live, clear_allocno_live): Delete functions.
19510
19511         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
19512         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
19513         functions.
19514         (ira_flattening): Use ira_parent_allocno.
19515         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
19516         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
19517
19518         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
19519         statement.
19520
19521         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
19522         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
19523         minmax_set_iter_cond, minmax_set_iter_next,
19524         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
19525         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
19526         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
19527         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
19528         uses changed.
19529
19530         * ira-int.h (struct live_range, live_range_t): Renamed from struct
19531         ira_allocno_live_range and allocno_live_range_t; all uses changed.
19532         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
19533         All uses changed.
19534
19535 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
19536
19537         * thumb2.md (thumb2_tlobits_cbranch): Delete.
19538         (peephole2 to convert zero_extract/compare of single bit to
19539          lshift/compare): New.
19540
19541 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
19542
19543         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
19544         recursive call and call to 'int_const_binop'.
19545         (build_range_check, fold_cond_expr_with_comparison, unextend,
19546         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
19547         multiple_of_p): Adjust call to const_binop.
19548
19549 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
19550
19551         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
19552         determine size of XFmode operand.
19553         (XFmode extended DFmode push splitter): Ditto.
19554         (XFmode extended SFmode push splitter): Ditto.
19555
19556 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
19557
19558         PR target/44588
19559         * config/i386/i386.md (extract_code): New.
19560         (<u>divmodqi4): Likewise.
19561         (divmodhiqi3): Likewise.
19562         (udivmodhiqi3): Likewise.
19563         (<u>divqi3): Remvoved.
19564
19565 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
19566
19567         PR middle-end/44492
19568         * recog.h (struct recog_data): Add is_asm field.
19569         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
19570         present in constraints of inline-asm operand and memory operand
19571         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
19572         (extract_insn): Initialize recog_data.is_asm.
19573         * doc/md.texi (Constraints): Document operand side-effect rules.
19574
19575 2010-06-24  Andi Kleen  <ak@linux.intel.com>
19576
19577         * c-parser.c (c_parser_conditional_expression): Call
19578         warn_for_omitted_condop.
19579         * doc/invoke.texi: Document omitted condop warning.
19580
19581 2010-06-24  Nick Clifton<nickc@redhat.com>
19582
19583         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
19584         insn in the sequence is a jump insn before setting its label.
19585
19586 2010-06-24  Alan Modra  <amodra@gmail.com>
19587
19588         * collect2.c (main): Match exactly --version and --help.
19589
19590 2010-06-24  DJ Delorie  <dj@redhat.com>
19591
19592         * config/m32c/m32c-pragma.c: Don't include rtl.h.
19593
19594 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
19595
19596         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
19597         using X87MODEF mode iterator.
19598         (pushsf splitter): Macroize splitter using P mode iterator.
19599         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
19600         mode iterator.
19601
19602         (*movxf_internal): Rename from *movxf_integer.
19603         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
19604         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
19605         (*movdf_internal): Rename from *movdf_integer.
19606         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
19607         (*movsf_internal): Rename from *movdf_1.
19608
19609 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
19610
19611         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
19612         (const_gimple_seq_node): Removed typedefs.
19613
19614         * gimple.h (gimple_seq_node_d, gimple_seq_node)
19615         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
19616
19617 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
19618
19619         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
19620         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
19621         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
19622         and CODE_FOR_vec_extract_lo_v4df.
19623
19624         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
19625         Changed to define_insn_and_split.
19626         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
19627         (vec_extract_lo_v16hi): Likewise.
19628         (vec_extract_lo_v32qi): Likewise.
19629         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
19630         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
19631
19632 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
19633
19634         PR target/44640
19635         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
19636         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
19637         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
19638         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
19639         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
19640
19641         PR target/44640
19642         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
19643
19644         PR other/44644
19645         * df-core.c (struct df): Rename to df_d.
19646         * df.h (struct df): Likewise.
19647         * dse.h (struct df): Remove forward declaration.
19648         * recog.h (struct insn_data): Rename to:
19649         (struct_insn_data_d).  Adjusted all users.
19650
19651 2010-06-23  Arnaud Charlet  <charlet@adacore.com
19652
19653         PR ada/22220
19654         * doc/install.texi: Update requirements to build GNAT.
19655
19656 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
19657
19658         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
19659         enum type.
19660         (m68k_sched_attr_opx_type): Remove unreachable return.
19661         (m68k_sched_attr_opy_type): Likewise.
19662         (m68k_sched_attr_size): Likewise.
19663         (sched_get_opxy_mem_type): Likewise.
19664         (m68k_sched_attr_op_mem): Likewise.
19665
19666 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
19667
19668         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
19669         new statement and adjust VDEF only if necessary.  Remove superfluous
19670         call to maybe_clean_or_replace_eh_stmt.
19671         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
19672         copy the flags.
19673         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
19674         * tree-inline.c (copy_bb): ...and not there.
19675
19676 2010-06-22  Cary Coutant  <ccoutant@google.com>
19677
19678         * dwarf2out.c (is_nested_in_subprogram): New function.
19679         (should_move_die_to_comdat): Use it.
19680         (copy_ancestor_tree): Don't mark DIEs here.
19681         (copy_decls_walk): Start walk from root of newly-added tree;
19682         mark DIEs here instead.
19683
19684 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
19685
19686         * config/i386/i386.md (unit): Also check sseishft1.
19687
19688 2010-06-22  Jan Hubicka  <jh@suse.cz>
19689
19690         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
19691         enabled.
19692
19693 2010-06-22  Jan Hubicka  <jh@suse.cz>
19694
19695         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
19696         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
19697         Return true if something changed.
19698         * df.h (df_confluence_function_n): Return bool.
19699         * df-core.c (df_worklist_propagate_forward,
19700         df_worklist_propagate_backward): Track changes and ages.
19701         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
19702         track ages.
19703         * dse.c (dse_confluence_n): Return always true.
19704
19705 2010-06-22  Jan Hubicka  <jh@suse.cz>
19706
19707         * bitmap.c (bitmap_clear_bit): Micro optimize.
19708
19709 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
19710
19711         * config/i386/i386.md (SWI1248x): New mode iterator.
19712         (SWI48x): Ditto.
19713         (SWI12): Ditto.
19714         (SWI24): Ditto.
19715
19716         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
19717         SWI1248x mode iterator.
19718         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
19719         using SWI124 mode iterator.
19720         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
19721         mode iterator.
19722         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
19723         *pushdi2_prologue_rex64 using P mode iterator.
19724         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
19725         using SWI48 mode iterator.
19726         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
19727         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
19728         using SWI1248x mode iterator.
19729         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
19730         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
19731         SWI48 mode iterator.
19732         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
19733         iterator.
19734         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
19735         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
19736         SWI12 mode iterator.
19737         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
19738         SWI12 mode iterator.
19739         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
19740         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
19741         SWI24 mode iterator.
19742         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
19743         SWI48 mode iterator.
19744         (mov<mode>_insn_1): New expander.
19745         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
19746         using SWI48x mode iterator.
19747
19748         (*movoi_internal_avx): Rename from *movoi_internal.
19749         (*movti_internal_rex64): Rename from *movti_rex64.
19750         (*movti_internal_sse): Rename from *movti_sse.
19751         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
19752         (*movdi_internal): Rename from *movdi_2.
19753         (*movsi_internal): Rename from *movsi_1.
19754         (*movhi_internal): Rename from *movhi_1.
19755         (*movqi_internal): Rename from *movqi_1.
19756
19757         (insv): Update the call to gen_movsi_insv_1 for rename.
19758         * config/i386/i386.c (promote_duplicated_reg): Ditto.
19759
19760 2010-06-22  Jan Hubicka  <jh@suse.cz>
19761
19762         * passes.c (execute_function_todo): Move call of statistics_fini_pass
19763         to ...
19764         (execute_todo) ... this one.
19765
19766 2010-06-22  Alan Modra  <amodra@gmail.com>
19767
19768         PR target/44364
19769         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
19770         * caller-save.c (insert_restore, insert_save): Use non-validate
19771         form of adjust_address.
19772
19773 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19774
19775         PR target/39690
19776         * config/pa/pa.c (override_options): Disable
19777         -freorder-blocks-and-partition.
19778
19779 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
19780
19781         PR target/44615
19782         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
19783
19784         * config/i386/i386.md (type): Add sseishft1
19785
19786         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
19787         (ppro_insn_load): Likewise.
19788         (ppro_insn_store): Likewise.
19789         (ppro_insn_both): Likewise.
19790
19791         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
19792         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
19793         for type.
19794         (*vec_extractv2di_1_avx): Likewise.
19795         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
19796         type.  Remove atom_unit.
19797         (*vec_extractv2di_1_sse2): Likewise.
19798
19799 2010-06-21  DJ Delorie  <dj@redhat.com>
19800
19801         * diagnostic.h (diagnostic_classification_change_t): New.
19802         (diagnostic_context): Add history and push/pop list.
19803         (diagnostic_push_diagnostics): Declare.
19804         (diagnostic_pop_diagnostics): Declare.
19805         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
19806         from pragmas in a history chain instead of the global table.
19807         (diagnostic_push_diagnostics): New.
19808         (diagnostic_pop_diagnostics): New.
19809         (diagnostic_report_diagnostic): Scan history chain to find state
19810         of diagnostics as of the diagnostic location.
19811         * opts.c (set_option): Pass UNKNOWN_LOCATION to
19812         diagnostic_classify_diagnostic.
19813         (enable_warning_as_error): Likewise.
19814         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
19815         use in the history chain.
19816         * doc/extend.texi: Document pragma GCC diagnostic changes.
19817
19818 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
19819
19820         * dwarf2out.c (add_linkage_name): New function.  Don't add
19821         anything to DW_TAG_member DIEs.
19822         (add_name_and_src_coords_attributes): Use it.
19823         (gen_variable_die): Call it for C++ static data members if
19824         specification is DW_TAG_member.
19825
19826         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
19827         C++ char16_t and char32_t.
19828
19829         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
19830         * genattrtab.c: Include vecprim.h.
19831         (cached_attrs, cached_attr_count, attrs_seen_once,
19832         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
19833         attrs_cached_after): New variables.
19834         (find_attrs_to_cache): New function.
19835         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
19836         (write_test_expr): Add attrs_cached argument, return it too,
19837         attempt to cache non-const attributes used more than once in
19838         a single case handling.
19839         (write_attr_get): Use find_attrs_to_cache, for caching candidates
19840         emit cached_* variables.  Adjust write_attr_set callers.
19841         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
19842         to find attributes that should be cached in this block.  Adjust
19843         write_test_expr callers.
19844         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
19845         callers.
19846         (make_automaton_attrs): Adjust write_test_expr caller.
19847
19848         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
19849         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
19850         (make_automaton_attrs): If find_tune_attr returns non-NULL,
19851         write separate internal_dfa_insn_code_* and insn_default_latency_*
19852         functions for each attribute's value and emit init_sched_attrs
19853         function and function pointers.
19854         * genattr.c (const_attrs, reservations): New variables.
19855         (gen_attr): Add const attributes to const_attrs vector.
19856         (check_tune_attr, find_tune_attr): New functions.
19857         (main): Add reservations to reservations vector.  If find_tune_attr
19858         returns true, add prototype for init_sched_attrs and make
19859         internal_dfa_insn_code and insn_default_latency function pointers,
19860         otherwise define init_sched_attrs as dummy macro.
19861         * cfgexpand.c: Include insn-attr.h.
19862         (gimple_expand_cfg): Call init_sched_attrs.
19863
19864         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
19865
19866         PR target/44575
19867         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
19868         va_arg from a set of register save slots into a temporary,
19869         if the container is bigger than type size, do the copying
19870         using smaller mode or using memcpy.
19871
19872         PR bootstrap/44426
19873         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
19874         prototype.
19875         (sel_print_to_dot): Remove macro.
19876         (sel_print): Likewise.  New prototype.
19877         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
19878         (sel_print): New function.
19879
19880 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19881
19882         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
19883         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
19884
19885 2010-06-21  Nick Clifton  <nickc@redhat.com>
19886
19887         * config/rx/rx.h (PTRDIFF_TYPE): Define.
19888         (SMALL_REGISTER_CLASS): Define (to zero).
19889         (PRINT_OPERAND): Delete.
19890         (PRINT_OPERAND_ADDRESS): Delete.
19891         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
19892         (rx_print_operand_address): Delete prototype.
19893         * config/rx/rx.c (rx_print_operand): Make static.
19894         Allow %H and %L to handle CONST_DOUBLEs.
19895         (rx_print_operand_address): Make static.
19896         (rx_gen_move_template): Rename local variable 'template' to
19897         out_template.
19898         (rx_function_arg): Do not pass unknown sized objects in registers.
19899         (TARGET_PRINT_OPERAND): Define.
19900         (TARGET_PRINT_OPERAND_ADDRESS): Define.
19901
19902 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
19903
19904         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
19905
19906 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
19907
19908         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
19909         stack-alignment for simple leaf-functions.
19910
19911 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
19912
19913         * doc/install.texi: Document bootstrap-lto.
19914
19915 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
19916
19917         PR debug/44248
19918         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
19919         (input_function): Drop them here, if VTA is disabled.
19920
19921 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
19922
19923         PR target/44546
19924         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
19925         New predicate.
19926         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
19927         ix86_swapped_fp_comparsion_operator instead of
19928         ix86_fp_comparison_operator.
19929
19930         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
19931         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
19932         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
19933         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
19934         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
19935         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
19936
19937 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
19938
19939         PR other/32998
19940         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
19941         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
19942         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
19943         (decode_cmdline_option): Update for this return value.  Set
19944         orig_option_with_args_text field.  Set arg field for unknown
19945         options.  Make static.
19946         (decode_cmdline_options_to_array): New.
19947         (prune_options): Update handling of find_opt return value.
19948         * opts.c (read_cmdline_option): Take decoded option.  Return void.
19949         (read_cmdline_options): Take decoded options.
19950         (decode_options): Add parameters for decoded options.  Use
19951         decode_cmdline_options_to_array.  Use decoded options for -O
19952         scan.  Use integral_argument for -O parameters.  Update call to
19953         read_cmdline_options.
19954         (enable_warning_as_error): Update handling of find_opt return value.
19955         * opts.h: Update comment on unknown options.
19956         (struct cl_decoded_option): Update comments on opt_index and arg.
19957         Add orig_option_with_args_text.
19958         (decode_cmdline_option): Remove.
19959         (decode_cmdline_options_to_array): Declare.
19960         (decode_options): Update prototype.
19961         * toplev.c (save_argv): Remove.
19962         (save_decoded_options, save_decoded_options_count): New.
19963         (read_integral_parameter): Remove.
19964         (print_switch_values): Use decoded options.
19965         (toplev_main): Don't set save_argv.  Update call to decode_options.
19966         * toplev.h (read_integral_parameter): Remove.
19967         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
19968
19969 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
19970
19971         PR target/44072
19972         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
19973         immediate.
19974         * constraints.md (Pw, Px): New constraints.
19975         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
19976
19977 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
19978
19979         * config/i386/sse.md (fma4modesuffixf4): Removed.
19980         (ssemodesuffixf2s): Likewise.
19981         (ssemodesuffixf4): Likewise.
19982         (ssemodesuffixf2c): Likewise.
19983         (ssescalarmodesuffix2s): Likewise.
19984         (avxmodesuffixf2c): Likewise.
19985         (ssemodesuffix): New.
19986         (ssescalarmodesuffix): Likewise.
19987         Update patterns with ssemodesuffix and ssescalarmodesuffix.
19988
19989 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
19990
19991         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
19992
19993 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
19994
19995         * stor-layout.c (debug_rli): Remove unused local variables.
19996
19997 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
19998
19999         PR rtl-optimization/40900
20000         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
20001         original expression for later reuse.
20002         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
20003         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
20004
20005 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
20006
20007         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
20008         double_int_fits_in_uhwi_p): Implement as static inline.
20009         (double_int_xor): New inline function.
20010         (double_int_lrotate, double_int_rrotate, double_int_max,
20011         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20012         double_int_smin): Declare.
20013         (lrotate_double, rrotate_double): Remove declaration.
20014         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
20015         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
20016         (double_int_lrotate, double_int_rrotate, double_int_max,
20017         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20018         double_int_smin): New function.
20019         * fold-const.c (int_const_binop): Clean up, use double_int_*
20020         functions.
20021         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
20022         double_int_* and immed_double_int_const functions.
20023
20024 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20025
20026         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
20027         * function.c (types_used_by_cur_var_decl): Likewise.
20028         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
20029
20030 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20031
20032         * tree.h (record_layout_info): Change type of pending_statics field
20033         to a VEC.
20034         * stor-layout.c (start_record_layout): Store NULL into
20035         pending_statics.
20036         (debug_rli): Call debug_vec_tree instead of debug_tree.
20037         (place_field): Likewise.
20038         (finish_record_layout): Likewise.
20039
20040 2010-06-18  Alan Modra  <amodra@gmail.com>
20041
20042         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
20043
20044 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20045
20046         PR target/43740
20047         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
20048         for SET source operand from SET destination operand.
20049
20050 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
20051
20052         PR rtl-optimization/39871
20053         * reload1.c (init_eliminable_invariants): For flag_pic, disable
20054         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
20055         (function_invariant_p): Rule out a plus of frame or arg pointer with
20056         a SYMBOL_REF.
20057         * ira.c (find_reg_equiv_invariant_const): Likewise.
20058
20059 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
20060
20061         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
20062         print_operand_address and puts to output the operand for CONST.
20063
20064 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
20065
20066         PR debug/44572
20067         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
20068         hook.
20069
20070 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20071
20072         * v850-protos.h (print_operand): Delete.
20073         (print_operand_address): Delete.
20074         * v850.h (PRINT_OPERAND): Delete.
20075         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20076         (PRINT_OPERAND_ADDRESS): Delete.
20077         * v850.c (print_operand_address): Rename to...
20078         (v850_print_operand_address): ...this.  Make static. Call
20079         v850_print_operand.
20080         (print_operand): Rename to...
20081         (v850_print_operand): ...this.  Make static.  Call
20082         v850_print_operand_address.
20083         (v850_print_operand_punct_valid_p): New function.
20084         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20085         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20086
20087 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20088
20089         * config/sh/sh-protos.h (print_operand): Delete.
20090         (print_operand_address): Delete.
20091         * config/sh/sh.h (PRINT_OPERAND): Delete.
20092         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20093         (PRINT_OPERAND_ADDRESS): Delete.
20094         * config/sh/sh.c (sh_print_operand_address): Make static.
20095         (sh_print_operand): Make static.  Call sh_print_operand_address
20096         and sh_print_operand.
20097         (sh_print_operand_punct_valid_p): New function.
20098         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20099         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20100
20101 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20102
20103         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
20104         (mcore_print_operand_address): Delete.
20105         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
20106         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20107         (PRINT_OPERAND_ADDRESS): Delete.
20108         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
20109         (mcore_print_operand): Make static.
20110         (mcore_print_operand_punct_valid_p): New function.
20111         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
20112         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20113
20114 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20115
20116         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
20117         (print_operand_address): Delete.
20118         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
20119         (PRINT_OPERAND_ADDRESS): Delete.
20120         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
20121         static.
20122         (m68hc11_print_operand): Make static.
20123         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20124
20125 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20126
20127         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
20128         (m32r_print_operand_address): Delete.
20129         * config/m32r/m32r.h (m32r_punct_chars): Delete.
20130         (PRINT_OPERAND): Delete.
20131         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20132         (PRINT_OPERAND_ADDRESS): Delete.
20133         * config/m32r/m32r.c (m32r_punct_chars): Make static.
20134         (m32r_print_operand_address): Make static.
20135         (m32r_print_operand): Make static.
20136         (m32r_print_operand_punct_valid_p): New function.
20137         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20138         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20139
20140 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20141
20142         * config/iq2000/iq2000-protos.h (print_operand): Delete.
20143         (print_operand_address): Delete.
20144         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
20145         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20146         (PRINT_OPERAND_ADDRESS): Delete.
20147         (iq2000_print_operand_punct): Delete.
20148         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
20149         (iq2000_print_operand_address): Make static.
20150         (iq2000_print_operand): Make static.
20151         (iq2000_print_operand_punct_valid_p): New function.
20152         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20153         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20154
20155 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20156
20157         * config/frv/frv-protos.h (frv_print_operand): Delete.
20158         (frv_print_operand_address): Delete.
20159         * config/frv/frv.h (PRINT_OPERAND): Delete.
20160         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20161         (PRINT_OPERAND_ADDRESS): Delete.
20162         * config/frv/frv.c (frv_print_operand_address): Make static.
20163         (frv_print_operand): Make static.
20164         (frv_print_operand_punct_valid_p): New function.
20165         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20166         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20167
20168 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20169
20170         * tree.h (vec_member): Declare.
20171         * tree.c (vec_member): Define.
20172
20173 2010-06-17  Richard Guenther  <rguenther@suse.de>
20174
20175         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
20176         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
20177
20178 2010-06-17  Richard Guenther  <rguenther@suse.de>
20179
20180         * tree-inline.c (declare_return_variable): Remove bogus code.
20181
20182 2010-06-17  Richard Guenther  <rguenther@suse.de>
20183
20184         * gimplify.c (gimplify_bind_expr): Always promote complex
20185         and vector variables to registers if possible.
20186
20187 2010-06-17  Richard Guenther  <rguenther@suse.de>
20188
20189         * expr.c (get_inner_reference): Use double_int for bit_offset
20190         calculation.
20191
20192 2010-06-16  DJ Delorie  <dj@redhat.com>
20193
20194         * common.opt (-fstrict-volatile-bitfields): new.
20195         * doc/invoke.texi: Document it.
20196         * fold-const.c (optimize_bit_field_compare): For volatile
20197         bitfields, use the field's type to determine the mode, not the
20198         field's size.
20199         * expr.c (expand_assignment): Likewise.
20200         (get_inner_reference): Likewise.
20201         (expand_expr_real_1): Likewise.
20202         * expmed.c (store_fixed_bit_field): Likewise.
20203         (extract_bit_field_1): Likewise.
20204         (extract_fixed_bit_field): Likewise.
20205
20206 2010-06-16  Richard Guenther  <rguenther@suse.de>
20207
20208         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
20209
20210 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
20211
20212         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
20213         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
20214         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
20215         * debug.c: Likewise.
20216         * sdbout.c: Likewise.
20217         * vmsdbgout.c: Likewise.
20218         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
20219         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
20220         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
20221         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
20222         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
20223         * dwarf2out.c (dw_fde_struct): New fields
20224         dw_fde_vms_{end,begin}_prologue.
20225         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
20226         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
20227         (dwarf2out_vms_end_prologue): New function.
20228         (dwarf2out_vms_begin_epilogue): New function.
20229         (dw_val_struct): New value dw_val_class_vms_delta.
20230         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
20231         begin_epilogue for VMS.
20232         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
20233         new static functions.
20234         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
20235         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
20236         static functions.
20237         (print_die): New case dw_val_class_vms_delta.
20238         (attr_checksum): Likewise.
20239         (same_dw_val_p: Likewise.
20240         (size_of_die): Likewise.
20241         (value_format): Likewise.
20242         (output_die): Likewise.
20243         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
20244         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
20245         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
20246         dwarf2out_cfi_begin_epilogue
20247         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
20248
20249 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
20250
20251         * config/cris/cris-protos.h (cris_print_operand): Delete.
20252         (cris_print_operand_address): Delete.
20253         * config/cris/cris.h (PRINT_OPERAND): Delete.
20254         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20255         (PRINT_OPERAND_ADDRESS): Delete.
20256         * config/cris/cris.c (cris_print_operand_address): Make static.
20257         (cris_print_operand): Make static.
20258         (cris_print_operand_punct_valid_p): New function.
20259         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20260         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20261
20262 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
20263
20264         * config/arm/arm-protos.h (arm_print_operand): Delete.
20265         (arm_print_operand_address): Delete.
20266         * config/arm/arm.h (PRINT_OPERAND): Delete.
20267         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20268         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
20269         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
20270         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
20271         (arm_print_operand): Make static.
20272         (arm_print_operand_punct_valid_p): New function.
20273         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20274         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20275
20276 2010-06-16  Nick Clifton  <nickc@redhat.com>
20277
20278         * config/rx/constraints.md (NEGint4): New constraint.
20279         * config/rx/rx.md (attr cc): Add set_zsc.
20280         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
20281         initialised.
20282         (cmpsf): Likewise.
20283         (call_internal): Clobber the cc0 register.
20284         (call_value_internal): Likewise.
20285         (cstoresi4): Likewise.
20286         (movsieq): Likewise.
20287         (movsine): Likewise.
20288         (addsi3): Add alternative to handle small negative constants.
20289         (sunsi3): Likewise.
20290         (addsi3): Do not set the O bit in the cc0 register.
20291         (adddi3): Likewise.
20292         (subsi3): Likewise.
20293         (subdi3): Likewise.
20294         (andsi3): Reorder alternatives to prefer shorter forms.
20295         (mulsi3): Likewise.
20296         (iorsi3): Likewise.
20297         (negsi2): Note that the cc0 flags are set.
20298         (rotlsi3): Note that only the Z and S bits are set in cc0.
20299         (lshrsi3): Likewise.
20300         (ashlsi3): Likewise.
20301         (subsf3): Use %Q for the MEM operand.
20302         (fix_truncsfsi2): Likewise.
20303         (floatsisf2): Likewise.
20304         (bitset): Remove early clobber from destination.
20305         (bitset_in_memory): Likewise.
20306         (lrintsf2): Clobber the cc0 register.
20307         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
20308         (rx_print_operand): Handle %N.
20309
20310 2010-06-16  Jan Hubicka  <jh@suse.cz>
20311
20312         * df-core.c (df_compact_blocks): Free problem_temps vector.
20313
20314 2010-06-16  Martin Jambor  <mjambor@suse.cz>
20315
20316         PR tree-optimization/43905
20317         * tree-sra.c: Include tree-inline.h.
20318         (create_abstract_origin): Removed.
20319         (modify_function): Version the call graph node instead of creating
20320         abstract origins and dealing with same_body aliases.
20321         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
20322         function is versionable.
20323         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
20324
20325 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
20326
20327         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
20328         (CHOOSE_DYNAMIC_LINKER): Update.
20329
20330 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
20331
20332         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
20333         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
20334         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
20335         *prefetch_3dnow_rex.
20336
20337 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
20338
20339         * target.h (struct asm_out):Add declare_constant_name field.
20340         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
20341         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
20342         * output.h (default_asm_declare_constant_name): Declare.
20343         (assemble_label): Update prototype.
20344         * varasm.c (assemble_constant_contents): Use
20345         targetm.asm_out.declare_constant_name target hook.
20346         (assemble_label): Add 'file' argument.
20347         (default_asm_declare_constant_name): New function.
20348         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
20349         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
20350         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
20351
20352         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
20353         * config/darwin.c (darwin_asm_declare_constant_name): New function.
20354         (machopic_output_indirection): Update assemble_label argument list.
20355         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
20356         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
20357
20358 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
20359
20360         PR middle-end/44391
20361         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
20362         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
20363
20364 2010-06-15  Richard Guenther  <rguenther@suse.de>
20365
20366         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
20367
20368 2010-06-15  Paul Brook  <paul@codesourcery.com>
20369
20370         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
20371         hard-float ABI.
20372
20373 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
20374
20375         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
20376         don't get a vector type for output.
20377
20378 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
20379
20380         PR fortran/44536
20381         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
20382         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
20383         (LANG_HOOKS_DECLS): Add it.
20384         * gimplify.c (omp_notice_variable): Call
20385         lang_hooks.decls.omp_report_decl.
20386
20387 2010-06-15  Martin Jambor  <mjambor@suse.cz>
20388
20389         PR lto/44464
20390         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
20391         on the newly dead SSA name.
20392
20393 2010-06-15  Alan Modra  <amodra@gmail.com>
20394
20395         * doc/invoke.texi: Add mcmodel to powerpc options.
20396         * configure.ac: Add HAVE_LD_LARGE_TOC test.
20397         * configure: Regenerate.
20398         * config.in: Regenerate.
20399         * config/rs6000/linux64.opt (mcmodel): New.
20400         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
20401         (TARGET_CMODEL, SET_CMODEL): Define.
20402         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
20403         select CMODEL_MEDIUM default.
20404         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
20405         (TARGET_CMODEL): Define default.
20406         * config/rs6000/rs6000.c (cmodel): New variable.
20407         (rs6000_explicit_options): Add cmodel field.
20408         (rs6000_handle_option): Handle -mcmodel.
20409         (create_TOC_reference): Add largetoc_reg param.  Generate high,
20410         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
20411         (rs6000_delegitimize_address): Recognise new toc reference rtl
20412         and minimal-toc rtl.
20413         (rs6000_legitimize_reload_address): Handle new toc references.
20414         (print_operand_address): Handle legitimate_constant_pool_address_p
20415         match before lo_sum.
20416         (rs6000_eliminate_indexed_memrefs): Tidy.
20417         (rs6000_emit_move): Tweak threshold for inlining constants.
20418         Keep rs6000_emit_allocate_stack large stack frame offsets
20419         loaded into r0 inline.
20420         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
20421         (tocrel_base, tocrel_offset): New variables.
20422         (toc_relative_expr_p): Set them here.
20423         (print_operand_address): Skip over any offset on constant pool address.
20424         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
20425         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
20426         (offsettable_ok_by_alignment): New function.
20427         (rs6000_emit_move): Address suitably aligned local symbol_refs
20428         relative to the toc pointer for -mcmodel=medium.
20429         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
20430         strict param.  Allow lo_sum version of addressing.  Verify reg
20431         used for -mminimal-toc and -mcmodel != small.  Update all callers.
20432         * config/rs6000/constraints.md: Update for above change.
20433         * config/rs6000/predicates.md: Likewise.
20434         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
20435         code.
20436         (tls_gd): Split for -mcmodel=medium/large.
20437         (tls_gd_high, tls_gd_low): New.
20438         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
20439         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
20440         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
20441         (largetoc_high, largetoc_low): New.
20442         (cmptf_internal2): Add clobber.
20443         * config/rs6000/rs6000-protos.h: Update.
20444
20445 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
20446
20447         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
20448         true if no prefetch is going to be generated for a given group.
20449         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
20450         estimate the prefetch_count.
20451         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
20452         prefetch count by considering the unroll_factor and prefetch_mod
20453         for is_loop_prefetching_profitable.
20454
20455 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
20456
20457         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
20458         anything if the argument is not a MEM.
20459
20460 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
20461
20462         PR debug/43650
20463         PR debug/44181
20464         PR debug/44247
20465         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
20466         debug stmts.
20467         (canonicalize_loop_ivs): Likewise.
20468
20469 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
20470
20471         PR debug/43656
20472         * haifa-sched.c (setup_insn_reg_pressure_info,
20473         update_register_pressure): Reject debug insns.
20474         (ready_sort): Don't setup reg pressure for debug insns.
20475         (schedule_insn): Don't update reg pressure for debug insns.
20476
20477 2010-06-14  Richard Guenther  <rguenther@suse.de>
20478
20479         * lto-streamer.c (cached_bp): Remove.
20480         (bitpack_delete): Likewise.
20481         (bitpack_create): Likewise.
20482         (bp_get_next_word): Likewise.
20483         (bp_pack_value, bp_unpack_value): Move ...
20484         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
20485         Re-implement.
20486         (struct bitpack_d): Likewise.
20487         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
20488         New inline functions.
20489         * lto-streamer-out.c (lto_output_bitpack): Remove.
20490         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
20491         (pack_value_fields): Adjust.
20492         (lto_write_tree): Likewise.
20493         (output_gimple_stmt): Likewise.
20494         (output_function): Likewise.
20495         * lto-streamer-in.c (input_gimple_stmt): Adjust.
20496         (input_function): Likewise.
20497         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
20498         (lto_input_bitpack): Remove.
20499         (lto_materialize_tree): Adjust.
20500         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
20501         * lto-cgraph.c (lto_output_edge): Adjust.
20502         (lto_output_node): Likewise.
20503         (lto_output_varpool_node): Likewise.
20504         (lto_output_ref): Likewise.
20505         (input_node): Likewise.
20506         (input_varpool_node): Likewise.
20507         (input_ref): Likewise.
20508         (input_edge): Likewise.
20509         (output_node_opt_summary): Likewise.
20510         (input_node_opt_summary): Likewise.
20511         * ipa-pure-const.c (pure_const_write_summary): Likewise.
20512         (pure_const_read_summary): Likewise.
20513         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
20514         (ipa_read_indirect_edge_info): Likewise.
20515         (ipa_write_node_info): Likewise.
20516         (ipa_read_node_info): Likewise.
20517
20518 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
20519
20520         PR target/44534
20521         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
20522         (vec_extract_lo_v16hi): Likewise.
20523         (vec_extract_lo_v32qi): Likewise.
20524
20525 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
20526
20527         PR bootstrap/44426
20528         * tree.h (build_call_expr): Don't define as vararg macro, instead
20529         add a prototype.
20530         * builtins.c (build_call_nofold): Remove.
20531         (expand_builtin_int_roundingfn, expand_builtin_pow,
20532         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
20533         expand_builtin_memset_args, expand_builtin_strcmp,
20534         expand_builtin_strncmp, expand_builtin_memory_chk): Use
20535         build_call_nofold_loc instead of build_call_nofold.
20536         (build_call_expr): New function.
20537
20538         PR tree-optimization/44508
20539         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
20540         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
20541         don't eliminate trivially dead stmts.
20542         * tree-vrp.c (vrp_finalize): Pass false as last argument
20543         to substitute_and_fold.
20544         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
20545         to substitute_and_fold.
20546         * tree-ssa-ccp.c (ccp_finalize): Likewise.
20547
20548         PR bootstrap/44509
20549         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
20550
20551 2010-06-14  Ira Rosen  <irar@il.ibm.com>
20552
20553         PR tree-optimization/44507
20554         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
20555         to build initial vector for BIT_AND_EXPR.
20556         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
20557
20558 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
20559
20560         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
20561         adjust z10prop set_attr.
20562
20563 2010-06-13  Jan Hubicka  <jh@suse.cz>
20564
20565         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
20566         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
20567         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
20568         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
20569         datastructure checks into checking asserts.
20570         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
20571         * tree-ssa-sccvn.c (VN_INFO): Likewise.
20572         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
20573         df_ref_create_structure): Likewise.
20574         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
20575         pool_free): Use gcc_checking_assert.
20576         * alias.c (get_alias_set): Likewise.
20577         * var-tracking.c (variable_htab_free, shared_hash_copy,
20578         canonicalize_values_mark, variable_merge_over_cur): Likewise.
20579         * lto-streamer.c (bp_unpack_value): Likewise.
20580
20581 2010-06-13  Richard Guenther  <rguenther@suse.de>
20582
20583         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
20584         Do not stream but initialize TYPE_CANONICAL to NULL.
20585         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
20586         * gimple.c (gimple_types_compatible_p): Disregard
20587         TYPE_STRUCTURAL_EQUALITY_P.
20588         (gimple_register_type): Use TYPE_CANONICAL as cache.
20589         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
20590         before registering common types.
20591         * config/i386/i386.c (ix86_function_arg_boundary): Do not
20592         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
20593         * tree.h (TYPE_CANONICAL): Clarify documentation.
20594
20595 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
20596
20597         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
20598         LIBCALL_VALUE): Remove macros.
20599         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
20600         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20601         TARGET_FUNCTION_VALUE_REGNO_P): Define.
20602         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
20603         (ia64_function_value): Make static. Handle receiving the function
20604         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
20605
20606 2010-06-12  Jan Hubicka  <jh@suse.cz>
20607
20608         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
20609         at correct place.
20610
20611 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
20612
20613         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
20614
20615 2010-06-12  Jan Hubicka  <jh@suse.cz>
20616
20617         * df-core.c (df_clear_bb_info): New function.
20618         (df_set_blocks): bb_info is always allocated.
20619         (df_get_bb_info): Use block_info_elt_size.
20620         (df_set_bb_info): Likewise.
20621         (df_compact_blocks): Update for new block_info.
20622         (grow_bb_info): New function.
20623         * df-problems.c (df_grow_bb_info): Move to df-core.c
20624         (df_rd_set_bb_info): Remove.
20625         (df_rd_free_bb_info): Do not free block pool.
20626         (df_rd_alloc): Do not create pool, use check for
20627         obstack presence instead of NULL pointer for new blocks.
20628         (df_rd_free): DO not free alloc pool; clear block_info.
20629         (problem_RD): Add size of block info structure.
20630         (df_lr_set_bb_info): Remove.
20631         (df_lr_free_bb_info): Do not free block pool.
20632         (df_lr_alloc): Do not create pool, use check for
20633         obstack presence instead of NULL pointer for new blocks.
20634         (df_lr_free): DO not free alloc pool; clear block_info.
20635         (problem_LR): Add size of block info structure.
20636         (df_live_set_bb_info): Remove.
20637         (df_live_free_bb_info): Do not free block pool.
20638         (df_live_alloc): Do not create pool, use check for
20639         obstack presence instead of NULL pointer for new blocks.
20640         (df_live_free): DO not free alloc pool; clear block_info.
20641         (problem_LIVE): Add size of block info structure.
20642         (problem_CHAIN): Add size of block info structure.
20643         (df_byte_lr_set_bb_info): Remove.
20644         (df_byte_lr_free_bb_info): Do not free block pool.
20645         (df_byte_lr_alloc): Do not create pool, use check for
20646         obstack presence instead of NULL pointer for new blocks.
20647         (df_byte_lr_free): DO not free alloc pool; clear block_info.
20648         (problem_BYTE_LR): Add size of block info structure.
20649         (problem_NOTE): Add size of block info structure.
20650         (df_byte_MD_set_bb_info): Remove.
20651         (df_byte_MD_free_bb_info): Do not free block pool.
20652         (df_byte_MD_alloc): Do not create pool, use check for
20653         obstack presence instead of NULL pointer for new blocks.
20654         (df_byte_MD_free): DO not free alloc pool; clear block_info.
20655         (problem_BD): Add size of block info structure.
20656         * df-scan.c (df_scan_free_internal): Free block pool.
20657         (df_scan_set_bb_info): Remove.
20658         (df_scan_free_bb_info): Check for artificial_defs instead
20659         of bb_info being non-NULL.
20660         (df_scan_alloc): DO not create df_scan_block pool.
20661         (problem_SCAN): Set size of block info.
20662         (df_bb_refs_record): Do not allocate bb_info.
20663         * df.h (df_problem): Add block_info_elt_size.
20664         (struct dataflow): Change block_info to void *.
20665         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
20666         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
20667         in-line structures.
20668
20669 2010-06-12  Jan Hubicka  <jh@suse.cz>
20670
20671         PR tree-optimize/44485
20672         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
20673         containing use of return value of noreturn function.
20674
20675 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
20676
20677         * targhooks.c (default_function_value): Don't use
20678         FUNCTION_OUTGOING_VALUE.
20679         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
20680         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
20681
20682 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
20683
20684         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
20685         Add crtfastmath.o to extra_parts.
20686         * config/mips/crtfastmath.c: New.
20687         * config/mips/linux.h (ENDFILE_SPEC): New.
20688
20689 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
20690
20691         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
20692         old_type in parameter.
20693         (gcc_type_for_value): Update call to gcc_type_for_interval.
20694         (compute_type_for_level_1): Renamed compute_type_for_level.
20695         Update call to gcc_type_for_interval.
20696
20697 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
20698
20699         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
20700         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
20701
20702 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
20703
20704         * opts-common.c: Include options.h.
20705         (integral_argument): Move from opts.c.
20706         (decode_cmdline_option): New.  Based on read_cmdline_option.
20707         * opts.c (integral_argument): Move to opts-common.c.
20708         (read_cmdline_option): Move most contents to
20709         decode_cmdline_option.  Use %qs in diagnostics.
20710         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
20711         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
20712         decode_cmdline_option): New.
20713
20714 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
20715
20716         PR target/44481
20717         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
20718         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
20719         (partiysi2_cmp): Ditto.
20720         (*partiyhi2_cmp): Ditto.
20721         (*parityqi2_cmp): Remove.
20722
20723 2010-06-11  Jan Hubicka  <jh@suse.cz>
20724
20725         * bitmap.h (bmp_iter_next_bit): New.
20726         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
20727
20728 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
20729             Eric Botcazou  <ebotcazou@adacore.com>
20730
20731         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
20732         computed cost.
20733
20734 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
20735
20736         * config/i386/i386.md (unspec): New define_c_enum.
20737         (unspecv): Ditto.
20738
20739 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
20740
20741         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
20742
20743 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
20744
20745         PR middle-end/44483
20746         * tree-if-conv.c (bb_predicate_s): New struct.
20747         (bb_predicate_p): New.
20748         (bb_has_predicate): New.
20749         (bb_predicate): New.
20750         (set_bb_predicate): New.
20751         (bb_predicate_gimplified_stmts): New.
20752         (set_bb_predicate_gimplified_stmts): New.
20753         (add_bb_predicate_gimplified_stmts): New.
20754         (init_bb_predicate): New.
20755         (free_bb_predicate): New.
20756         (is_predicated): Use bb_predicate.
20757         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
20758         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
20759         before processing their successors.
20760         (clean_predicate_lists): Removed.
20761         (find_phi_replacement_condition): Use bb_predicate.
20762         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
20763         computations.
20764         (insert_gimplified_predicates): New.
20765         (combine_blocks): Call insert_gimplified_predicates.
20766         (tree_if_conversion): Call free_bb_predicate instead of
20767         clean_predicate_lists.
20768
20769 2010-10-11  Paul Brook  <paul@codesourcery.com>
20770
20771         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
20772         * config/arm/arm.c (all_architectures): Change v7e-m default to
20773         cortexm4.
20774         * config/arm/arm-cores.def: Add cortex-m4.
20775         * config/arm/arm-tune.md: Regenerate.
20776
20777 2010-06-11  Jan Hubicka  <jh@suse.cz>
20778
20779         * ipa-pure-const.c (special_builtlin_state): New function.
20780         (check_call): Use it instead of special casign BUILT_IN_RETURN.
20781         (propagate_pure_const): Use it.
20782
20783 2010-06-11  Jan Hubicka  <jh@suse.cz>
20784
20785         * df-problems.c (df_live_scratch): Convert to bitmap_head.
20786         (df_live_alloc): Initialize df_live_scratch when initializing
20787         problem_data.
20788         (df_live_transfer_function): Update uses of df_live_scratch.
20789         (df_live_free): Free problem_data; clear df_live_scratch before
20790         releasing the obstack.
20791         (df_md_free): Free problem data.
20792
20793 2010-06-11  Jan Hubicka  <jh@suse.cz>
20794
20795         * doc/invoke.texi (Wsuggest-attribute): Document.
20796         (Wmissing-noreturn): Remove.
20797         * ipa-pure-const.c (warn_function_noreturn): New function.
20798         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
20799         warn_missing_noreturn.
20800         * common.opt (Wsuggest-attribute=noreturn): New.
20801         * tree-flow.h (warn_function_noreturn): Declare.
20802         * tree-cfg.c (execute_warn_function_noreturn): Use
20803         warn_function_noreturn.
20804         (gate_warn_function_noreturn): New.
20805         (pass_warn_function_noreturn): Update.
20806
20807 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20808
20809         * c-typeck.c (handle_warn_cast_qual): Add loc
20810         parameter. Improve warning message.
20811         (build_c_cast): Pass location to handle_warn_cast_qual.
20812
20813 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
20814
20815         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
20816         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
20817         insn mnemonic.
20818         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
20819
20820 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
20821
20822         Fix bootstap on mips
20823         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
20824         be naming typedefs.
20825
20826 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
20827
20828         * system.h (helper_const_non_const_cast): New inline for
20829         gcc version <= 4.0.
20830         (CONST_CAST2): For gcc version <= 4.0 use
20831         new helper to do const/non-const casting.
20832
20833 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
20834
20835         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
20836         * Makefile.in (OBJS-common): Include insn-enums.o.
20837         (insn-enums.o): New rule.
20838         (simple_generated_c): Add insn-enums.c.
20839         (build/genenums.o): New rule.
20840         (genprogmd): Add "enums".
20841         * genconstants.c (print_enum_type): Declare a C string array
20842         for each enum.
20843         * genenums.c: New file.
20844         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
20845         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
20846         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
20847
20848 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
20849
20850         * doc/md.texi (define_enum_attr): Document.
20851         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
20852         * read-md.h (lookup_enum_type): Declare.
20853         * read-md.c (lookup_enum_type): New function.
20854         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
20855         * genattrtab.c (attr_desc): Add an enum_name field.
20856         (evaluate_eq_attr): Take the associated attribute as argument.
20857         Get the enum prefix from the enum_name field, if defined.
20858         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
20859         (simplify_test_exp): Pass attr to evaluate_eq_attr.
20860         (add_attr_value): New function, split out from...
20861         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
20862         (write_test_expr): Pass attr to evaluate_eq_attr.
20863         (write_attr_get): Use the enum_name as the enum tag, if defined.
20864         (write_attr_valueq): Use the enum_name as a prefix, if defined.
20865         (find_attr): Initialize enum_name.
20866         (main): Handle DEFINE_ENUM_ATTR.
20867         * gensupport.c (process_rtx): Likewise.
20868         * config/mips/mips.h (mips_tune_attr): Delete.
20869         * config/mips/mips.md (cpu): Use define_attr_enum.
20870
20871 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
20872
20873         * doc/md.texi (define_c_enum, define_enum): Document.
20874         * read-md.h (md_constant): Add a parent_enum field.
20875         (enum_value, enum_type): New structures.
20876         (upcase_string, traverse_enum_types): Declare.
20877         * read-md.c (enum_types): New variable.
20878         (upcase_string, add_constant): New functions.
20879         (handle_constants): Don't create the hash table here.
20880         Use add_constant.
20881         (traverse_md_constants): Don't check for a null md_constants.
20882         (decimal_string, handle_enum, traverse_enum_types): New functions.
20883         (read_md_files): Initialize md_constants and md_enums.
20884         * genconstants.c (print_md_constant): Ignore info argument.
20885         Only print constants that belong to no enum.
20886         (print_enum_type): New function.
20887         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
20888         for each defined enum type.
20889         * config/mips/mips.md (processor): New define_enum.
20890         (unspec): New define_c_enum.
20891         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
20892         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
20893         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
20894         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
20895         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
20896         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
20897         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
20898         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
20899         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
20900         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
20901         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
20902         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
20903         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
20904         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
20905         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
20906         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
20907         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
20908         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
20909         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
20910         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
20911         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
20912         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
20913         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
20914         (UNSPEC_RDDSP): Move to mips-dsp.md.
20915         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
20916         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
20917         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
20918         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
20919         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
20920         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
20921         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
20922         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
20923         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
20924         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
20925         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
20926         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
20927         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
20928         Moved to mips-dspr2.md.
20929         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
20930         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
20931         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
20932         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
20933         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
20934         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
20935         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
20936         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
20937         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
20938         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
20939         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
20940         UNSPEC_LOONGSON_PSADBH)
20941         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
20942         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
20943         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
20944         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
20945         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
20946         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
20947         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
20948         (cpu): Update comment.
20949         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
20950         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
20951         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
20952         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
20953         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
20954         UNSPEC_LOONGSON_PCMPEQ)
20955         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
20956         UNSPEC_LOONGSON_PINSR_0)
20957         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
20958         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
20959         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
20960         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
20961         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
20962         UNSPEC_LOONGSON_PSADBH)
20963         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
20964         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
20965         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
20966         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
20967         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
20968         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
20969         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
20970         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
20971         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
20972         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
20973         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
20974         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
20975         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
20976         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
20977         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
20978         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
20979         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
20980         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
20981         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
20982         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
20983         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
20984         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
20985         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
20986         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
20987         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
20988         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
20989         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
20990         (UNSPEC_RDDSP): Moved from mips.md.
20991         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
20992         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
20993         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
20994         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
20995         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
20996         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
20997         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
20998         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
20999         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
21000         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
21001         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
21002         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
21003         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
21004         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
21005         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
21006         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
21007         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
21008         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
21009         (UNSPEC_SCC): Moved from mips.md.
21010         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
21011         "processor_type" to "processor".
21012         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
21013         * config/mips/mips.h (processor_type): Delete.
21014         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
21015         "processor_type" to "processor".
21016
21017 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21018
21019         * configure.ac (tm_include_list): Add insn-constants.h.
21020         * configure: Regenerate.
21021         * Makefile.in (GTM_H): Move insn-constants.h here from...
21022         (TM_H): ...here.
21023         * mkconfig.sh: Remove special handling for insn-constants.h.
21024
21025 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21026
21027         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
21028         (BUILD_MD): ...this new variable.
21029         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
21030         that include the old contents of simple_generated_h and
21031         simple_generated_c.
21032         (simple_generated_h, simple_generated_c): Include them.  Add
21033         insn-constants.h.
21034         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
21035         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
21036         Remove these dependencies from the main rule and include
21037         insn-conditions.md in the command line only if it appears
21038         in the dependency list.
21039         (insn-constants.h, s-constants): Delete.
21040         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
21041         or gensupport.h.
21042         (build/genmddeps.o): Likewise.
21043         (genprogrtl): New variable that contains everything from genprogmd
21044         except mddeps and constants.
21045         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
21046         depend on $(BUILD_MD)
21047         (genprog): New variable.  Make these programs depend on
21048         $(BUILD_ERRORS).
21049         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
21050         (main): Use read_md_files instead of init_rtx_reader_args.
21051         * genconstants.c: As for genmddeps.c.
21052         * read-md.h (read_skip_construct): Declare.
21053         * read-md.c (read_skip_construct): New function.
21054         (handle_file): Allow a null handle_directive, skipping the
21055         construct if so.
21056         (parse_include): Update the comment accordingly.
21057
21058 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21059
21060         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
21061         * genmddeps.c: Include read-md.h.
21062         (main): Call init_rtx_reader_args instead of init_md_reader_args.
21063         * genattr.c (main): Likewise.
21064         * genattrtab.c (main): Likewise.
21065         * genautomata.c (main): Likewise.
21066         * gencodes.c (main): Likewise.
21067         * genconditions.c (main): Likewise.
21068         * genconfig.c (main): Likewise.
21069         * genconstants.c (main): Likewise.
21070         * genemit.c (main): Likewise.
21071         * genextract.c (main): Likewise.
21072         * genflags.c (main): Likewise.
21073         * genopinit.c (main): Likewise.
21074         * genoutput.c (main): Likewise.
21075         * genpeep.c (main): Likewise.
21076         * genrecog.c (main): Likewise.
21077         * genpreds.c (main): Likewise.
21078         * gensupport.h (in_fname): Move to read-md.h.
21079         (init_md_reader_args_cb): Rename to...
21080         (init_rtx_reader_args_cb): ...this and return a bool.
21081         (init_md_reader_args): Rename to...
21082         (init_rtx_reader_args): ...this and return a bool.
21083         (include_callback): Move to read-md.h.
21084         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
21085         (file_name_list, first_dir_md_include): Move to read-md.c
21086         (first_bracket_include): Delete unused variable.
21087         (last_dir_md_include): Move to read-md.c.
21088         (process_include): Delete, moving code to read-md.c:handle_include.
21089         (process_rtx): Don't handle INCLUDE.
21090         (save_string): Delete.
21091         (rtx_handle_directive): New function.
21092         (init_md_reader_args_cb): Rename to...
21093         (init_rtx_reader_args_cb): ...this and return a boolean success value.
21094         Use read_md_args.
21095         (init_md_reader_args): Rename to...
21096         (init_rtx_reader_args): ...this and return a boolean success value.
21097         * rtl.def (INCLUDE): Delete.
21098         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
21099         argument.
21100         * read-rtl.c (read_conditions): Don't gobble ')' here.
21101         (read_mapping): Likewise.
21102         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
21103         Handle top-level non-rtx constructs here rather than in read_rtx_1.
21104         Store the whole queue in *X.  Remove call to init_md_reader.
21105         (read_rtx_1): Rename to...
21106         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
21107         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
21108         here.
21109         (read_nested_rtx): New function.  Handle (nil) here rather than
21110         in read_rtx_code.
21111         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
21112         gobble ')' here.
21113         * read-md.h (directive_handler_t): New type.
21114         (in_fname, include_callback): Moved from read-md.h.
21115         (read_constants, init_md_reader): Delete.
21116         (read_md_files): Declare.
21117         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
21118         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
21119         from gensupport.c.
21120         (read_constants): Rename to...
21121         (handle_constants): ...this.  Don't gobble ')' here.
21122         (handle_include, handle_file, handle_toplevel_file)
21123         (parse_include): New functions, mostly taken from gensupport.c.
21124         (init_md_reader): Subsume into...
21125         (read_md_files): ...this new function.
21126
21127 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21128
21129         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
21130         (unread_char): Decrement read_md_lineno after putting back '\n'.
21131         * read-md.c (fatal_with_file_and_line): Push back any characters
21132         that we decide not to add to the context.
21133         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
21134         fatal_expected_char in cases where '/' ends a line (for example).
21135         (read_name): Don't increment read_md_lineno here.
21136         (read_escape): Likewise.
21137         (read_quoted_string): Likewise.
21138         (read_braced_string): Likewise.
21139
21140 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21141
21142         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
21143         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
21144         * genconstants.c: Include read-md.h.
21145         * read-rtl.c (md_constants): Move to read-md.c.
21146         (md_name): Move to read-md.h.
21147         (initialize_iterators): Use leading_string_hash instead of def_hash
21148         and leading_string_eq_p instead of def_name_eq_p.
21149         (read_name): Move to read-md.c.
21150         (def_hash, def_name_eq_p): Delete.
21151         (read_constants, traverse_md_constants): Move to read-md.c.
21152         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
21153         * read-md.h: Include hashtab.h.
21154         (md_name): Moved from read-rtl.c.
21155         (md_constant): Moved from read-md.h.
21156         (leading_string_hash, leading_string_eq_p, read_name)
21157         (read_constants, traverse_md_constants): Declare.
21158         * read-md.c (md_constants): Moved from read-rtl.c.
21159         (leading_string_hash, leading_string_eq_p): New functions.
21160         (read_name, read_constants, traverse_md_constants): Moved from
21161         read-rtl.c.
21162
21163 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21164
21165         * read-rtl.c (md_name): New structure.
21166         (read_name): Take an md_name instead of a buffer pointer.
21167         Use the "string" field instead of strcpy when expanding constants.
21168         (read_constants): Remove the tmp_char argument.  Update the calls
21169         to read_name, using two local name buffers instead of the tmp_char
21170         argument.  Merge the constant-creation code.
21171         (read_conditions): Remove the tmp_char argument.  Update the calls
21172         to read_name, using a local name buffer instead of the tmp_char
21173         argument.
21174         (read_mapping): Replace tmp_char variable with a local name buffer.
21175         Update the calls to read_name.
21176         (read_rtx_1): Likewise.  Update the calls to read_constants and
21177         read_conditions.
21178
21179 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21180
21181         * Makefile.in (build/read-md.o): Depend on errors.h.
21182         * read-md.h (error_with_line): Declare.
21183         * read-md.c: Include errors.h.
21184         (message_with_line_1): New function, extracted from...
21185         (message_with_line): ...here.
21186         (error_with_line): New function.
21187         * genattrtab.c: If a call to message_with_line is followed by
21188         "have_error = 1;", replace both statements with a call to
21189         error_with_line.
21190         * genoutput.c: Likewise.
21191         * genpreds.c: Likewise.
21192         * genrecog.c: If a call to message_with_line is followed by
21193         "error_count++;", replace both statements with a call to
21194         error_with_line.
21195         (errorcount): Delete.
21196         (main): Don't check it.
21197         * gensupport.c: If a call to message_with_line is followed by
21198         "errors = 1;", replace both statements with a call to error_with_line.
21199         (errors): Delete.
21200         (process_define_cond_exec): Check have_error instead of errors.
21201         (init_md_reader_args_cb): Likewise.  Don't set errors.
21202
21203 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21204
21205         * read-md.h (read_md_file): Declare.
21206         (read_char, unread_char): New functions.
21207         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21208         (read_quoted_string, read_string): Remove FILE * argument.
21209         * read-md.c (read_md_file): New variable.
21210         (read_md_filename, read_md_lineno): Update comments and remove
21211         unnecessary initialization.
21212         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21213         (read_escape, read_quoted_string, read_braced_string, read_string):
21214         Remove FILE * argument.  Update calls accordingly, using read_char
21215         and unread_char instead of getc and ungetc.
21216         * rtl.h (read_rtx): Remove FILE * argument.
21217         * read-rtl.c (iterator_group): Remove FILE * argument from
21218         "find_builtin".
21219         (iterator_traverse_data): Remove "infile" field.
21220         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
21221         (add_mapping, read_name, read_constants, read_conditions)
21222         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
21223         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
21224         Remove file arguments from all calls, using read_char and unread_char
21225         instead of getc and ungetc.
21226         * gensupport.c (process_include): Preserve read_md_file around
21227         the include.  Set read_md_file to the handle of the included file.
21228         Update call to read_rtx.
21229         (init_md_reader_args_cb): Set read_md_file to the handle of the file
21230         and remove local FILE *.  Update calls to read_rtx.
21231
21232 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21233
21234         * read-md.h (read_rtx_lineno): Rename to...
21235         (read_md_lineno): ...this.
21236         (read_rtx_filename): Rename to...
21237         (read_md_filename): ...this.
21238         (copy_rtx_ptr_loc): Rename to...
21239         (copy_md_ptr_loc): ...this.
21240         (print_rtx_ptr_loc): Rename to...
21241         (print_md_ptr_loc): ...this.
21242         * read-md.c: Likewise.  Update references after renaming.
21243         (string_obstack): Replace RTL with MD in comment.
21244         (set_rtx_ptr_loc): Rename to...
21245         (set_md_ptr_loc): ...this.
21246         (get_rtx_ptr_loc): Rename to...
21247         (get_md_ptr_loc): ...this.
21248         * genconditions.c: Update references after renaming.
21249         * genemit.c: Likewise.
21250         * genoutput.c: Likewise.
21251         * genpreds.c: Likewise.
21252         * gensupport.c: Likewise.
21253         * read-rtl.c: Likewise.
21254
21255 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21256
21257         * Makefile.in (READ_MD_H): New variable.
21258         (BUILD_RTL): Add build/read-md.o.
21259         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
21260         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
21261         (build/genattrtab.o, build/genconditions.o build/genemit.o)
21262         (build/genextract.o, build/genflags.o, build/genoutput.o)
21263         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
21264         (build/read-md.o): New rule.
21265         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
21266         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
21267         * coretypes.h: ...here.
21268         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
21269         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
21270         * genattr.c: Include read-md.h.
21271         * genattrtab.c: Likewise.
21272         * genconditions.c: Likewise.
21273         * genemit.c: Likewise.
21274         * genextract.c: Likewise.
21275         * genflags.c: Likewise.
21276         * genoutput.c: Likewise.
21277         * genpreds.c: Likewise.
21278         * genrecog.c: Likewise.
21279         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
21280         (join_c_conditions, print_c_condition, read_rtx_filename)
21281         (read_rtx_lineno): Move to read-md.h.
21282         * read-rtl.c: Include read-md.h.
21283         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
21284         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
21285         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
21286         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
21287         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
21288         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
21289         (read_braced_string, read_string): Move to read-md.c.
21290         (read_rtx): Move some initialization to init_md_reader and call
21291         init_md_reader here.
21292         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
21293         Move to read-md.h.
21294         * gensupport.c: Include read-md.h.
21295         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
21296         * read-md.h, read-md.c: New files.
21297
21298 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
21299
21300         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21301         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21302         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
21303         * config/moxie/moxie.c (moxie_function_value): Make static.
21304         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
21305         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
21306
21307 2010-06-10  Martin Jambor  <mjambor@suse.cz>
21308
21309         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
21310         * dbgcnt.def (tree_sra): New counter.
21311         * tree-sra.c: Include dbgcnt.h.
21312         (gate_intra_sra): Check tree_sra debug counter.
21313
21314 2010-06-10  Martin Jambor  <mjambor@suse.cz>
21315
21316         PR tree-optimization/44258
21317         * tree-sra.c (build_access_subtree): Return false iff there is a
21318         partial overlap.
21319         (build_access_trees): Likewise.
21320         (analyze_all_variable_accesses): Disqualify candidates if
21321         build_access_trees returns true for them.
21322
21323 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
21324
21325         PR debug/41371
21326         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
21327         tail-recurse into canonical node.  Fast-forward over
21328         non-canonical VALUEs.
21329
21330 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
21331
21332         PR boostrap/44470
21333         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
21334         (*addsi_1_zext) <TYPE_LEA>: Likewise.
21335         (add lea splitter): Likewise.
21336         (add_zext lea splitter): Likewise.
21337
21338 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
21339
21340         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
21341
21342 2010-06-10  Jan Hubicka  <jh@suse.cz>
21343
21344         * df-problems.c (df_live_problem_data): Add live_bitmaps.
21345         (df_live_alloc): Initialize problem data and live_osbtacks.
21346         (df_live_finalize): Remove obstack, problem data; do not
21347         clear all bitmaps.
21348         (df_live_top_dump, df_live_bottom_dump): Do not dump old
21349         data when not allocated.
21350         (df_live_verify_solution_start): Do not allocate problem data.
21351         (df_live_verify_solution_end): Check if out is allocated.
21352         (struct df_md_problem_data): New structure.
21353         (df_md_alloc): Allocate problem data.
21354         (df_md_free): Free problem data; do not clear bitmaps.
21355
21356 2010-06-10  Jan Beulich  <jbeulich@novell.com>
21357
21358         PR bootstrap/37304
21359         * configure.ac: Replace $() with ${} when intending to expand
21360         variables rather than invoking commands.
21361         * configure: Re-generate.
21362
21363 2010-06-10  Jan Hubicka  <jh@suse.cz>
21364
21365         PR rtl-optimization/44460
21366         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21367         TYPE_NEEDS_CONSTRUCTING sanity check.
21368
21369 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
21370
21371         * doc/include/fdl.texi: Move to GFDL version 1.3.
21372
21373         * doc/cpp.texi: Move to GFDL version 1.3.
21374         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
21375         * doc/gccint.texi: Move to GFDL version 1.3.
21376         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
21377         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
21378         * doc/invoke.texi: Move to GFDL version 1.3.
21379
21380 2010-06-09  Jan Hubicka  <jh@suse.cz>
21381
21382         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
21383         Break out from ...
21384         (propagate) ... here; swap the order.
21385
21386 2010-06-09  Jan Hubicka  <jh@suse.cz>
21387
21388         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
21389         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
21390         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
21391         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
21392
21393 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
21394
21395         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
21396         Do not the gather memory reference in the outer loop if the step
21397         is not a constant.
21398
21399 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
21400
21401         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
21402         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
21403         8 to 4.  Minor change of the related comments.
21404
21405 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21406
21407         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
21408         the scev analysis when the variable is not used outside the loop
21409         in a close phi node: call compute_overall_effect_of_inner_loop.
21410
21411 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21412
21413         * graphite-sese-to-poly.c (single_pred_cond): Renamed
21414         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
21415         (build_sese_conditions_before): Renamed call to single_pred_cond.
21416         (build_sese_conditions_after): Same.
21417
21418 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21419
21420         * graphite-poly.h: Fix comments and indentation.
21421         * graphite-sese-to-poly.c: Same.
21422         (build_sese_conditions_before): Compute stmt and gbb only when needed.
21423         * tree-chrec.c: Fix comments and indentation.
21424         (tree-ssa-loop-niter.c): Same.
21425
21426 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
21427
21428         PR rtl-optimization/42461
21429         * dce.c (deletable_insn_p): Return true for const or pure calls again.
21430         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
21431
21432 2010-06-09  Jan Hubicka  <jh@suse.cz>
21433
21434         * bitmap.c (bitmap_and): Walk array forward.
21435         (bitmap_and_compl_into): Likewise.
21436         (bitmap_xor): Likewise.
21437         (bitmap_xor_into):  Likewise.
21438         (bitmap_equal_p): Likewise.
21439         (bitmap_intersect_p): Likewise.
21440         (bitmap_intersect_compl_p): Likewise.
21441         (bitmap_ior_and_into): Likewise.
21442         (bitmap_elt_copy): Likewise.
21443         (bitmap_and_compl): Likewise.
21444         (bitmap_elt_ior): Likewise.
21445
21446 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
21447
21448         * opts-common.c (prune_options): Ensure replacement argv array
21449         is correctly terminated by a NULL entry.
21450
21451 2010-06-09  Jan Hubicka  <jh@suse.cz>
21452
21453         * cgraph.h (varpool_first_static_initializer,
21454         varpool_next_static_initializer): Make checking only when
21455         checking enabled.
21456         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
21457         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
21458         gcc_assert to gcc_checking_assert.
21459         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
21460         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
21461         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
21462         op_iter_init_phiuse, op_iter_init_phidef,
21463         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
21464         gcc_checking_assert.
21465         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
21466         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
21467         partition_is_global, live_on_entry, live_on_exit,
21468         live_merge_and_clear): Likewise.
21469         * system.h (gcc_checking_assert): New macro.
21470         * gimple.h (set_bb_seq): Use gcc_checking_assert.
21471
21472 2010-06-09  Jason Merrill  <jason@redhat.com>
21473
21474         * Makefile.in (TAGS): Collect tags info from c-family.
21475
21476 2010-06-09  Jan Hubicka  <jh@suse.cz>
21477
21478         * gimple.h (gcc_gimple_checking_assert): New macro.
21479         (gimple_set_def_ops, gimple_set_use_ops,
21480         gimple_set_vuse, gimple_set_vdef,
21481         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
21482         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
21483         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
21484         gimple_asm_output_op, gimple_asm_output_op_ptr,
21485         gimple_asm_set_output_op, gimple_asm_clobber_op,
21486         gimple_asm_set_clobber_op, gimple_asm_label_op,
21487         gimple_asm_set_label_op, gimple_try_set_kind,
21488         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
21489         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
21490         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
21491         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
21492         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
21493         gimple_omp_for_set_initial, gimple_omp_for_final,
21494         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
21495         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
21496         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
21497         conditional with ENABLE_GIMPLE_CHECKING.
21498         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
21499
21500 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
21501
21502         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
21503         (get_computation_cost_at): Use it.
21504         (determine_use_iv_cost_condition): Likewise.
21505         (determine_iv_cost): Likewise.
21506
21507 2010-06-09  Richard Guenther  <rguenther@suse.de>
21508
21509         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
21510         replace constants.
21511
21512 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
21513
21514         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
21515
21516 2010-06-09  Martin Jambor  <mjambor@suse.cz>
21517
21518         PR tree-optimization/44423
21519         * tree-sra.c (dump_access): Dump also grp_assignment_read.
21520         (analyze_access_subtree): Pass negative allow_replacements to children
21521         if the current type is scalar.
21522
21523 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
21524
21525         PR testsuite/42843
21526         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
21527         * doc/plugins.texi (Plugin license check): Update information
21528         on type of plugin_is_GPL_compatible.
21529         * Makefile.in (PLUGINCC): Define as $(COMPILER).
21530         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
21531
21532 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
21533
21534         * config/arm/arm.c (thumb2_reorg): New function.
21535         (arm_reorg): Call it.
21536         * config/arm/thumb2.md (define_peephole2 for flag clobbering
21537         arithmetic operations): Delete.
21538
21539 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
21540
21541         PR target/44067
21542         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
21543         e500v2 target.
21544
21545 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
21546
21547         PR plugins/44459
21548         * gcc-plugin.h: Encapsulate all declarations in extern "C".
21549
21550 2010-06-08  Jan Hubicka  <jh@suse.cz>
21551
21552         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
21553         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
21554
21555 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
21556
21557         PR tree-optimization/39874
21558         PR middle-end/28685
21559         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
21560         Declare.
21561         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
21562         same_bool_result_p): New.
21563         (and_var_with_comparison, and_var_with_comparison_1,
21564         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
21565         (or_var_with_comparison, or_var_with_comparison_1,
21566         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
21567         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
21568         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
21569         of combine_comparisons.
21570         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
21571
21572 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
21573
21574         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21575         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21576         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
21577         pdp11_function_value_regno_p): New functions.
21578         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21579         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21580
21581 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
21582
21583         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
21584         Thumb-2 in the MINUS case.
21585
21586 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
21587
21588         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
21589
21590         * doc/gty.texi (GTY Options): Document typed GC allocation and
21591         variable_size GTY option.
21592
21593         * ggc-internal.h: New.
21594
21595         * ggc.h: Update copyright year.
21596         (digit_string): Move to stringpool.c.
21597         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
21598         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
21599         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
21600         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
21601         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
21602         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
21603         (ggc_force_collect, ggc_get_size, ggc_statistics)
21604         (ggc_print_common_statistics): Move to ggc-internal.h.
21605         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
21606         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
21607         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
21608         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
21609         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
21610         (ggc_alloc_zone_pass_stat): Remove.
21611         (ggc_internal_alloc_stat, ggc_internal_alloc)
21612         (ggc_internal_cleared_alloc_stat): New.
21613         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
21614         (ggc_internal_vec_alloc_stat)
21615         (ggc_internal_cleared_vec_alloc_stat)
21616         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
21617         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
21618         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
21619         (ggc_cleared_alloc_ptr_array_two_args): New.
21620         (htab_create_ggc, splay_tree_new_ggc): Redefine.
21621         (ggc_splay_alloc): Change the type of the first argument to
21622         enum gt_types_enum.
21623         (ggc_alloc_string): Make macro.
21624         (ggc_alloc_string_stat): New.
21625         (ggc_strdup): Redefine.
21626         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
21627         (ggc_alloc_rtvec_sized): New.
21628         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
21629         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
21630         (ggc_internal_cleared_alloc_zone_stat)
21631         (ggc_internal_zone_alloc_stat)
21632         (ggc_internal_zone_cleared_alloc_stat)
21633         (ggc_internal_zone_vec_alloc_stat)
21634         (ggc_alloc_zone_rtx_def_stat)
21635         (ggc_alloc_zone_tree_node_stat)
21636         (ggc_alloc_zone_cleared_tree_node_stat)
21637         (ggc_alloc_cleared_gimple_statement_d_stat): New.
21638
21639         * ggc-common.c: Include ggc-internal.h.
21640         (ggc_internal_cleared_alloc_stat): Rename from
21641         ggc_alloc_cleared_stat.
21642         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
21643         (ggc_calloc): Remove.
21644         (ggc_cleared_alloc_htab_ignore_args): New.
21645         (ggc_cleared_alloc_ptr_array_two_args): New.
21646         (ggc_splay_alloc): Add obj_type parameter.
21647         (init_ggc_heuristics): Formatting fixes.
21648
21649         * ggc-none.c: Update copyright year.
21650         (ggc_alloc_stat): Rename to ggc_alloc_stat.
21651         (ggc_alloc_cleared_stat): Rename to
21652         ggc_internal_cleared_alloc_stat.
21653         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
21654
21655         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
21656         Remove references to ggc_alloc in comments.
21657         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
21658         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
21659         (new_ggc_zone, destroy_ggc_zone): Remove.
21660         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
21661
21662         * ggc-zone.c: Include ggc-internal.h.  Remove references to
21663         ggc_alloc in comments.
21664         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
21665         (ggc_internal_alloc_zone_pass_stat): New.
21666         (ggc_internal_cleared_alloc_zone_stat): New.
21667         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
21668         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
21669         (new_ggc_zone, destroy_ggc_zone): Remove.
21670
21671         * stringpool.c: Update copyright year.  Include ggc-internal.h
21672         (digit_vector): Make static.
21673         (digit_string): Moved from ggc.h.
21674         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
21675         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
21676
21677         * Makefile.in (GGC_INTERNAL_H): New.
21678         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
21679         $(GGC_INTERNAL_H) to dependencies.
21680
21681         * gentype.c: Update copyright year.
21682         (walk_type): Accept variable_size GTY option.
21683         (USED_BY_TYPED_GC_P): New macro.
21684         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
21685         whitespace at the end of strings.
21686         (get_type_specifier, variable_size_p): New functions.
21687         (alloc_quantity, alloc_zone): New enums.
21688         (write_typed_alloc_def): New function.
21689         (write_typed_struct_alloc_def): Likewise.
21690         (write_typed_typed_typedef_alloc_def): Likewise.
21691         (write_typed_alloc_defns): Likewise.
21692         (output_typename, write_splay_tree_allocator_def): Likewise.
21693         (write_splay_tree_allocators): Likewise.
21694         (main): Call write_typed_alloc_defns and
21695         write_splay_tree_allocators.
21696
21697         * lto-streamer.h (lto_file_decl_data_ptr): New.
21698
21699         * passes.c (order): Define using cgraph_node_ptr.
21700
21701         * strinpool.c (struct string_pool_data): Declare nested_ptr using
21702         ht_identifier_ptr.
21703
21704         * gimple.h (union gimple_statement_d): Likewise.
21705
21706         * rtl.h (struct rtx_def): Likewise.
21707         (struct rtvec_def): Likewise.
21708
21709         * tree.h (union tree_node): Likewise.
21710
21711         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
21712
21713         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
21714
21715         * tree-scalar-evolution.c (scev_initialize): Likewise.
21716
21717         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
21718
21719         * dwarf2asm.c (dw2_force_const_mem): Likewise.
21720
21721         * omp-low.c (lower_omp_critical): Likewise.
21722
21723         * bitmap.h (struct bitmap_head_def): Update comment to not
21724         reference ggc_alloc.
21725
21726         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
21727
21728         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
21729
21730         * ipa-prop.c (duplicate_ggc_array): Rename to
21731         duplicate_ipa_jump_func_array.  Use typed GC allocation.
21732         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
21733
21734         * gimple.c (gimple_alloc_stat): Use
21735         ggc_alloc_cleared_gimple_statement_d_stat.
21736
21737         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
21738
21739         * tree.c (make_node_stat): Use
21740         ggc_alloc_zone_cleared_tree_node_stat.
21741         (make_tree_vec_stat): Likewise.
21742         (build_vl_exp_stat): Likewise.
21743         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
21744         (make_tree_binfo_stat): Likewise.
21745         (tree_cons_stat): Likewise.
21746
21747         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
21748         (shallow_copy_rtx_stat): Likewise.
21749         (make_node_stat): Likewise.
21750
21751         * lto-symtab.c: Fix comment.
21752
21753         * tree-cfg.c (create_bb): Update comment to not reference
21754         ggc_alloc_cleared.
21755         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
21756
21757         * varpool.c (varpool_node): Use typed GC allocation.
21758         (varpool_extra_name_alias): Likewise.
21759
21760         * varasm.c (emutls_decl): Likewise.
21761         (get_unnamed_section): Likewise.
21762         (get_noswitch_section): Likewise.
21763         (get_section): Likewise.
21764         (get_block_for_section): Likewise.
21765         (build_constant_desc): Likewise.
21766         (create_constant_pool): Likewise.
21767         (force_const_mem): Likewise.
21768
21769         * tree.c (build_vl_exp_stat): Likewise.
21770         (build_real): Likewise.
21771         (build_string): Likewise.
21772         (decl_debug_expr_insert): Likewise.
21773         (decl_value_expr_insert): Likewise.
21774         (type_hash_add): Likewise.
21775         (build_omp_clause): Likewise.
21776
21777         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
21778
21779         * tree-ssa.c (init_tree_ssa): Likewise.
21780
21781         * tree-ssa-structalias.c (heapvar_insert): Likewise.
21782
21783         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
21784
21785         * tree-ssa-loop-niter.c (record_estimate): Likewise.
21786
21787         * tree-ssa-alias.c (get_ptr_info): Likewise.
21788
21789         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
21790
21791         * tree-phinodes.c (allocate_phi_node): Likewise.
21792
21793         * tree-iterator.c (tsi_link_before): Likewise.
21794         (tsi_link_after): Likewise.
21795
21796         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
21797
21798         * tree-dfa.c (create_var_ann): Likewise.
21799
21800         * tree-cfg.c (create_bb): Likewise.
21801
21802         * toplev.c (alloc_for_identifier_to_locale): Likewise.
21803         (general_init): Likewise.
21804
21805         * stringpool.c (stringpool_ggc_alloc): Likewise.
21806         (gt_pch_save_stringpool): Likewise.
21807
21808         * sese.c (if_region_set_false_region): Likewise.
21809
21810         * passes.c (do_per_function_toporder): Likewise.
21811
21812         * optabs.c (set_optab_libfunc): Likewise.
21813         (set_conv_libfunc): Likewise.
21814
21815         * lto-symtab.c (lto_symtab_register_decl): Likewise.
21816
21817         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
21818         (input_eh_region): Likewise.
21819         (input_eh_lp): Likewise.
21820         (make_new_block): Likewise.
21821         (unpack_ts_real_cst_value_fields): Likewise.
21822
21823         * lto-section-in.c (lto_new_in_decl_state): Likewise.
21824
21825         * lto-cgraph.c (input_node_opt_summary): Likewise.
21826
21827         * loop-init.c (loop_optimizer_init): Likewise.
21828
21829         * lambda.h (lambda_vector_new): Likewise.
21830
21831         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
21832
21833         * ira.c (update_equiv_regs): Likewise.
21834
21835         * ipa.c (cgraph_node_set_new): Likewise.
21836         (cgraph_node_set_add): Likewise.
21837         (varpool_node_set_new): Likewise.
21838         (varpool_node_set_add): Likewise.
21839
21840         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
21841         (duplicate_ipa_jump_func_array): Likewise.
21842         (ipa_read_node_info): Likewise.
21843
21844         * ipa-cp.c (ipcp_create_replace_map): Likewise.
21845
21846         * integrate.c (get_hard_reg_initial_val): Likewise.
21847
21848         * gimple.c (gimple_alloc_stat): Likewise.
21849         (gimple_build_omp_for): Likewise.
21850         (gimple_seq_alloc): Likewise.
21851         (gimple_copy): Likewise.
21852
21853         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
21854         (gsi_insert_after_without_update): Likewise.
21855
21856         * function.c (add_frame_space): Likewise.
21857         (insert_temp_slot_address): Likewise.
21858         (assign_stack_temp_for_type): Likewise.
21859         (allocate_struct_function): Likewise.
21860         (types_used_by_var_decl_insert): Likewise.
21861
21862         * except.c (init_eh_for_function): Likewise.
21863         (gen_eh_region): Likewise.
21864         (gen_eh_region_catch): Likewise.
21865         (gen_eh_landing_pad): Likewise.
21866         (add_call_site): Likewise.
21867
21868         * emit-rtl.c (get_mem_attrs): Likewise.
21869         (get_reg_attrs): Likewise.
21870         (start_sequence): Likewise.
21871         (init_emit): Likewise.
21872
21873         * dwarf2out.c (new_cfi): Likewise.
21874         (queue_reg_save): Likewise.
21875         (dwarf2out_frame_init): Likewise.
21876         (new_loc_descr): Likewise.
21877         (find_AT_string): Likewise.
21878         (new_die): Likewise.
21879         (add_var_loc_to_decl): Likewise.
21880         (clone_die): Likewise.
21881         (clone_as_declaration): Likewise.
21882         (break_out_comdat_types): Likewise.
21883         (new_loc_list): Likewise.
21884         (loc_descriptor): Likewise.
21885         (add_loc_descr_to_each): Likewise.
21886         (add_const_value_attribute): Likewise.
21887         (tree_add_const_value_attribute): Likewise.
21888         (add_comp_dir_attribute): Likewise.
21889         (add_name_and_src_coords_attributes): Likewise.
21890         (lookup_filename): Likewise.
21891         (store_vcall_insn): Likewise.
21892         (dwarf2out_init): Likewise.
21893
21894         * dbxout.c (dbxout_init): Likewise.
21895
21896         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
21897
21898         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
21899
21900         * config/score/score7.c (score7_output_external): Likewise.
21901
21902         * config/score/score3.c (score3_output_external): Likewise.
21903
21904         * config/s390/s390.c (s390_init_machine_status): Likewise.
21905
21906         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
21907         (rs6000_init_machine_status): Likewise.
21908         (output_toc): Likewise.
21909
21910         * config/pa/pa.c (pa_init_machine_status): Likewise.
21911         (get_deferred_plabel): Likewise.
21912
21913         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
21914
21915         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
21916
21917         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
21918
21919         * config/mep/mep.c (mep_init_machine_status): Likewise.
21920         (mep_note_pragma_flag): Likewise.
21921
21922         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
21923
21924         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
21925
21926         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
21927
21928         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
21929         (i386_pe_maybe_record_exported_symbol): Likewise.
21930
21931         * config/i386/i386.c (get_dllimport_decl): Likewise.
21932         (ix86_init_machine_status): Likewise.
21933         (assign_386_stack_local): Likewise.
21934
21935         * config/frv/frv.c (frv_init_machine_status): Likewise.
21936
21937         * config/darwin.c (machopic_indirection_name): Likewise.
21938
21939         * config/cris/cris.c (cris_init_machine_status): Likewise.
21940
21941         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
21942
21943         * config/avr/avr.c (avr_init_machine_status): Likewise.
21944
21945         * config/arm/arm.c (arm_init_machine_status): Likewise.
21946
21947         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
21948         (alpha_need_linkage): Likewise.
21949         (alpha_use_linkage): Likewise.
21950
21951         * cgraph.c (cgraph_allocate_node): Likewise.
21952         (cgraph_create_edge_1): Likewise.
21953         (cgraph_create_indirect_edge): Likewise.
21954         (cgraph_add_asm_node): Likewise.
21955
21956         * cfgrtl.c (init_rtl_bb_info): Likewise.
21957
21958         * cfgloop.c (alloc_loop): Likewise.
21959         (rescan_loop_exit): Likewise.
21960
21961         * cfg.c (init_flow): Likewise.
21962         (alloc_block): Likewise.
21963         (unchecked_make_edge): Likewise.
21964
21965         * c-parser.c (c_parse_init): Likewise.
21966         (c_parse_file): Likewise.
21967
21968         * c-decl.c (bind): Likewise.
21969         (record_inline_static): Likewise.
21970         (push_scope): Likewise.
21971         (make_label): Likewise.
21972         (lookup_label_for_goto): Likewise.
21973         (finish_struct): Likewise.
21974         (finish_enum): Likewise.
21975         (c_push_function_context): Likewise.
21976
21977         * bitmap.c (bitmap_element_allocate): Likewise.
21978         (bitmap_gc_alloc_stat): Likewise.
21979
21980         * alias.c (record_alias_subset): Likewise.
21981         (init_alias_analysis): Likewise.
21982
21983 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
21984
21985         * fold-const.c (fold_comparison): Remove redundant parenthesis.
21986         * tree-inline.c (expand_call_inline): Pass translated return value of
21987         cgraph_inline_failed_string to diagnostic function.
21988
21989 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
21990             Shujing Zhao  <pearly.zhao@oracle.com>
21991
21992         PR c/37724
21993         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
21994         implicit bad conversions is initialization.
21995         (error_init): Use gmsgid instead of msgid for argument name and change
21996         the call for error.
21997         (pedwarn_init): Use gmsgid instead of msgid for argument name and
21998         change the call for pedwarn.
21999         (warning_init): Use gmsgid instead of msgid for argument name and
22000         change the call for warning.
22001
22002 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
22003
22004         * config/mips/mips-protos.h (mips_print_operand): Delete.
22005         (mips_print_operand_address): Delete.
22006         * config/mips/mips.h (mips_print_operand_punct): Delete.
22007         (PRINT_OPERAND): Delete.
22008         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22009         (PRINT_OPERAND_ADDRESS): Delete.
22010         * config/mips/mips.c (mips_print_operand_punct): Make static.
22011         (mips_print_operand_address): Make static.
22012         (mips_print_operand): Make static.  Call
22013         mips_print_operand_punct_valid_p.
22014         (mips_print_operand_punct_valid_p): New function.
22015         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22016         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22017
22018 2010-06-07  Jan Hubicka  <jh@suse.cz>
22019
22020         PR middle-end/44454
22021         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
22022         are allocated.
22023
22024 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
22025
22026         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
22027         name of RECORD.
22028
22029 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22030
22031         * doc/sourcebuild.texi (Effective-Target Keywords, Other
22032         attributes): Document gas.
22033
22034 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
22035
22036         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
22037         <TYPE_LEA>: Split instruction.
22038         <default>: Remove alternative 2 handling.
22039         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
22040         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
22041         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
22042
22043         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
22044         (ashift_zext lea splitter): Use DImode for multiplication.
22045
22046         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
22047         to generate addition.
22048
22049 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
22050
22051         * common.opt (fira-verbose): Use Var.
22052         (fpcc-struct-return): Use Init instead of VarExists.
22053         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
22054         toplev.c.
22055         * flags.h (flag_signed_char, flag_short_enums,
22056         flag_pcc_struct_return, flag_ira_verbose,
22057         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
22058         * toplev.c (flag_detailed_statistics, flag_signed_char,
22059         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
22060         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
22061         * toplev.h (flag_crossjumping, flag_if_conversion,
22062         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
22063         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
22064         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
22065         flag_cprop_registers, time_report, flag_ira_loop_pressure,
22066         flag_ira_coalesce, flag_ira_move_spills,
22067         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
22068
22069 2010-06-07  Jan Hubicka  <jh@suse.cz>
22070
22071         * df-core.c (df_analyze_problem): Do verification after allocation.
22072
22073         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
22074         (df_lr_alloc): Initialize problem data; move bitmaps to
22075         lr_bitmaps obstack.
22076         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
22077         (df_lr_verify_solution_start): Do not initialize problem data;
22078         allocate bitmaps in lr_bitmaps.
22079         (df_lr_verify_solution_end): Do not free problem data.
22080
22081 2010-06-07  Jan Hubicka  <jh@suse.cz>
22082
22083         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
22084         if caller is noreturn.
22085         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
22086         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
22087         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
22088         * ipa-pure-const.c (check_decl): Add IPA parameter.
22089         (state_from_flags): New function.
22090         (better_state, worse_state): New functions.
22091         (check_call): When in IPA mode, do not care about callees.
22092         (check_load, check_store): Update.
22093         (check_ipa_load, check_ipa_store): New.
22094         (check_stmt): When in IPA mode, use IPA checkers.
22095         (analyze_function): Use state_from_flags.
22096         (propagate): Check indirect edges and references.
22097
22098 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
22099
22100         PR rtl-optimization/44404
22101         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
22102         of count_occurrences to see if it's safe to modify mem_insn.
22103
22104 2010-06-07  Richard Guenther  <rguenther@suse.de>
22105
22106         * gimplify.c (gimplify_cleanup_point_expr): For empty body
22107         and EH-only cleanup drop the cleanup instead of inserting it
22108         unconditionally.
22109
22110 2010-06-07  Ira Rosen  <irar@il.ibm.com>
22111
22112         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
22113         documentation.
22114         * targhooks.c (default_builtin_vectorization_cost): New function.
22115         * targhooks.h (default_builtin_vectorization_cost): Declare.
22116         * target.h (enum vect_cost_for_stmt): Define.
22117         (builtin_vectorization_cost): Change argument and comment.
22118         * tree-vectorizer.h: Remove cost model macros.
22119         * tree-vect-loop.c: Include target.h.
22120         (vect_get_cost): New function.
22121         (vect_estimate_min_profitable_iters): Replace cost model macros with
22122         calls to vect_get_cost.
22123         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
22124         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
22125         default implementation.
22126         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
22127         calls to target hook builtin_vectorization_cost.
22128         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
22129         Likewise.
22130         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
22131         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
22132         implementation to return costs.
22133         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
22134         * config/spu/spu.h: Remove vectorizer cost model macros.
22135         * config/i386/i386.h: Likewise.
22136         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
22137         a call to target hook builtin_vectorization_cost.
22138
22139 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
22140
22141         PR target/44319
22142         * config/i386/i386.c (override_options): Turn zee pass on for level 2
22143         and above and defer till target is known.
22144         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
22145         turn off otherwise.
22146
22147 2010-05-25  Jan Hubicka  <jh@suse.cz>
22148
22149         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
22150         (df_compact_blocks): Likewise.
22151         * df.h (struct df): Turn hardware_regs_used,
22152         regular_block_artificial_uses, eh_block_artificial_uses,
22153         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
22154         bitmap_head.
22155         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
22156         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
22157         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
22158         df_scan_blocks, df_insn_delete, df_insn_rescan,
22159         df_insn_rescan_debug_internal, df_insn_rescan_all,
22160         df_process_deferred_rescans, df_process_deferred_rescans,
22161         df_notes_rescan, df_get_call_refs, df_get_call_refs,
22162         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
22163         df_record_entry_block_defs, df_record_exit_block_uses,
22164         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
22165         df_scan_verify): Update.
22166
22167 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
22168
22169         PR c++/44188
22170         * c-common.c (is_typedef_decl): Move this definition ...
22171         * tree.c (is_typedef_decl): ... here.
22172         (typdef_variant_p): Move definition here from cp/tree.c.
22173         * c-common.h (is_typedef_decl): Move this declaration ...
22174         * tree.h (is_typedef_decl): ... here.
22175         (typedef_variant_p): Move declaration here from cp/cp-tree.h
22176         * dwarf2out.c (is_naming_typedef_decl): New function.
22177         (gen_tagged_type_die): Split out of ...
22178         (gen_type_die_with_usage): ... this function. When an anonymous
22179         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
22180         is emitted for the typedef.
22181         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
22182         anonymous tagged types.
22183
22184 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22185
22186         PR c/20000
22187         * c-decl.c (grokdeclarator): Delete warning.
22188
22189 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22190
22191         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
22192         newly built CALL_EXPR.
22193         * tree-profile.c (tree_profiling): Don't profile functions produced
22194         for built-in stuff.
22195
22196 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
22197
22198         PR bootstrap/44427
22199         PR bootstrap/44428
22200         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
22201         endianness-independent.
22202
22203 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
22204
22205         * c-common.c: Move to c-family/.
22206         * c-common.def: Likewise.
22207         * c-common.h: Likewise.
22208         * c-cppbuiltin.c: Likewise.
22209         * c-dump.c: Likewise.
22210         * c-format.c: Likewise.
22211         * c-format.h : Likewise.
22212         * c-gimplify.c: Likewise.
22213         * c-lex.c: Likewise.
22214         * c-omp.c: Likewise.
22215         * c.opt: Likewise.
22216         * c-opts.c: Likewise.
22217         * c-pch.c: Likewise.
22218         * c-ppoutput.c: Likewise.
22219         * c-pragma.c: Likewise.
22220         * c-pragma.h: Likewise.
22221         * c-pretty-print.c: Likewise.
22222         * c-pretty-print.h: Likewise.
22223         * c-semantics.c: Likewise.
22224         * stub-objc.c: Likewise.
22225
22226         * gengtype.c (get_file_langdir): Special-case files in c-family/.
22227         (get_output_file_with_visibility): Fix name for c-common.h.
22228         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
22229
22230         * c-tree.h: Update include path for moved files.
22231         * c-lang.c: Likewise.
22232         * c-lang.h: Likewise.
22233         * c-parser.c: Likewise.
22234         * c-convert.c: Likewise.
22235         * c-decl.c: Likewise.
22236         * c-objc-common.c: Likewise.
22237         * configure.ac: Make sure c-family/ exists in the build directory.
22238         * configure: Regenerate.
22239         * Makefile.in: Update paths for moved files.  Regroup files per
22240         location and update dependencies.  Move generated_files down after
22241         ALL_GTFILES_H.
22242
22243         * config/spu/spu-c.c: Update paths for moved files.
22244         * config/mep/mep-pragma.c: Likewise.
22245         * config/darwin-c.c: Likewise.
22246         * config/i386/msformat-c.c: Likewise.
22247         * config/i386/i386-c.c: Likewise.
22248         * config/avr/avr-c.c: Likewise.
22249         * config/sol2-c.c: Likewise.
22250         * config/ia64/ia64-c.c: Likewise.
22251         * config/rs6000/rs6000-c.c: Likewise.
22252         * config/arm/arm.c: Likewise.
22253         * config/arm/arm-c.c: Likewise.
22254         * config/h8300/h8300.c: Likewise.
22255         * config/v850/v850-c.c: Likewise.
22256
22257         * config/t-darwin: Fix dependencies for moved files.
22258         * config/t-sol2: Fix dependencies for moved files.
22259         * config/mep/t-mep: Fix dependencies for moved files.
22260         * config/ia64/t-ia64: Fix dependencies for moved files.
22261         * config/rs6000/t-rs6000: Fix dependencies for moved files.
22262         * config/v850/t-v850: Fix dependencies for moved files.
22263         * config/v850/t-v850e: Fix dependencies for moved files.
22264
22265         * config/m32c/m32c-pragma.c
22266
22267         * po/exgettext: Look in c-family/ also.
22268
22269 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
22270
22271         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
22272         (mark_control_dependent_edges_necessary): Call it instead of marking
22273         the last statement manually.
22274         (propagate_necessity): Likewise.
22275
22276 2010-06-05  Jan Hubicka  <jh@suse.cz>
22277
22278         * basic-block.h (compute_dominance_frontiers): Updated.
22279         (compute_idf): Likewise.
22280
22281         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
22282         for dominance frontiers.
22283         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
22284         (insert_updated_phi_nodes_for): Likewise.
22285         (update_ssa): Likewise.
22286         * cfganal.c (compute_dominance_frontiers_1): Likewise.
22287         (compute_dominance_frontiers): Likewise.
22288         (compute_idf): Likewise.
22289         * df-problems.c (df_md_local_compute): Likewise.
22290
22291 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
22292
22293         * target.h (struct gcc_target): Add memory_move_cost field.
22294         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
22295         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
22296         * targhooks.c (default_memory_move_cost): New function.
22297         * targhooks.h (default_memory_move_cost): Declare function.
22298         * reload.h (memory_move_cost): Declare.
22299         (memory_move_secondary_cost): Change type of 'in' argument to bool.
22300         * reginfo.c (memory_move_cost): New function.
22301         (memory_move_secondary_cost): Change type of 'in' argument to bool.
22302         * ira.h (ira_memory_move_cost): Update comment.
22303         * ira.c (ira_memory_move_cost): Update comment.
22304         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
22305         with memory_move_cost.
22306         * postreload.c (reload_cse_simplify_set): (Ditto.).
22307         * reload1.c (choose_reload_regs): (Ditto.).
22308         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
22309         (MEMORY_MOVE_COST):  Revise documentation.
22310
22311         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22312         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22313         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
22314         type of 'in' argument to bool.
22315         (TARGET_MEMORY_MOVE_COST): Define.
22316
22317 2010-06-05  Jan Hubicka  <jh@suse.cz>
22318
22319         * ipa-pure-const.c (propagate): Fix typo in handling of functions
22320         that cannot return.  Be more careful when merging the results with
22321         previously known ones.
22322
22323 2010-06-05  Matthias Klose  <doko@ubuntu.com>
22324
22325         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
22326         function to add the -iplugindir option.
22327         (find_plugindir_spec_function): Add new declaration and function.
22328         (static_spec_func): Use it for "find-plugindir".
22329
22330 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
22331
22332         PR c++/44361
22333         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
22334         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
22335         statement expression.
22336
22337 2010-06-05  Jan Hubicka  <jh@suse.cz>
22338
22339         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
22340         (df_rd_problem_data): Convert sparse_invalidated_by_call,
22341         dense_invalidated_by_call to bitmap head.
22342         (df_rd_alloc, df_rd_bb_local_compute_process_def,
22343         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
22344         df_rd_start_dump, df_lr_verify_transfer_functions,
22345         df_live_verify_transfer_functions, df_chain_create_bb,
22346         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
22347         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
22348         df_simulate_one_insn_forwards, df_md_alloc,
22349         df_md_bb_local_compute_process_def,
22350         df_md_bb_local_compute_process_def, df_md_local_compute,
22351         df_md_transfer_function df_md_free): Update.
22352
22353 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
22354
22355         PR c/44322
22356         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
22357         target type for ADDR_EXPR; require no changes to qualifiers except
22358         for function types.
22359         * c-tree.h (c_build_type_variant): Remove.
22360
22361 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
22362
22363         * genautomata.c (get_excl_set): Do work per element, not per char.
22364         (check_presence_pattern_sets): Similar.
22365         (check_absence_pattern_sets): Similar.
22366
22367 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
22368
22369         * genautomata.c (curr_state_pass_num): Delete.
22370         (min_issue_delay_pass_states): Delete.
22371         (min_issue_delay): Delete.
22372         (initiate_min_issue_delay_pass_states): Delete.
22373         (output_min_issue_delay_table): Compute min_issue_delay_vect
22374         using a breadth-first search variant.
22375         (output_tables): Don't call initiate_min_issue_delay_pass_states.
22376
22377 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
22378
22379         PR boostrap/44421
22380         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
22381         (df_byte_lr_bb_local_compute): Likewise.
22382
22383 2010-06-03  Jason Merrill  <jason@redhat.com>
22384
22385         Implement noexcept operator (5.3.7)
22386         * c-common.c (c_common_reswords): Add noexcept.
22387         * c-common.h (enum rid): Add RID_NOEXCEPT.
22388
22389 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
22390
22391         * config/darwin-driver.c (darwin_default_min_version): Use
22392         GCC-specific formats in diagnostics.
22393         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
22394         diagnostics.
22395         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
22396         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
22397         eval_spec_function, handle_braces, process_brace_body, main,
22398         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
22399         getenv_spec_function, compare_version_strings,
22400         version_compare_spec_function): Use GCC-specific formats in
22401         diagnostics.
22402
22403 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
22404
22405         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
22406         that operand 0 and operand 1 are equal.
22407         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
22408         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
22409         and operand 1 are equal.
22410         <default>: Ditto.  Remove ??? comment.
22411         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
22412         and operand 1 are equal.
22413         <default>: Ditto.  Remove ??? comment.
22414         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
22415         are equal.
22416         (*add<mode>_4) <default>: Ditto.
22417         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
22418
22419 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
22420
22421         * config/i386/i386-protos.h (ix86_print_operand): Declare.
22422         * config/i386/i386.c (ix86_print_operand): Make non-static.
22423         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
22424         * output.h (output_operand): Declare.
22425         * final.c (output_operand): Make non-static.
22426
22427 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
22428
22429         PR rtl-optimization/44013
22430         * sched-deps.c (add_dependence_list_and_free): Don't free lists
22431         when processing debug insns.
22432
22433         PR debug/41371
22434         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
22435         recursing.  Check that recursion is bounded.  Rename inner var
22436         to avoid hiding incoming argument.
22437
22438 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
22439
22440         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
22441         operands[2] == 255.
22442         (*addqi_3): Ditto.
22443         (*addqi_4): Ditto.
22444         (*addqi_5): Ditto.
22445         (*addqi_ext_1_rex64): Ditto.
22446         (*addqi_ext_1): Ditto.
22447
22448         (*addqi_4): Check for incdec_operand in QImode.
22449
22450         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
22451         using SWI mode iterator.
22452         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
22453         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
22454         mode iterator.
22455         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
22456         using SWI mode iterator.
22457
22458 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22459
22460         PR c/25880
22461         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
22462         * c-format.c (gcc_diag_flag_specs): Add hash.
22463         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
22464         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
22465         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
22466         pp_c_cv_qualifiers. Handle qualifiers spelling here.
22467         (pp_c_type_qualifier_list): Call the function above.
22468         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
22469         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
22470         (WARN_FOR_QUALIFIERS): New macro.
22471         (convert_for_assignment): Use it.
22472
22473 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
22474
22475         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
22476
22477 2010-06-04  Jan Hubicka  <jh@suse.cz>
22478
22479         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
22480         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
22481         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
22482         DF_BYTE_LR_OUT): Update for embedded bitmaps.
22483         * fwprop.c (single_def_use_enter_block): Likewise.
22484         * ddg.c (create_ddg_dep_from_intra_loop_link,
22485         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
22486         * loop-iv.c (latch_dominating_def): Likewise.
22487         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
22488         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
22489         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
22490         df_rd_transfer_function, df_rd_top_dump,
22491         df_rd_bottom_dump): Update.
22492         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
22493         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
22494         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
22495         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
22496         df_lr_verify_solution_start, df_lr_verify_solution_end,
22497         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
22498         df_live_free_bb_info, df_live_alloc, df_live_reset,
22499         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
22500         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
22501         df_live_verify_solution_start, df_live_verify_solution_end,
22502         df_live_verify_transfer_functions, df_chain_create_bb,
22503         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
22504         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
22505         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
22506         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
22507         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
22508         df_byte_lr_transfer_function, df_byte_lr_top_dump,
22509         df_byte_lr_bottom_dump, df_create_unused_note,
22510         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
22511         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
22512         df_md_transfer_function, df_md_init, df_md_confluence_0,
22513         df_md_confluence_n,
22514         df_md_top_dump, df_md_bottom_dump): Update.
22515         (struct df_lr_problem_data): Embedd bitmap headers.
22516
22517 2010-06-04  Jan Hubicka  <jh@suse.cz>
22518
22519         * dce.c (dce_process_block): Do not re-scan already marked
22520         instructions.
22521
22522 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22523
22524         PR rtl-optimization/39871
22525         PR rtl-optimization/40615
22526         PR rtl-optimization/42500
22527         PR rtl-optimization/42502
22528         * ira.c (init_reg_equiv_memory_loc: New function.
22529         (ira): Call it twice.
22530         * reload.h (calculate_elim_costs_all_insns): Declare.
22531         * ira-costs.c: Include "reload.h".
22532         (regno_equiv_gains): New static variable.
22533         (init_costs): Allocate it.
22534         (finish_costs): Free it.
22535         (ira_costs): Call calculate_elim_costs_all_insns.
22536         (find_costs_and_classes): Take estimated elimination costs
22537         into account.
22538         (ira_adjust_equiv_reg_cost): New function.
22539         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
22540         * reload1.c (init_eliminable_invariants, free_reg_equiv,
22541         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
22542         (elim_bb): New static variable.
22543         (reload): Move code out of here into init_eliminable_invariants and
22544         free_reg_equiv.  Call them.
22545         (calculate_elim_costs_all_insns): New function.
22546         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
22547         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
22548         but call note_reg_elim_costly if we turned a valid memory address
22549         into an invalid one.
22550         * Makefile.in (ira-costs.o): Depend on reload.h.
22551
22552 2010-06-04  Julian Brown  <julian@codesourcery.com>
22553
22554         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
22555         for pool ranges.
22556
22557 2010-06-04  Richard Guenther  <rguenther@suse.de>
22558
22559         PR lto/41584
22560         * cgraph.h (struct varpool_node): Add lto_file_data field.
22561         * lto-cgraph.c (input_varpool_node): Initialize it.
22562
22563 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
22564
22565         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
22566         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
22567         predicate in "type" attribute calculation.
22568         (*addsi_1_zext): Ditto.
22569         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
22570         (*addsi_2_zext): Ditto.
22571         (*add<mode>_3): Ditto.
22572         (*addsi_3_zext): Ditto.
22573         (*add<mode>_5): Ditto.
22574
22575 2010-06-03  Jan Hubicka  <jh@suse.cz>
22576
22577         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
22578         of bitmap_bit_p.
22579         * cfganal.c (compute_dominance_frontiers_1): Likewise.
22580
22581 2010-06-03  Jan Hubicka  <jh@suse.cz>
22582
22583         * df-problems.c (df_create_unused_note, df_note_bb_compute):
22584         micro-optimize the checks when to add new note.
22585
22586 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
22587
22588         * final.c (output_asm_insn): Call
22589         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
22590         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
22591         (output_address): Call targetm.asm_out.print_operand_address.
22592         Update comments.
22593         * target.h (struct gcc_target): Add print_operand,
22594         print_operand_address, and print_operand_punct_valid_p fields.
22595         * targhooks.h (default_print_operand): Declare.
22596         (default_print_operand_address): Declare.
22597         (default_print_operand_punct_valid_p): Declare.
22598         * targhooks.c (default_print_operand): Define.
22599         (default_print_operand_address): Define.
22600         (default_print_operand_punct_valid_p): Define.
22601         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
22602         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
22603         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
22604         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
22605         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
22606         * vmsdbgout.c (addr_const_to_string): Update comment.
22607         * config/i386/i386.c (print_operand): Rename to...
22608         (ix86_print_operand): ...this.  Make static.
22609         (print_operand_address): Rename to...
22610         (ix86_print_operand_address): ...this.  Make static.  Call
22611         ix86_print_operand instead of PRINT_OPERAND.
22612         (ix86_print_operand_punct_valid_p): New function.
22613         (TARGET_PRINT_OPERAND): Define.
22614         (TARGET_PRINT_OPERAND_ADDRESS): Define.
22615         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22616         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
22617         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22618         (PRINT_OPERAND): Delete.
22619         (PRINT_OPERAND_ADDRESS): Delete.
22620         * config/i386/i386-protos.h (print_operand): Delete prototype.
22621         (print_operand_address): Delete prototype.
22622
22623 2010-06-03  Richard Guenther  <rguenther@suse.de>
22624
22625         PR tree-optimization/44403
22626         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22627         Preserve pointer qualifiers.
22628         (vect_create_data_ref_ptr): Likewise.
22629
22630 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
22631
22632         PR c++/44294
22633         * defaults.h (MAX_FIXED_MODE_SIZE): New.
22634
22635         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
22636
22637 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
22638
22639         PR debug/44375
22640         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
22641         return false if merging the bbs would lead to goto_locus
22642         location being lost from the IL.
22643
22644 2010-06-03  Jan Hubicka  <jh@suse.cz>
22645             Jakub Jelinek  <jakub@redhat.com>
22646
22647         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
22648         set->regs[i] is NULL or has just one entry.
22649
22650 2010-06-03  Jan Hubicka  <jh@suse.cz>
22651
22652         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
22653         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
22654
22655 2010-06-03  Paul Brook  <paul@codesourcery.com>
22656
22657         * config/arm/arm.c (FL_TUNE): Define.
22658         (arm_default_cpu, arm_cpu_select): Remove.
22659         (all_cores): Populate core field.
22660         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
22661         (arm_find_cpu): New function.
22662         (arm_handle_option): Lookup cpu/architecture names.
22663         (arm_override_options): Cleanup mcpu/march/mtune handling.
22664         (arm_file_start): Ditto.
22665
22666 2010-06-03  Alan Modra  <amodra@gmail.com>
22667
22668         PR target/44169
22669         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
22670         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
22671         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
22672         (rs6000_emit_load_toc_table): Likewise.
22673
22674 2010-06-02  Jan Hubicka  <jh@suse.cz>
22675
22676         * passes.c (init_optimization_passes): Put ipa reference
22677         after ipa pure-const.
22678
22679 2010-06-02  Jan Hubicka  <jh@suse.cz>
22680
22681         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
22682         calls_read_all and calls_write_all.
22683         (get_reference_optimization_summary): Fix formatting.
22684         (is_proper_for_analysis): Check that decl is not readonly.
22685         (propagate_bits): Check CONST/PURE/noreturn flags.
22686         (ipa_init): Move all_module_statics to optimization_summary_obstack.
22687         (analyze_function): Ignore indirect edges.
22688         (copy_global_bitmap): For all module statics, do nothing.
22689         (generate_summary): Do not print calls_read_all/calls_write_all.
22690         (read_write_all_from_decl): Take node as argument; check
22691         cgraph_node_cannot_return.
22692         (propagate): Reorganize read_all/write_all computation;
22693         check indirect edges; check ecf flags; use all_module_statics
22694         in the results; do not free all_module_statics.
22695         (stream_out_bitmap): Handle all_module_statics.
22696         (ipa_reference_write_optimization_summary): Likewise; use
22697         varpool/cgraph encoders to get boundaries.
22698         (ipa_reference_read_optimization_summary): Read in all_module_statics;
22699         use it when possible.
22700
22701 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
22702
22703         PR target/44218
22704         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
22705         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
22706
22707         * doc/extend.texi (powerpc builtins): Document vec_recip,
22708         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
22709
22710         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
22711         (rs6000_emit_swrsqrt): Ditto.
22712         (rs6000_emit_swdivsf): Delete.
22713         (rs6000_emit_swdivdf): Ditto.
22714         (rs6000_emit_swrsqrtsf): Ditto.
22715
22716         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
22717         describe the reciprocal estimate support for each type.
22718         (recip_options): Map -mrecip=<opt> into option bits.
22719         (gen_2arg_fn_t): New typedef for binary rtx gen function.
22720         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
22721         reciprocal estimate instructions.
22722         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
22723         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
22724         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
22725         cost information if -mdebug=cost or -mdebug=reg.
22726         (rs6000_override_options): Set -mrecip-precision for power6, and
22727         power7 machines.  If -mvsx or -mdfp, enable various options that
22728         came in previous instruction set ISAs, unless the option was
22729         explicitly disabled by the command line option.  Parse
22730         -mrecip=<opt> options.
22731         (rs6000_builtin_vectorized_function): Add support for vectorizing
22732         the reciprocal estimate builtins and expansions.
22733         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
22734         (bdesc_2arg): Add reciprocal estimate builtins.
22735         (bdesc_1arg): Add reciprocal square root estimate builtins.
22736         (rs6000_expand_builtin): Rewrite to use a switch statement,
22737         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
22738         (rs6000_init_builtins): Create declarations for reciprocal
22739         estimate builtins.
22740         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
22741         sized, prefer traditional floating point registers, if integer
22742         vector types, prefer altivec registers.  Don't actually look at
22743         the memory address any more.
22744         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
22745         builtins.
22746         (rs6000_load_constant_and_splat): New helper function to load up
22747         the constant for reciprocal estimate instructions.
22748         (rs6000_emit_madd): New helper function for generating
22749         multiply/add type instructions, based on the current switches.
22750         (rs6000_emit_msub): Ditto.
22751         (rs6000_emit_mnsub): Ditto.
22752         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
22753         replace a divide with a reciprocal estimate and fixup, adding
22754         support for machines with high precision and vectors.
22755         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
22756         low precision machines.
22757         (rs6000_emit_swdiv): New common function to be called to replace a
22758         division with reciprocal estimate and fixup.
22759         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
22760         for double and vector types.  Add support for high precision machines.
22761
22762         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
22763         the reciprocal estimate instructions can be generated.
22764         (TARGET_FRE): Ditto.
22765         (TARGET_FRSQRTES): Ditto.
22766         (TARGET_FRSQRTE): Ditto.
22767         (RS6000_RECIP_*): New macros for reciprocal estimate support.
22768
22769         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
22770         square root estimate on vectors.
22771         (re<mode>2): New insn for reciprocal division estimate on vectors.
22772
22773         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
22774         New builtin.
22775         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
22776         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
22777         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
22778         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
22779         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
22780         (RS6000_BUILTIN_RSQRT): Ditto.
22781         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
22782         floating point builtin.
22783
22784         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
22785         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
22786         __RECIP_PRECISION__ based on the command line switches.
22787         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
22788
22789         * config/rs6000/rs6000.opt (-mrecip): Document add support for
22790         replacing division instructions with reciprocal estimate and fixup.
22791         (-mrecip=<opt>): New option.
22792         (-mrecip-precision): Ditto.
22793
22794         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
22795         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
22796         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
22797         precision scalar.
22798
22799         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
22800         (UNSPEC_VREFP): Ditto.
22801         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
22802         conterparts with regard to support of -mno-fused-madd and -ffast-math.
22803         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
22804         reciprocal estimate instructions to be generated.
22805         (altivec_vrefp): Ditto.
22806
22807         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
22808         estimate support.
22809         (rreg): New mode attribute for reciprocal estimate support.
22810         (recip<mode>3): New insn for division using reciprocal estimate
22811         and fixup builtins.
22812         (divide define_split): New define_split to convert floating point
22813         division to use reciprocal estimate if the user used the
22814         appropriate options and the split is run when we can add new
22815         pseudo registers for the fixup.
22816         (rsqrt<mode>2): New insn for reciprocal square root support.
22817         (recipsf3): Move into recip<mode>3.
22818         (recipdf3): Ditto.
22819         (fres): Use TARGET_FRES.
22820         (rsqrtsf2): Move into rsqrt<mode>2.
22821         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
22822         (copysignsf3): Add support for VSX.
22823         (fred): Use TARGET_FRE.
22824         (fred_fpr): Ditto.
22825         (rsqrtdf_internal1): New function for frsqrte instruciton.
22826
22827         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
22828         (vec_rsqrt): Ditto.
22829
22830 2010-06-03  Richard Guenther  <rguenther@suse.de>
22831
22832         PR middle-end/44291
22833         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
22834         (set_user_assembler_libfunc): Likewise.
22835
22836 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
22837
22838         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
22839         defaults.h.
22840         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
22841         to defaults.h
22842         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
22843         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
22844         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
22845         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
22846         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
22847         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
22848         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
22849         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
22850         * defaults.h: Updated for above mentioned changes.
22851
22852 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
22853
22854         * c-common.c: Remove header include of tm_p.h.
22855         * Makefile.in (c-common.o): Remove TM_P_H dependency.
22856
22857 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
22858
22859         * tree.h (struct tree_decl_map): New type.
22860         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
22861         (tree_decl_map_hash): New prototype.
22862         (debug_expr_for_decl, value_expr_for_decl): Change into
22863         tree_decl_map hashtab from tree_map.
22864         (init_ttree): Adjust initialization.
22865         (tree_decl_map_hash): New function.
22866         (decl_debug_expr_lookup, decl_debug_expr_insert,
22867         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
22868
22869 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22870
22871         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
22872         linker emulations.
22873         * configure: Regenerate.
22874         * config.in: Regenerate.
22875
22876         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
22877         (X86_64_EMULATION): Define.
22878         (TARGET_LD_EMULATION): Use them.
22879
22880         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
22881         (SPARC64_EMULATION): Define.
22882         (LINK_ARCH_SPEC): Use them.
22883
22884 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
22885
22886         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
22887         smallest_mode_for_size for computing the precision types of new
22888         graphite IVs.  Do not call lang_hooks.types.type_for_size.
22889
22890 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
22891
22892         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
22893         information.
22894         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
22895
22896 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
22897
22898         PR middle-end/44363
22899         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
22900         return false instead.
22901
22902 2010-06-02  Jan Hubicka  <jh@suse.cz>
22903
22904         PR middle-end/44295
22905         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
22906         create new cgraph node to check callee.
22907
22908 2010-06-02  Richard Guenther  <rguenther@suse.de>
22909
22910         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
22911
22912 2010-06-02  Richard Guenther  <rguenther@suse.de>
22913
22914         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
22915         (lto_wrapper_cleanup): ... this.  Do not exit.
22916         (fatal): Adjust.  Exit here.
22917         (fatal_perror): Likewise.
22918         (fatal_signal): New function.
22919         (main): Set up signal handlers to cleanup temporary files.
22920         * Makefile.in (lto-wrapper.o): Adjust dependencies.
22921
22922 2010-06-02  Richard Guenther  <rguenther@suse.de>
22923
22924         PR tree-optimization/44377
22925         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
22926
22927 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22928
22929         * config/s390/2097.md (z10_fhex): Remove insn reservation.
22930         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
22931         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
22932         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
22933         instruction.
22934         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
22935
22936 2010-06-02  Jan Hubicka  <jh@suse.cz>
22937
22938         * bitmap.c (bitmap_descriptor): Add search_iter.
22939         (bitmap_find_bit): Increment it.
22940         (print_statistics): Print it.
22941
22942 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
22943
22944         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
22945         instead of gimple_build_call_vec.  Delete unnecessary local variable.
22946
22947 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
22948
22949         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
22950         change from yesterday.
22951
22952 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
22953
22954         * c-ada-spec.c: Clean up redundant includes.
22955
22956 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
22957
22958         * gimplify.c: Do not include except.h and optabs.h.
22959         (gimplify_body): Do not initialize RTL profiling.
22960         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
22961         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
22962         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
22963         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
22964         langhooks.h.
22965
22966         * tree-pretty-print.h: Include pretty-print.h.
22967         * gimple-pretty-print.h: Include pretty-print.h.
22968
22969         * tree-pretty-print.c: Do not include diagnostic.h.
22970         * tree-vrp.c: Likewise.
22971         * tree-tailcall.c: Likewise
22972         * tree-scalar-evolution.c: Likewise
22973         * tree-ssa-dse.c: Likewise
22974         * tree-chrec.c: Likewise
22975         * tree-ssa-sccvn.c: Likewise
22976         * tree-ssa-copyrename.c: Likewise
22977         * tree-nomudflap.c: Likewise
22978         * tree-call-cdce.c: Likewise
22979         * tree-stdarg.c: Likewise
22980         * tree-ssa-math-opts.c: Likewise
22981         * tree-nrv.c: Likewise
22982         * tree-ssa-sink.c: Likewise
22983         * tree-browser.c: Likewise
22984         * tree-ssa-loop-ivcanon.c: Likewise
22985         * tree-ssa-loop.c: Likewise
22986         * tree-parloops.c: Likewise
22987         * tree-ssa-address.c: Likewise
22988         * tree-ssa-ifcombine.c: Likewise
22989         * tree-if-conv.c: Likewise
22990         * tree-data-ref.c: Likewise
22991         * tree-affine.c: Likewise
22992         * tree-ssa-phiopt.c: Likewise
22993         * tree-ssa-coalesce.c: Likewise
22994         * tree-ssa-pre.c: Likewise
22995         * tree-ssa-live.c: Likewise
22996         * tree-predcom.c: Likewise
22997         * tree-ssa-forwprop.c: Likewise
22998         * tree-ssa-dce.c: Likewise
22999         * tree-ssa-ter.c: Likewise
23000         * tree-ssa-loop-prefetch.c: Likewise
23001         * tree-optimize.c: Likewise
23002         * tree-ssa-phiprop.c: Likewise
23003         * tree-object-size.c: Likewise
23004         * tree-outof-ssa.c: Likewise
23005         * tree-ssa-structalias.c: Likewise
23006         * tree-switch-conversion.c: Likewise
23007         * tree-ssa-reassoc.c: Likewise
23008         * tree-ssa-operands.c: Likewise
23009         * tree-vectorizer.c: Likewise
23010         * tree-vect-data-refs.c: Likewise
23011         * tree-vect-generic.c: Likewise
23012         * tree-vect-stmts.c: Likewise
23013         * tree-vect-patterns.c: Likewise
23014         * tree-vect-slp.c: Likewise
23015         * tree-vect-loop.c: Likewise
23016         * tree-ssa-loop-ivopts.c: Likewise
23017         * tree-ssa-loop-im.c: Likewise
23018         * tree-ssa-loop-niter.c: Likewise
23019         * tree-ssa-loop-unswitch.c: Likewise
23020         * tree-ssa-loop-manip.c: Likewise
23021         * tree-ssa-loop-ch.c: Likewise
23022         * tree-dump.c: Likewise
23023         * tree-complex.c: Likewise
23024
23025         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
23026         * tree-ssa-uninit.c: Likewise
23027         * tree-ssa-threadupdate.c: Likewise
23028         * tree-ssa-uncprop.c: Likewise
23029         * tree-ssa-ccp.c: Likewise
23030         * tree-ssa-dom.c: Likewise
23031         * tree-ssa-propagate.c: Likewise
23032         * tree-ssa-alias.c: Likewise
23033         * tree-dfa.c: Likewise
23034         * tree-cfgcleanup.c: Likewise
23035         * tree-sra.c: Likewise
23036         * tree-ssa-copy.c: Likewise
23037         * tree-ssa.c: Likewise
23038         * tree-profile.c: Likewise
23039         * tree-cfg.c: Likewise
23040         * tree-ssa-threadedge.c: Likewise
23041         * tree-vect-loop-manip.c: Likewise
23042
23043         * tree-inline.c: Do not include diagnostic.h and expr.h.
23044         Include rtl.h.
23045         (copy_decl_for_dup_finish): Do not use NULL_RTX.
23046
23047         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
23048         * tree-loop-distribution.c: Likewise.
23049
23050 2010-06-01  Jan Hubicka  <jh@suse.cz>
23051
23052         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
23053
23054 2010-06-01  Jan Hubicka  <jh@suse.cz>
23055
23056         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
23057         remove return value.
23058         (split_bbs_on_noreturn_calls) .... here.
23059         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
23060         * tree-flow.h (fixup_noreturn_call): New.
23061
23062 2010-06-01  Jan Hubicka  <jh@suse.cz>
23063
23064         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
23065
23066 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
23067
23068         * tree.h (build_nt_call_list): Delete.
23069         * tree.c (build_nt_call_list): Delete.
23070
23071 2010-06-01  Jan Hubicka  <jh@suse.cz>
23072
23073         * fwprop.c: Make emit-rtl.h include last.
23074         * rtlanal.c: Include emit-rtl.h.
23075         * genautomata.c: Output emit-rtl include into insn-automata.c
23076         * df-scan.c: Include emit-rtl.h.
23077         * haifa-sched.c: Indlude emit-rtl.h.
23078         * mode-switching.c: Indlude emit-rtl.h.
23079         * graph.c: Indlude emit-rtl.h.
23080         * sel-sched.c: Include emit-rtl.h.
23081         * sel-sched-ir.c: Include emit-rtl.h.
23082         * ira-build.c: Include emit-rtl.h.
23083         * emit-rtl.c (first_insn, last_insn): Remove defines.
23084         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
23085         Move to emit-rtl.h.
23086         (set_new_first_and_last_insn, get_last_insn_anywhere,
23087         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
23088         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
23089         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
23090         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
23091         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
23092         Use accessor functions.
23093         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23094          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23095         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23096         mem_expr_equal_p): Move here from rtl.h.
23097         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
23098         Move here from emit-rtl.c; make inline.
23099         * cfglayout.h: Include emit-rtl.h.
23100         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23101          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23102         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23103         mem_expr_equal_p, get_insns, set_first-insn,
23104         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
23105         * reg-stack.c: Include emit-rtl.h.
23106         * dce.c: Likewise.
23107
23108 2010-06-01  Jan Hubicka  <jh@suse.cz>
23109
23110         * cgraph.h (tree_function_versioning): Update prototype.
23111         (cgraph_function_versioning): Update prototype.
23112         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
23113         bitmap.
23114         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
23115         (cgraph_materialize_clone, save_inline_function_body): Update use of
23116         tree_function_versioning.
23117         * tree-inline.c (copy_bb): Look for previous copied block to link
23118         after; fix debug output.
23119         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
23120         (copy_body): Likewise.
23121         (expand_call_inline): Update use of copy_body.
23122         (tree_function_versioning): Update use of copy body; accept
23123         blocks_to_copy and new_entry.
23124
23125 2010-06-01  Jan Hubicka  <jh@suse.cz>
23126
23127         * gegenrtl.c: Remove unnecesary prototypes.
23128         (gendecl): Remove.
23129         (gendef): Produce static inline.
23130         (gencode): Remove.
23131         (main): Do not decode parameters; generate header only.
23132         * Makefile.in (genrtl.c): Remove.
23133
23134 2010-06-01  Jan Hubicka  <jh@suse.cz>
23135
23136         * tree-switch-conversion.c (build_one_array): Make it readonly.
23137
23138 2010-06-01  Richard Guenther  <rguenther@suse.de>
23139
23140         * optabs.c (init_optabs): Guard all accesses to reinit.
23141         * ipa-pure-const.c (propagate): Fix another typo.
23142         * opts.c (common_handle_option): Split assignment to bool.
23143         * c-opts.c (c_common_handle_option): Likewise.
23144
23145 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
23146             Matthew Gingell  <gingell@adacore.com>
23147
23148         * doc/invoke.texi: Mention -fdump-ada-spec.
23149         * tree-dump.c (dump_files): Add ada-spec.
23150         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
23151         * tree-pass.h (tree_dump_index): Add TDI_ada.
23152         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
23153         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
23154         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
23155         * c-decl.c: Include c-ada-spec.h.
23156         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
23157         functions.
23158         (c_write_global_declarations): Add handling of -fdump-ada-spec.
23159         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
23160         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
23161         * c-ada-spec.h, c-ada-spec.c: New files.
23162
23163 2010-06-01  Richard Guenther  <rguenther@suse.de>
23164
23165         PR lto/43853
23166         * ipa-pure-const.c (get_function_state): Hand back varying state
23167         if we do not have one.
23168         (has_function_state): New function.
23169         (duplicate_node_data): Adjust.
23170         (remove_node_data): Likewise.
23171         (pure_const_write_summary): Likewise.
23172         (propagate): Likewise.  Fix typo.
23173
23174 2010-06-01  Jan Hubicka  <jh@suse.cz>
23175
23176         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
23177         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
23178         (execute_all_ipa_transforms): Do not play with the states.
23179
23180 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
23181
23182         * config/arm/t-linux-androideabi: New.
23183         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
23184
23185 2010-06-01  Jan Hubicka  <jh@suse.cz>
23186
23187         * tree-inline.c (estimate_num_insns): For stdarg functions look
23188         into call statement to count cost of argument passing.
23189
23190 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
23191
23192         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
23193         argument for fprintf.
23194         (ix86_output_addr_diff_elt): Likewise.
23195         (x86_function_profiler): Likewise.
23196         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
23197         (LPREFIX): Likewise.
23198         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
23199
23200 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23201
23202         PR target/44338
23203         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
23204         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
23205         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
23206         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
23207         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
23208         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
23209         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
23210         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
23211         TARGET_FUSED_MADD.
23212
23213 2010-05-31  Jan Hubicka  <jh@suse.cz>
23214
23215         * tree.h (tree_range_check_failed): Declare noreturn.
23216
23217 2010-05-31  Jan Hubicka  <jh@suse.cz>
23218
23219         * gimple.c (gimple_call_builtin_p): New function.
23220         * gimple.h (gimple_call_builtin_p): Declare.
23221         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
23222         to exit.
23223         (execute_warn_function_return): BUILT_IN_RETURN is return.
23224         (split_critical_edges): Return edges are not critical.
23225         (is_ctrl_altering_stmt): Builtin_in_return is altering.
23226         (gimple_verify_flow_info): Handle built_in_return.
23227         (execute_warn_function_return): Handle built_in_return.
23228         * ipa-pure-const.c (check_call): Ignore builtin_return.
23229
23230 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23231
23232         PR middle-end/44337
23233         * expr.c (expand_assignment): Don't store anything for out-of-bounds
23234         array accesses with non-MEM.
23235
23236         PR tree-optimization/44182
23237         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
23238         newly needs to end a bb is followed by debug stmts, instead return
23239         true from the function at the end.
23240         (maybe_move_debug_stmts_to_successors): New function.
23241         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
23242
23243 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
23244
23245         PR target/44161
23246         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
23247
23248 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
23249
23250         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
23251         for nested functions in non-optimized compilation.
23252
23253 2010-05-31  Richard Guenther  <rguenther@suse.de>
23254
23255         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
23256
23257 2010-05-30  Jan Hubicka  <jh@suse.cz>
23258
23259         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
23260
23261 2010-05-30  Richard Guenther  <rguenther@suse.de>
23262
23263         PR lto/42975
23264         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
23265         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
23266         no longer needed.
23267
23268 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
23269
23270         * config/darwin.c (output_objc_section_asm_op): Add comment.
23271         (name_needs_quotes): Add '_' to list of valid comment chars.
23272         (machopic_output_function_base_name): Remove unneeded quotes.
23273         (darwin_encode_section_info): Adjust asm whitespace.
23274         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
23275         (ASM_OUTPUT_LOCAL): Ditto.
23276         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
23277         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
23278         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
23279
23280 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
23281
23282         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
23283         RS6000_OUTPUT_BASENAME unconditionally.
23284         (rs6000_output_function_epilogue): Likewise.
23285
23286 2010-05-30  Jan Hubicka  <jh@suse.cz>
23287
23288         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
23289         nodes.
23290
23291 2010-05-30  Richard Guenther  <rguenther@suse.de>
23292
23293         * tree-cfg.c (verify_gimple_assign_single): Implement
23294         verification for COND_EXPR rhs.
23295
23296 2010-05-30  Jan Hubicka  <jh@suse.cz>
23297
23298         * cgraph.h (cgraph_dump_file): Declare.
23299         * cgraphunit.c (cgraph_dump_file): Export.
23300         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
23301
23302 2010-05-30  Jan Hubicka  <jh@suse.cz>
23303
23304         * dwarf2out.c (reference_to_unused,
23305         premark_types_used_by_global_vars_helper): Avoid creation of new
23306         varpool nodes.
23307
23308 2010-05-30  Jan Hubicka  <jh@suse.cz>
23309
23310         * cgraph.h (cgraph_node_cannot_return,
23311         cgraph_edge_cannot_lead_to_return): New functions.
23312         * cgraph.c (cgraph_node_cannot_return,
23313         cgraph_edge_cannot_lead_to_return): Use them.
23314         * ipa-pure-const.c (pure_const_names): New static var.
23315         (check_call): Handle calls not leading to return.
23316         (pure_const_read_summary): Dump info read.
23317         (propagate): Dump info about propagation process; ignore side effects
23318         of functions not leading to exit; fix handling of pure functions.
23319
23320 2010-05-30  Jan Hubicka  <jh@suse.cz>
23321
23322         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
23323         for tail call epilogues.
23324
23325 2010-05-30  Jan Hubicka  <jh@suse.cz>
23326
23327         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
23328         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
23329         dump files.
23330
23331 2010-05-29  Jan Hubicka  <jh@suse.cz>
23332
23333         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
23334         node; remove references in node we no longer keep in cgrpah but need
23335         body of.
23336
23337 2010-05-29  Jan Hubicka  <jh@suse.cz>
23338
23339         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
23340
23341 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23342
23343         PR target/44165
23344         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
23345
23346 2010-05-29  Jan Hubicka  <jh@suse.cz>
23347
23348         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
23349         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
23350         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
23351         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
23352         debug_names_replaced_by, debug_update_ssa): Likewise.
23353         * sbitmap.c (debug_sbitmap): Likewise.
23354         * genrecog.c (debug_decision, debug_decision_list): Likewise.
23355         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
23356         debug_tree_chain): Likewise.
23357         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
23358         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
23359         * optabs.c (debug_optab_libfuncs): Likewise.
23360         (verify_loop_closed_ssa): Likewise.
23361         * value-prof.c (verify_histograms): Likewise.
23362         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
23363         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
23364         * cfghooks.c (verify_flow_info): Likewise.
23365         * fold-const.c (debug_fold_checksum): Likewise.
23366         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
23367         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
23368         Likewise.
23369         * omega.c (debug_omega_problem): Likewise.
23370         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
23371         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
23372         * dominance.c (verify_dominators, debug_dominance_info,
23373         debug_dominance_tree): Likewise.
23374         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
23375         * df_regno_debug, df_ref_debug,
23376         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
23377         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
23378         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
23379         * sel-sched.c (debug_state): Likewise.
23380         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
23381         Likewise.
23382         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
23383         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
23384         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
23385         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
23386         Likewise.
23387         * c-pretty-print.c (debug_c_tree): Likewise.
23388         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
23389         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
23390         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
23391         * ebitmap.c (debug_ebitmap): Likewise.
23392         * function.c (debug_find_var_in_block_tree): Likewise.
23393         * print-rtl.c (debug_rtx): Likewise.
23394         (debug_rtx_count): Likewise.
23395         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
23396         * stor-layout.c (debug_rli): Likewise.
23397         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
23398         * tree-data-ref.c (debug_data_references,
23399         debug_data_dependence_relations, debug_data_reference,
23400         debug_data_dependence_relation, debug_rdg_vertex,
23401         debug_rdg_component, debug_rdg): Likewise.
23402         * tree-affine.c (debug_aff): Likewise.
23403         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
23404         Likewise.
23405         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
23406         * emit-rtl.c (verify_rtl_sharing): Likewise.
23407         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
23408         debug_value_expressions): Likewise.
23409         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
23410         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
23411         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
23412         * cfglayout.c (verify_insn_chain): Likewise.
23413         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
23414         debug_clast_stmt, debug_generated_program): Likewise.
23415         * ggc-page.c (debug_print_page_list): Likewise.
23416         * tree-ssa-ter.c (debug_ter): Likewise.
23417         * graphite-dependences.c (debug_pddr): Likewise.
23418         * sched-deps.c (debug_ds): Likewise.
23419         * tree-ssa.c (verify_ssa): Likewise.
23420         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
23421         debug_scattering_functions, debug_iteration_domains, debug_pdr,
23422         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
23423         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
23424         * tree-inline.c (debug_find_tree): Likewise.
23425         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
23426         debug_ppl_powerset_matrix): Likewise.
23427         * var-tracking.c (debug_dv): Likewise.
23428         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
23429         * cfgloop.c (verify_loop_structure): Likewise.
23430         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
23431         * c-common.c (verify_sequence_points): Likewise.
23432         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
23433         debug_candidates, debug_rgn_dependencies): Likewise.
23434         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
23435         * debug_constraint_graph, debug_solution_for_var,
23436         debug_sa_points_to_info): Likewise.
23437         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
23438         Likewie.
23439         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
23440         debug_loops, debug_loop, debug_loop_num): Likewise.
23441         * passes.c (debug_pass): Likewise.
23442         (dump_properties): Likewise; add cfglayout property.
23443         (debug_properties): Likewise.
23444         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
23445         * varpool.c (debug_varpool): Likewise.
23446         * regcprop.c (debug_value_data): Likewise.
23447         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
23448         debug_immediate_uses_for): Likewise.
23449
23450 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
23451
23452         PR bootstrap/44315
23453         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
23454         Filter out insn-flags.h.
23455
23456 2010-05-29  Jan Hubicka  <jh@suse.cz>
23457
23458         * cgraph.h (struct varpool_node_set_def,
23459         struct cgraph_node_set_def): Remove unused AUX pointer.
23460         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
23461         VEC_empty macro.
23462
23463 2010-05-29  Jan Hubicka  <jh@suse.cz>
23464
23465         PR middle-end/44324
23466         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
23467
23468 2010-05-29  Richard Guenther  <rguenther@suse.de>
23469
23470         * lto-streamer.c (cached_bp): New global variable.
23471         (bitpack_create): Return the cached bitpack, if available.
23472         (bitpack_delete): Clear and cache the bitpack, if appropriate.
23473         (bp_pack_value): Remove redundant asserts.
23474
23475 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
23476
23477         PR middle-end/44306
23478         * tree-if-conv.c (is_true_predicate): New.
23479         (is_predicated): Use is_true_predicate.
23480         (add_to_predicate_list): Same.  Do not use unshare_expr.
23481         (add_to_dst_predicate_list): Same.
23482
23483 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
23484
23485         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
23486         field on edges.
23487         (predicate_bbs): Same.
23488         (clean_predicate_lists): Same.
23489         (find_phi_replacement_condition): Do not AND the predicate from
23490         edge->aux.
23491
23492 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
23493
23494         PR bootstrap/44315
23495         * Makefile.in (build/gencondmd.o): Add a missing `\'.
23496
23497 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23498
23499         PR target/44261
23500         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
23501         (negdf2): Adjust expander pattern and use negdf2_slow.
23502         (negsf2): Likewise.
23503
23504 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
23505
23506         * basic-block.h (struct control_flow_graph): Move last_label_uid field
23507         up.
23508         * df.h (struct df_base_ref): Move regno field up.
23509         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
23510         * expr.h (struct separate_ops): Move location field up.
23511         * optabs.h (struct optab_d): Move libcall_basename field down.
23512         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
23513         * config/i386/i386.h (struct machine_function): Convert call_abi field
23514         into a bitfield.  Move cfa field to the end of the structure.
23515
23516 2010-05-29  Jan Hubicka  <jh@suse.cz>
23517
23518         * varpool.c (varpool_get_node): Fix lookup.
23519
23520 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
23521
23522         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
23523         RTL specific prototypes with #ifdef RTX_CODE.
23524         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
23525         * config/spu/t-spu-elf: Fix dependencies.
23526
23527         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
23528
23529 2010-05-29  Mike Stump  <mikestump@comcast.net>
23530
23531         PR bootstrap/44315
23532         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
23533         TM_H when building to avoid dependency loops.
23534
23535 2010-05-29  Jan Hubicka  <jh@suse.cz>
23536
23537         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
23538         refs and body; not the whole node for masters of materialized clones.
23539
23540 2010-05-29  Mike Stump  <mikestump@comcast.net>
23541
23542         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
23543
23544 2010-05-29  Jan Hubicka  <jh@suse.cz>
23545
23546         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
23547         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
23548         use of clone_function_name.
23549         * cgraph.h (cgraph_create_virtual_clone,
23550         cgraph_function_versioning): update prototypes.
23551         (clone_function_name): Declare.
23552         * ipa-cp.c (ipcp_insert_stage): Update call of
23553         cgraph_create_virtual_clone.
23554         * omp-low.c (create_omp_child_function_name): Use
23555         cgraph_create_virtual_clone.
23556         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
23557         (cgraph_function_versioning): Take SUFFIX argument; produce new name
23558         and make decl local.
23559
23560 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
23561
23562         * vec.h: Include statistics.h
23563         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
23564         with VEC_H.
23565
23566 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
23567
23568         * c-lex.c: Do not include c-tree.h.
23569         * c-pretty-print.c: Likewise.
23570         * c-opts.c: Likewise.
23571         * c-gimplify.c: Likewise.
23572         * c-common.c: Likewise.
23573         * c-dump.c: Likewise.  Include c-common.h.
23574
23575 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
23576
23577         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
23578         before including diagnostic-core.h.
23579         (c_cpp_error): New prototype moved from c-tree.h.
23580         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
23581         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
23582         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
23583         (c_cpp_error): Prototype moved to c-common.h.
23584         * Makefile.in: Update dependency for C_COMMON_H.
23585
23586 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
23587
23588         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
23589         * c-common.c (c_register_addr_space): Remove here.
23590         * c-decl.c (c_register_addr_space): Re-add here.
23591
23592 2010-05-28  Mike Stump  <mikestump@comcast.net>
23593
23594         * config/darwin-c.c: Remove c-tree.h include.
23595
23596 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
23597
23598         * gcc.c: Include diagnostic.h.
23599         (error_count): Remove.  All users changed to use errorcount.
23600         (programname): Remove.  All users changed to use progname.
23601         (fancy_abort, internal_error, fatal_error, error, warning, inform,
23602         fnotice): Remove.
23603         (execute): Don't include "Internal error" and bug reporting
23604         information in argument of internal_error call.
23605         (process_command): Don't increment error_count after calling
23606         perror_with_name.
23607         (input_filename): Rename to gcc_input_filename.  All users
23608         changed.
23609         (main): Call diagnostic_initialize.  Register delete_temp_files
23610         with atexit.  Use seen_error to test for errors.
23611         * gcc.h: Include diagnostic-core.h.
23612         (fatal_error, error, warning): Remove.
23613         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
23614         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
23615         (gcc.o): Update dependencies.
23616
23617 2010-05-28  Jeff Law  <law@redhat.com>
23618
23619         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
23620         functions.
23621         * ira.h (ira_bad_reload_regno): Declare
23622         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
23623
23624         * ira-color.c (update_curr_costs): Free updated hard reg costs.
23625         (ira_reassign_conflict_allocnos): Remove bogus asserts.
23626         (allocno_reload_assign): Likewise.
23627
23628 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
23629
23630         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
23631         build1_stat.
23632
23633 2010-05-28  Richard Guenther  <rguenther@suse.de>
23634
23635         PR lto/44312
23636         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
23637         Stream fixed-point constants mode.
23638         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
23639         and TYPE_PRECISION.
23640         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
23641         Stream fixed-point constants mode.
23642         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
23643         and TYPE_PRECISION.
23644
23645 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
23646
23647         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
23648         only place it was called from.
23649         (number_of_latch_executions): Do not return chrec_dont_know when the
23650         may_be_zero is a runtime condition: instead, return a COND_EXPR
23651         including the may_be_zero condition.
23652         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
23653         of nb_iterations.
23654         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
23655         COND_EXPRs.
23656
23657 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
23658
23659         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
23660         generate COND_EXPRs for degenerate_phi_result.
23661
23662 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
23663
23664         PR middle-end/44293
23665         * tree-if-conv.c (if_convertible_loop_p): Check the
23666         if-convertibility of phi nodes in non predicated BBs.
23667
23668 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
23669
23670         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
23671
23672 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
23673
23674         PR driver/15303
23675         * gcc.c (inform, warning, inform): New functions.
23676         (fatal_ice): Rename to internal_error; change cmsgid parameter to
23677         gmsgid.  All callers changed.
23678         (notice): Rename to fnotice; add parameter fp.  All callers changed.
23679         (fatal_error): Rename to fatal_signal.  All users changed.
23680         (fatal): Rename to fatal_error; change cmsgid parameter to
23681         gmsgid.  All callers changed.
23682         (process_command): Use warning instead of error for warnings.
23683         (end_going_arg): Don't use _() around argument of error.
23684         (do_spec_1): Use inform for message from %n specs.  Use warning
23685         instead of error for warnings.
23686         (main): Use inform for comparison messages.  Use warning for
23687         message about unused linker input.
23688         (error): Increment error_count.  Print "error: ".
23689         * gcc.h (fatal): Change to fatal_error.
23690         (warning): Declare.
23691         * config/darwin-driver.c (darwin_default_min_version): Use warning
23692         instead of fprintf for warnings.
23693         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
23694
23695 2010-05-28  Julian Brown  <julian@codesourcery.com>
23696
23697         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
23698         (*thumb2_addsi3_compare0_scratch): New.
23699         * config/arm/constraints.md (Pv): New.
23700         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
23701         for ARM mode only.
23702         (*addsi3_compare0_scratch): Likewise.
23703
23704 2010-05-28  Jan Hubicka  <jh@suse.cz>
23705
23706         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
23707         check.
23708         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
23709         only on local statics.
23710
23711 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
23712
23713         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
23714
23715 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
23716
23717         PR bootstrap/44314
23718         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
23719         (OPTION_GLIBC): Define.
23720
23721 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
23722
23723         PR debug/41048
23724         * dwarf2out.c (double_int_type_size_in_bits): New function.
23725         (round_up_to_align): Change first argument and return value to
23726         double_int.
23727         (field_byte_offset): Work internally on double_ints.
23728
23729         PR target/43636
23730         * builtins.c (expand_movstr): Use a temporary pseudo instead
23731         of target even when target is not NULL and not const0_rtx, but
23732         fails movstr predicate.
23733         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
23734
23735 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
23736
23737         * final.c (rest_of_clean_state): Use %m in errors instead of
23738         strerror (errno).
23739         * gengtype.c (read_input_list, close_output_files): Use xstrerror
23740         instead of strerror.
23741         * toplev.c (process_options): Use %m in errors instead of strerror
23742         (errno).
23743         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
23744         (errno).
23745
23746 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
23747
23748         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
23749         (ix86_canonical_va_list_type): Make static.  Add declaration.
23750         (ix86_enum_va_list): Make static.  Reindent.
23751         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
23752         (ix86_canonical_va_list_type): Ditto.
23753         (ix86_enum_va_list): Ditto.
23754
23755 2010-05-28  Richard Guenther  <rguenther@suse.de>
23756
23757         * lto-wrapper.c (run_gcc): With -save-temps generate a
23758         user-visible ltrans filename.  Fixup ltrans unit numbering.
23759
23760 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
23761
23762         * c-common.c (c_common_nodes_and_builtins): Replace use
23763         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
23764         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
23765         to ix86_enum_va_list.
23766         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
23767         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
23768         (TARGET_ENUM_VA_LIST_P): Add hook description.
23769         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
23770         * target.h (gcc_target): Add enum_va_list hook.
23771
23772         PR bootstrap/44299
23773         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
23774         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
23775         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
23776
23777 2010-05-28  Alan Modra  <amodra@gmail.com>
23778
23779         PR target/44266
23780         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
23781         emit_library_call machinery to set up __tls_get_addr calls.
23782
23783 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23784
23785         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
23786
23787 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
23788
23789         Revert fix for PR c++/44188
23790         * c-common.c (is_typedef_decl): Revert the moving of  this
23791         definition ...
23792         * tree.c (is_typedef_decl): ... here.
23793         (typdef_variant_p): Revert the moving of this  definition
23794         here from cp/tree.c.
23795         * c-common.h (is_typedef_decl): Revert the moving of this
23796         declaration ...
23797         * tree.h (is_typedef_decl): ... here.
23798         (typedef_variant_p): Revert the moving of this  declaration here
23799         from cp/cp-tree.h
23800         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
23801         (gen_tagged_type_die): Revert the splitting out of ...
23802         (gen_type_die_with_usage): ... this function. Revert the anonymous
23803         tagged type handling.
23804         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
23805         typedefs naming anonymous tagged types.
23806
23807 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
23808
23809         * config/rs6000/rs6000-modes.def (PSImode): Delete.
23810
23811 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
23812
23813         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
23814         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
23815         throughout.
23816         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
23817         "xer" to "ca".
23818         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
23819         XER_REGS to CA_REGS throughout.
23820         * config/rs6000/rs6000.h: Same.
23821         (ADDITIONAL_REGISTER_NAMES): Add "xer".
23822         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
23823         that mode_iterator "P" is the size for arithmetic carries as well.
23824         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
23825
23826 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
23827
23828         PR bootstrap/44255
23829         * combine.c (struct rtx_subst_pair): Define unconditionally.
23830         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
23831         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
23832         Call make_compound_operation on pair->to.
23833         (propagate_for_debug): Don't call make_compound_operation here.
23834         Always use simplify_replace_fn_rtx.
23835
23836 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
23837
23838         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
23839         * config/xtensa/xtensa.c (override_options): Check
23840           TARGET_FORCE_NO_PIC and set flag_pic.
23841         * config/xtensa/xtensa.opt: Document -mforce-no-pic
23842
23843 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
23844
23845         PR bootstrap/44299
23846         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
23847         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
23848
23849 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
23850
23851         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
23852         toplev.h.
23853         * diagnostic.c: Don't include toplev.h.
23854         (progname): Define.  Moved from toplev.c.
23855         (seen_error): New function.
23856         * diagnostic.h: Include diagnostic-core.h.
23857         (diagnostic_t, emit_diagnostic): Don't declare here.
23858         * toplev.c (progname): Move to toplev.c.
23859         (emit_debug_global_declarations, compile_file, finalize,
23860         do_compile, toplev_main): Use seen_error.
23861         * toplev.h: Include diagnostic-core.h.
23862         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
23863         internal_error, warning, warning_at, error, error_n, error_at,
23864         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
23865         verbatim, fnotice, progname): Move to diagnostic-core.h.
23866         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
23867         (expand_builtin_expect): Use seen_error.
23868         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
23869         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
23870         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
23871         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
23872         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
23873         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
23874         errorcount for errors.
23875         * c-opts.c (c_common_finish): Use seen_error.
23876         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
23877         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
23878         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
23879         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
23880         (get_coverage_counts): Use seen_error.
23881         * dwarf2out.c (dwarf2out_finish): Use seen_error.
23882         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
23883         gimplify_body): Use seen_error.
23884         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
23885         * ipa-pure-const.c (gate_pure_const): Use seen_error.
23886         * ipa-reference.c (gate_reference): Use seen_error.
23887         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
23888         * lambda-code.c: Include diagnostic-core.h instead of
23889         diagnostic.h.
23890         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
23891         * lto-compress.c: Include diagnostic-core.h instead of
23892         diagnostic.h.
23893         * lto-section-in.c: Include diagnostic-core.h instead of
23894         diagnostic.h.
23895         * lto-streamer-out.c: Include diagnostic-core.h instead of
23896         diagnostic.h.
23897         * lto-streamer.c: Include diagnostic-core.h instead of
23898         diagnostic.h.
23899         (gate_lto_out): Use seen_error.
23900         * matrix-reorg.c: Include diagnostic-core.h instead of
23901         diagnostic.h.
23902         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
23903         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
23904         (gate_expand_omp, lower_omp_1): Use seen_error.
23905         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
23906         (rest_of_decl_compilation, rest_of_type_compilation,
23907         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
23908         * tree-cfg.c (label_to_block_fn): Use seen_error.
23909         * tree-inline.c (optimize_inline_calls): Use seen_error.
23910         * tree-mudflap.c (mudflap_finish_file): Use
23911         seen_error.
23912         * tree-optimize.c (gate_all_optimizations,
23913         gate_all_early_local_passes, gate_all_early_optimizations): Use
23914         seen_error.
23915         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
23916         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
23917         (varpool_remove_unreferenced_decls,
23918         varpool_assemble_pending_decls): Use seen_error.
23919         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
23920         (TOPLEV_H, DIAGNOSTIC_H): Update.
23921         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
23922         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
23923         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
23924         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
23925         coverage.o, lambda-code.o): Update dependencies.
23926
23927 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
23928
23929         PR c++/44188
23930         * c-common.c (is_typedef_decl): Move this definition ...
23931         * tree.c (is_typedef_decl): ... here.
23932         (typdef_variant_p): Move definition here from cp/tree.c.
23933         * c-common.h (is_typedef_decl): Move this declaration ...
23934         * tree.h (is_typedef_decl): ... here.
23935         (typedef_variant_p): Move declaration here from cp/cp-tree.h
23936         * dwarf2out.c (is_naming_typedef_decl): New function.
23937         (gen_tagged_type_die): Split out of ...
23938         (gen_type_die_with_usage): ... this function. When an anonymous
23939         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
23940         is emitted for the typedef.
23941         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
23942         anonymous tagged types.
23943
23944 2010-05-27  Jason Merrill  <jason@redhat.com>
23945
23946         * print-tree.c (debug_vec_tree): New fn.
23947         (print_vec_tree): New fn.
23948         * tree.h: Declare them.
23949         * gdbinit.in (pvt): New command.
23950
23951         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
23952
23953         * gdbinit.in (pdd): New command.
23954
23955 2010-05-27  Jan Hubicka  <jh@suse.cz>
23956
23957         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
23958         (update_caller_keys): Return early if there are no callers;
23959         only update fibheap when decresing the key.
23960         (update_callee_keys): Avoid recursion.
23961         (decide_inlining_of_small_functions): When badness does not match;
23962         re-insert into fibheap.
23963
23964 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
23965
23966         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
23967         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
23968         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
23969         (ALL_HOST_OBJS): Now a union of the above two.
23970         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
23971         all files in ALL_HOST_FRONTEND_OBJS.
23972         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
23973
23974         * c-common.c: Pretend to be a backend file by undefining
23975         IN_GCC_FRONTEND (still need rtl.h here).
23976
23977 2010-05-27  Jan Hubicka  <jh@suse.cz>
23978
23979         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
23980         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
23981
23982 2010-05-27  Jan Hubicka  <jh@suse.cz>
23983
23984         * sched-ebb.c: Rename struct deps to struct deps_desc.
23985         * ddg.c: Likewise.
23986         * sel-sched-ir.c: Likewise.
23987         * sched-deps.c: Likewise.
23988         * sched-int.h: Likewise.
23989         * sched-rgn.c: Likewise.
23990
23991 2010-05-27  Jon Beniston  <jon@beniston.com>
23992
23993         PR 43726
23994         * config/lm32/lm32.h: Remove definition of
23995         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
23996
23997 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23998
23999         PR lto/44230
24000         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
24001
24002 2010-05-27  Richard Guenther  <rguenther@suse.de>
24003
24004         PR tree-optimization/44284
24005         * tree-vect-stmts.c (vectorizable_assignment): Handle
24006         sign-changing conversions as simple copy.
24007
24008 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24009
24010         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
24011         Bionic C library.
24012         (__gthread_active_p): Check for pthread_create if compiling against
24013         Bionic C library.
24014
24015 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24016
24017         Support compilation for Android platform.  Reimplement -mandroid.
24018
24019         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
24020         (*android*): Set ANDROID_DEFAULT.
24021         (arm*-*-linux*): Include linux-android.h.
24022         (arm*-*-eabi*): Don't include previous -mandroid implementation.
24023         * config/arm/eabi.h: Remove, move Android-specific parts ...
24024         * config/linux-android.h: ... here.  New file.
24025         * config/arm/eabi.opt: Rename to ...
24026         * config/linux-android.opt: ... this.
24027         (mandroid): Allow -mno-android option.  Initialize based on
24028         ANDROID_DEFAULT.
24029         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
24030         Move logic to corresponding LINUX_TARGET_* macros.
24031         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
24032         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
24033         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
24034         Android definitions.
24035         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
24036         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
24037         Document.
24038
24039 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24040
24041         Add support for Bionic C library
24042
24043         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
24044         macro.
24045         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
24046         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
24047
24048         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
24049         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
24050         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
24051         to support multiple C libraries.  Handle Bionic.
24052         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
24053         (BIONIC_DYNAMIC_LINKER64): Define.
24054         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
24055         Update.
24056         (TARGET_HAS_SINCOS): Enable for Bionic.
24057
24058         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
24059         the last option specified on command line take effect.
24060         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
24061         (mbionic): New.
24062         (mglibc, muclibc): Update.
24063
24064         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
24065         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
24066         DEFAULT_LIBC.
24067
24068         * doc/invoke.texi (-mglibc, -muclibc): Update.
24069         (-mbionic): Document.
24070
24071 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24072
24073         * c-common.h (c_register_addr_space): Add prototype.
24074         (ADDR_SPACE_KEYWORD): Remove.
24075         * c-common.c (c_register_addr_space): New function.
24076         (c_addr_space_name): Reimplement.
24077         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
24078
24079         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
24080         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
24081
24082         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
24083         Remove TARGET_ADDR_SPACE_KEYWORDS.
24084
24085 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24086
24087         * input.c: New file.
24088         * input.h (main_input_filename): Move declaration to toplev.h.
24089         * toplev.c (input_location, line_table): Move to input.c
24090         * toplev.h (main_input_filename): Move declaration from input.h.
24091         * tree.c (expand_location): Move to input.c.
24092         * Makefile.in (OBJS-common): Add input.o.
24093         (input.o): Add dependencies.
24094
24095 2010-05-27  Richard Guenther  <rguenther@suse.de>
24096
24097         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
24098         for non-existant files.
24099         (fork_execute): Mark args_name file as deleted.
24100
24101 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24102
24103         PR bootstrp/44287
24104         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
24105         (narrow_signed_type): Likewise.
24106
24107 2010-05-26  Jan Hubicka  <jh@suse.cz>
24108
24109         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
24110         edge only when checking is enabled; check using former_clone_of;
24111         check inline clones too.
24112         (cgraph_materialize_clone): Record former_clone_of pointer.
24113         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
24114         combining redirections; dump args_to_skip bitmap
24115         (cgraph_materialize_all_clones): Do no redirection here.
24116         * ipa-inline.c (inline_transform): Do redirection here.
24117         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
24118         cheking only).
24119
24120 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24121
24122         * config/avr/avr-c.c: Do not include regs.h.
24123         Include cpplib.h for cpp_define and tree.h for c-common.h.
24124         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
24125         * config/avr/t-avr: Fix dependencies for avr-c.o.
24126
24127 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24128
24129         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
24130         string instead of SYMBOL_REF rtx.
24131         * rtl.h (set_stack_check_libfunc): Move prototype from here...
24132         * libfuncs.h: ...to here.  Adjust for explow.c change.
24133
24134 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
24135
24136         * pretty-print.c: Don't include ggc.h.
24137         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
24138         (identifier_to_locale): Use them for allocation.
24139         * pretty-print.h (identifier_to_locale_alloc,
24140         identifier_to_locale_free): Declare.
24141         * toplev.c (alloc_for_identifier_to_locale): New.
24142         (general_init): Set identifier_to_locale_alloc and
24143         identifier_to_locale_free.
24144         * Makefile.in (pretty-print.o): Update dependencies.
24145
24146 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24147
24148         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
24149         pointer types if they have different alignment or mode.
24150
24151 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
24152
24153         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24154         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24155         * config/sparc/sparc-protos.h (function_value): Remove declaration.
24156         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
24157         sparc_function_value_regno_p): New functions.
24158         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24159         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24160         (function_value): Rename to...
24161         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
24162         argument to 'outgoing'.
24163         (function_arg_record_value, function_arg_union_value,
24164         function_arg_vector_value): Update comment.
24165
24166 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24167
24168         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
24169         (fde_needed_for_eh_p): New predicate.
24170         (output_call_frame_info): Use it throughout to decide whether FDEs
24171         are needed for EH purpose.
24172         (dwarf2out_begin_prologue): Reorder assignments.
24173
24174 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24175
24176         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
24177         special case loop->header.
24178         (is_predicated): New.
24179         (if_convertible_loop_p): Call it.
24180
24181 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24182
24183         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
24184         iterator in parameter.  Do not generate code during the analysis.
24185         (tree_if_convert_cond_stmt): Removed.
24186         (tree_if_convert_stmt): Removed.
24187         (predicate_bbs): New.
24188         (if_convertible_loop_p): Call predicate_bbs.
24189         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
24190         now contains all the analysis part.
24191
24192 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24193
24194         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
24195         statements in the analysis part.
24196         (tree_if_convert_stmt): Update comment.
24197         (remove_conditions_and_labels): New.
24198         (combine_blocks): Call remove_conditions_and_labels.
24199         (tree_if_conversion): Update comment.
24200
24201 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24202
24203         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
24204         than 2 predecessors or more than 2 successors.
24205
24206 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24207
24208         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
24209         of loops in which the data dependence analysis fails.
24210
24211 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24212
24213         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
24214         CDI_POST_DOMINATORS.
24215         (tree_if_conversion): Same.
24216
24217 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24218
24219         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
24220
24221 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24222
24223         * tree-if-conv.c: Update copyright years.  Fix comments.
24224         Fix indentation.
24225
24226 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
24227
24228         * builtin-types.def (BT_INT128): New primitive type.
24229         (BT_UINT128): Likewise.
24230         * c-common.c (c_common_r): Add __int128 keyword.
24231         (c_common_type_for_size): Handle __int128.
24232         (c_common_type_for_mode): Likewise.
24233         (c_common_signed_or_unsigned_type): Likewise.
24234         (c_common_nodes_and_builtins): Add builtin type
24235         if target supports 128-bit integer scalar.
24236         * c-common.h (enum rid): Add RID_INT128.
24237         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
24238         if target supports 128-bit integer scalar.
24239         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
24240         (finish_declspecs): Likewise.
24241         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
24242         (c_token_starts_declspecs): Likewise.
24243         (c_parser_declspecs): Likewise.
24244         (c_parser_attributes): Likewise.
24245         (c_parser_objc_selector): Likewise.
24246         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
24247         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
24248         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
24249         * tree.c (make_or_reuse_type): Likewise.
24250         (make_unsigned_type): Likewise.
24251         (build_common_tree_nodes_2): Likewise.
24252         * tree.h (enum integer_type_kind): Add itk_int128 and
24253         itk_unsigned_int128.
24254         (int128_integer_type_node): New define.
24255         (int128_unsigned_type_node): New define.
24256         * doc/extend.texi: Add documentation about __int128 type.
24257
24258 2010-05-26  Richard Guenther  <rguenther@suse.de>
24259
24260         * tree-ssa-sccvn.c (copy_nary): Adjust.
24261         (copy_phis): Rename to ...
24262         (copy_phi): ... this.  Adjust.
24263         (copy_references): Rename to ...
24264         (copy_reference): ... this.  Adjust.
24265         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
24266         result into the valid table.
24267
24268 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24269
24270         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
24271         insn-config.h, insn-codes.h, recog.h, and optabs.h.
24272
24273 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24274
24275         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
24276
24277 2010-05-26  Richard Guenther  <rguenther@suse.de>
24278
24279         * opts.c (common_handle_option): Handle OPT_Ofast.
24280
24281 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
24282
24283         * diagnostic.c: Don't include opts.h.
24284         (permissive_error_option): Define.
24285         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
24286         for classify_diagnostic.  Don't use memset for
24287         classify_diagnostic.  Initialize new and recently added fields.
24288         (diagnostic_classify_diagnostic): Use context->n_opts instead of
24289         N_OPTS.
24290         (diagnostic_report_diagnostic): Pass context parameter to
24291         diagnostic_report_warnings_p.  Use option_enabled and option_name
24292         hooks from context.
24293         (emit_diagnostic): Use permissive_error_option.
24294         (permerror): Likewise.
24295         * diagnostic.h: Don't include options.h.
24296         (struct diagnostic_context): Add n_opts, opt_permissive,
24297         inhibit_warnings, warn_system_headers, option_enabled and
24298         option_name fields.  Change classify_diagnostic to a pointer.
24299         * opts-diagnostic.h: New file.
24300         * opts.c: Include opts-diagnostic.h.
24301         (common_handle_option): Set global_dc fields for -Wfatal-errors,
24302         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
24303         (option_name): New function.
24304         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
24305         (c_common_handle_option): Set global_dc->permissive for
24306         -fpermissive.
24307         * c-common.c (c_cpp_error): Save and restore
24308         global_dc->warn_system_headers, not variable warn_system_headers.
24309         * toplev.c: Include opts-diagnostic.h.
24310         (general_init): Update call to diagnostic_initialize.  Set
24311         global_dc->show_column, global_dc->option_enabled and
24312         global_dc->option_name.
24313         (process_options): Don't set global_dc fields here.
24314         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
24315         (diagnostic.o, opts.o, toplev.o): Update dependencies.
24316
24317 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
24318
24319         * config/picochip/picochip.md (movsi): Split a movsi from a
24320         const after reload.
24321
24322 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24323
24324         * ggc-zone.c: Update copyright year.
24325         (poison_region): Mark memory for Valgrind as undefined before
24326         memset () call and inaccessible afterwards.
24327         (ggc_pch_total_size): Change type of i to int.
24328
24329 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24330
24331         * ggc-common.c (ggc_free_overhead): Allow empty slot.
24332
24333 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24334
24335         * ggc-common.c: Update copyright year.
24336         (ggc_rlimit_bound): Remove prototype.  Compile only if
24337         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
24338         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
24339         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
24340         (ggc_min_heapsize_heuristic): Likewise.
24341
24342 2010-05-26  Richard Guenther  <rguenther@suse.de>
24343
24344         PR rtl-optimization/44164
24345         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
24346         no-common access-path disambiguation.
24347         (indirect_ref_may_alias_decl_p): Adjust.
24348         (indirect_refs_may_alias_p): Likewise.
24349         (refs_may_alias_p_1): Likewise.
24350
24351 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24352
24353         * c-typeck.c: Do not include expr.h.
24354
24355 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24356
24357         * rtl.h (decl_default_tls_model): Move prototype from here...
24358         * output.h: ...to here.
24359         * c-decl.c: Do not include rtl.h.
24360         * c-pragma.c: Likewise.
24361         * c-parser.c: Likewise.
24362         * c-gimplify.c: Likewise.  And also not hard-reg-set.
24363         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
24364         FIXME note for it.  Add a FIXME note for expr.h.
24365         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
24366         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
24367         defined.
24368
24369 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
24370
24371         PR target/44199
24372         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
24373         or total_size is larger than red zone size for non-V4 ABI, emit a
24374         stack_tie resp. frame_tie insn before stack pointer restore.
24375         * config/rs6000/rs6000.md (frame_tie): New insn.
24376
24377 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
24378
24379         * function.h (struct function): Add can_throw_non_call_exceptions bit.
24380         * lto-streamer-in.c (input_function): Stream it in.
24381         * lto-streamer-out.c (output_function): Stream it out.
24382         * function.c (allocate_struct_function): Set it.
24383         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
24384         for flag_non_call_exceptions.
24385         * cfgbuild.c (control_flow_insn_p): Likewise.
24386         (make_edges): Likewise.
24387         * cfgexpand.c (expand_stack_alignment): Likewise.
24388         * combine.c (distribute_notes): Likewise.
24389         * cse.c (cse_extended_basic_block): Likewise.
24390         * except.c (insn_could_throw_p): Likewise.
24391         * gcse.c (simple_mem): Likewise.
24392         * ipa-pure-const.c (check_call): Likewise.
24393         (check_stmt ): Likewise.
24394         * lower-subreg.c (lower-subreg.c): Likewise.
24395         * optabs.c (emit_libcall_block): Likewise.
24396         (prepare_cmp_insn): Likewise.
24397         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
24398         * postreload.c (rest_of_handle_postreload): Likewise.
24399         * reload1.c (reload_as_needed): Likewise.
24400         (emit_input_reload_insns): Likewise.
24401         (emit_output_reload_insns): Likewise.
24402         (fixup_abnormal_edges): Likewise.
24403         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
24404         * store-motion.c (find_moveable_store): Likewise.
24405         * tree-eh.c (stmt_could_throw_p): Likewise.
24406         (tree_could_throw_p): Likewise.
24407         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
24408         * config/arm/arm.c (arm_expand_prologue): Likewise.
24409         (thumb1_expand_prologue): Likewise.
24410         * config/rx/rx.md (cbranchsf4): Likewise.
24411         (cmpsf): Likewise.
24412         * config/s390/s390.c (s390_emit_prologue): Likewise.
24413         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
24414         (inline_forbidden_into_p): New predicate.
24415         (expand_call_inline): Use it to forbid inlining.
24416         (tree_can_inline_p): Likewise.
24417
24418 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24419
24420         * config/i386/i386-c.c: Do not include rtl.h.
24421         * config/i386/t-i386: Update dependencies.
24422
24423 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24424
24425         * attribs.c: Do not include rtl.h.
24426         * Makefile.in: Update dependencies.
24427
24428 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
24429
24430         * double-int.h (double_int_and): New.
24431         * combine.c (try_combine): Clean up, use double_int_* and
24432         immed_double_int_const functions.
24433
24434 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24435
24436         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
24437         stderr to /dev/null instead of grep -q.
24438         * configure: Regenerate.
24439
24440 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24441
24442         * Makefile.in (EXCEPT_H): Fix typo.
24443
24444 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
24445
24446         * ira-build.c (update_conflict_hard_reg_costs): New.
24447         (ira_build): Call update_conflict_hard_reg_costs.
24448
24449 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
24450
24451         PR debug/41371
24452         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
24453         ENABLE_CHECKING.
24454         (intersect_loc_chains): Walk the s2var's loc_chain together
24455         with s1node chain as long as the locations are equal, don't
24456         call find_loc_in_1pdv in that case.
24457
24458         PR debug/42801
24459         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
24460         (copy_bind_expr): ... instead of here.
24461         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
24462         if the block hasn't been remapped.
24463         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
24464         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
24465
24466 2010-05-25  Richard Guenther  <rguenther@suse.de>
24467
24468         PR middle-end/44069
24469         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
24470         out-of-bounds array accesses.
24471
24472 2010-05-25  Richard Guenther  <rguenther@suse.de>
24473
24474         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
24475         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
24476         (run_gcc): Re-organize to make cleanup easier.
24477
24478 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24479
24480         * config/s390/s390.c (optimization_options): Fix and move the
24481         flag_prefetch_loop_arrays override ...
24482         (override_options): ... here.
24483
24484 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
24485
24486         * diagnostic.c: Don't include plugin.h.
24487         (diagnostic_report_diagnostic): Don't handle plugins specially
24488         here.  Pass context to internal_error callback.
24489         * diagnostic.h (struct diagnostic_context): Add context parameter
24490         to internal_error callback.
24491         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
24492         * plugin.h (struct diagnostic_context): Declare.
24493         (warn_if_plugins, plugins_internal_error_function): Declare.
24494         * toplev.c (general_init): Set global_dc->internal_error.
24495         * Makefile.in (diagnostic.o): Update dependencies.
24496
24497 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
24498
24499         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
24500         * config/rs6000/t-darwin64: New.
24501         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
24502         build crt2.
24503
24504 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
24505
24506         PR 44203
24507         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
24508         match the original (and intended) behaviour before r159557.  This
24509         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
24510         in two ways.
24511
24512 2010-05-25  Richard Guenther  <rguenther@suse.de>
24513
24514         * doc/invoke.texi: Document -Ofast.
24515         * target.h (struct gcc_target): Add handle_ofast.
24516         * target-def.h (TARGET_HANDLE_OFAST): Add.
24517         (TARGET_INITIALIZER): Adjust.
24518         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
24519         * common.opt (Ofast): Add.
24520
24521 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
24522
24523         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
24524         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
24525
24526 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
24527
24528         PR target/43610
24529         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
24530         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
24531         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
24532         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
24533
24534 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
24535
24536         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
24537         DW_OP_minus with negated offset instead of DW_OP_plus.
24538         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
24539
24540 2010-05-25  Wei Guozhi  <carrot@google.com>
24541
24542         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
24543         tst instruction and a new alternative.
24544         * config/arm/constraints.md (Pu): New constraint.
24545
24546 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
24547
24548         * function.c (assign_stack_local_1): Initialize variable
24549         to avoid warning when bootstrapping at -O3.
24550
24551 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
24552
24553         * configure.ac (all_lang_makefiles): Remove everything related to it.
24554         * configure: Regenerate.
24555         * Makefile.in: Fix reference to ada Make-lang.in.
24556         Remove support for LANG_MAKEFILES.
24557
24558 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
24559             Sandra Loosemore  <sandra@codesourcery.com>
24560
24561         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
24562         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
24563         description.  Add arm_neon_fp16_ok.
24564         (Add Options): Add arm_neon and arm_neon_fp16.
24565
24566 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
24567
24568         * diagnostic.c: Don't include flags.h.
24569         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
24570         context parameters.  Check flags in the context passed as a parameter.
24571         (diagnostic_build_prefix): Add context parameter.  Check
24572         show_column flag in context.
24573         (diagnostic_action_after_output): Check fatal_errors flag in context.
24574         (diagnostic_report_current_module): Check show_column flag in context.
24575         (default_diagnostic_starter): Update call to
24576         diagnostic_build_prefix.
24577         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
24578         (emit_diagnostic): Pass context to permissive_error_kind.
24579         (permerror): Pass context to permissive_error_kind.
24580         * diagnostic.h (struct diagnostic_context): Add show_column,
24581         pedantic_errors, permissive and fatal_errors fields.
24582         (diagnostic_build_prefix): Update prototype.
24583         * langhooks.c
24584         * toplev.c (process_options): Set flags in global_dc from
24585         flag_show_column, flag_pedantic_errors, flag_permissive,
24586         flag_fatal_errors.
24587         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
24588         to diagnostic_build_prefix.
24589         * Makefile.in (diagnostic.o): Update dependencies.
24590
24591 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
24592
24593         * config/i386/ia32intrin.h (__crc32q): Define only if
24594         __SSE4_2__ is defined.
24595
24596 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
24597
24598         PR target/44132
24599         PR middle-end/43602
24600         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
24601         DECL_VISIBILITY_SPECIFIED.
24602         (emutls_decl): Set DECL_PRESERVE_P and copy
24603         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
24604         (emutls_finalize_control_var): New callback.
24605         (emutls_finish): Finalize emutls control variables.
24606         * toplev.c (compile_file): Move the call to emutls_finish ()
24607         before varpool_assemble_pending_decls ().
24608
24609 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
24610
24611         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
24612         added to the preprocessor condition.
24613
24614 2010-05-24  Paul Brook  <paul@codesourcery.com>
24615
24616         * gengtype-lex.l: Add HARD_REG_SET.
24617         * expr.c (expand_expr_real_1): Record writes to hard registers.
24618         * function.c (rtl_data): Add asm_clobbers.
24619         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
24620         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
24621         Use crtl->asm_clobbers.
24622
24623 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24624
24625         * doc/makefile.texi (Makefile): Mention stages 'profile'
24626         and 'feedback' for profiledbootstrap.
24627
24628 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
24629
24630         PR target/44245
24631         * config/i386/i386.c (def_builtin): Properly check
24632         OPTION_MASK_ISA_64BIT.
24633
24634 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
24635
24636         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
24637         typedefs with different but compatible types.  Allow duplicate
24638         typedefs with the same type except for pedantic non-C1X, but give
24639         warning for variably modified types.
24640         * c-typeck.c (tagged_types_tu_compatible_p,
24641         function_types_compatible_p, type_lists_compatible_p,
24642         comptypes_internal): Add parameter different_types_p; set
24643         *different_types_p for different but compatible types.  All
24644         callers changed.
24645         (comptypes_check_different_types): New.
24646         * c-tree.h (comptypes_check_different_types): Declare.
24647
24648 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
24649
24650         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
24651         * jump.c: Include basic-block.h.
24652         * profile.c: Likewise.
24653         * tree-profile.c: Likewise.
24654         * coverage.c: Likewise.
24655         * basic-block.h (optimize_function_for_size_p): Move to function.h.
24656         (optimize_function_for_speed_p): Likewise.
24657         * function.h (optimize_function_for_size_p,
24658         optimize_function_for_speed_p): Moved here from basic-block.h.
24659         * Makefile.in: Update dependencies.
24660
24661 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24662
24663         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
24664         before calling make; allow override through $MAKE.
24665         * doc/invoke.texi (Optimize Options): Document override.
24666
24667 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
24668
24669         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
24670         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24671         (rs6000_mode_dependent_address_ptr): Make static.
24672         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24673         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
24674         Remove.
24675
24676 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
24677
24678         PR target/43869
24679         * config/i386/i386.c: Make sure that the correct regparm is passed.
24680
24681 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
24682
24683         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
24684         * sbitmap.c: ...to here to internalize sbitmap element access.
24685         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
24686         Explain why basic-block.h is included.
24687         * function.h: Include tm.h for CUMULATIVE_ARGS.
24688         * Makefile.in: Update dependencies.
24689
24690 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
24691
24692         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
24693         New core types.
24694         * sbitmap.h (struct sbitmap_def): Do not typedef here.
24695         * sbitmap.c: Include sbitmap.h.
24696         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
24697         hard-reg-set.h.  Split everything related to regsets out from here...
24698         * regset.h: ...to here.  New file.
24699         * df.h: Include regset.h and sbitmap.h.
24700         * tree-flow.h: Likewise.
24701         * cfgloop.h: Likewise.
24702         * except.h: Do not include sbitmap.h.  Include hashtab.h.
24703         * cgraph.h: Include vec.h and function.h.
24704         * reload.h (struct insn_chain): Change types of live_throughout
24705         and dead_or_set from regset_head to bitmap_head.
24706         (compute_use_by_pseudos): Be defined also if regset.h is not included.
24707         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
24708         spilled_regs from regset_head to bitmap_head to avoid dependency
24709         in regset.h.
24710         * sel-sched-ir.h: Include regset.h.
24711         * reload.c: Include df.h before reload.h.
24712         * caller-save.c: Likewise.
24713         * reload1.c: Likewise.
24714         * ira.c: Likewise.
24715         (mark_elimination): Update type of r to bitmap, consistent with
24716         DF_LR_IN.
24717         * dominance.c: Include bitmap.h.
24718         * modulo-sched.c: Include df.h.
24719         * cfganal.c: Include bitmap.h and sbitmap.h.
24720         * cfgbuild.c: Include sbitmap.h.
24721         * lcm.c: Include sbitmap.h.
24722         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
24723         * domwalk.c: Include sbitmap.h, exclude ggc.h.
24724         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
24725         * cselib.c: Include bitmap.h.
24726         * tree-optimize.c: Include regset.h.
24727         * stmt.c: Include bitmap.h.
24728         * Makefile.in: Update dependencies.
24729
24730 2010-05-22  Jan Hubicka  <jh@suse.cz>
24731
24732         * cgraph.h (struct varpool_node): Add same_comdat_group.
24733         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
24734         pointer.
24735         (output_varpool): Update call of lto_output_varpool_node.
24736         (input_varpool): Read same_comdat_group pointer.
24737         (input_varpool_1): Fixup same_comdat_group pointer.
24738         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
24739         group is needed, all are.
24740         * varpool.c (varpool_remove_node): Remove node from same comdat group
24741         linklist too.
24742         (varpool_analyze_pending_decls): Walk same comdat groups.
24743
24744 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
24745
24746         * rtl.h (union rtunion_def): Remove rt_bit member.
24747         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
24748         * print-rtl (print_rtx): Do not print the member.
24749         * gengtype.c (adjust_field_rtx_def): Do not handle it.
24750         * gengenrtl.c (type_from_format): Likewise.
24751         (accessor_from_format): Likewise.
24752
24753 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
24754
24755         * dbgcnt.c: Include toplev.h instead of errors.h.
24756         * ira-emit.c: Don't include errors.h.
24757         * ira.c: Include toplev.h instead of errors.h.
24758         * lto-compress.c: Include toplev.h instead of errors.h.
24759         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
24760         ira.o, dbgcnt.o): Update dependencies.
24761
24762 2010-05-22  Richard Guenther  <rguenther@suse.de>
24763
24764         * gimple.c (gimple_types_compatible_p): Check type qualifications
24765         before merging pointer to complete and pointer to incomplete type.
24766         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
24767         we use our own resolution algorithm.  The gold linker plugin
24768         doesn't do the job we want it to do here.
24769
24770 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
24771
24772         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24773         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24774         (sparc_mode_dependent_address_p): New function.
24775
24776 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
24777
24778         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
24779
24780         * timevar.c: Do not include any core headers.
24781         (timevar_print): De-i18n-ize.
24782         (print_time): Likewise.
24783         * timevar.h (timevar_push, timevar_pop): Make inline functions.
24784
24785 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
24786
24787         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
24788         langhooks-def.h.
24789         (diagnostic_initialize): Initialize x_data not last_function.
24790         (diagnostic_report_current_function): Move to tree-diagnostic.c.
24791         (default_diagnostic_starter): Call
24792         diagnostic_report_current_module not
24793         diagnostic_report_current_function.
24794         (diagnostic_report_diagnostic): Initialize x_data not
24795         abstract_origin.
24796         (verbatim): Likewise.
24797         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
24798         x_data.
24799         (struct diagnostic_context): Change last_function to x_data.
24800         (diagnostic_auxiliary_data): Replace with
24801         diagnostic_context_auxiliary_data and
24802         diagnostic_info_auxiliary_data.
24803         (diagnostic_last_function_changed, diagnostic_set_last_function,
24804         diagnostic_report_current_function): Move to tree-diagnostic.h.
24805         (print_declaration, dump_generic_node, print_generic_stmt,
24806         print_generic_stmt_indented, print_generic_expr,
24807         print_generic_decl, debug_c_tree, dump_omp_clauses,
24808         print_call_name, debug_generic_expr, debug_generic_stmt,
24809         debug_tree_chain, default_tree_printer): Move to
24810         tree-pretty-print.h.
24811         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
24812         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
24813         gimple-pretty-print.h.
24814         * pretty-print.c: Don't include tree.h
24815         (pp_base_format): Don't handle %K here.
24816         (pp_base_tree_identifier): Move to tree-pretty-print.c.
24817         * pretty-print.h (text_info): Change abstract_origin to x_data.
24818         (pp_tree_identifier, pp_unsupported_tree,
24819         pp_base_tree_identifier): Move to tree-pretty-print.h.
24820         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
24821         tree-pretty-print.h: New files.
24822         * tree-pretty-print.c: Include tree-pretty-print.h.
24823         (percent_K_format): New.  Moved from pretty-print.c.
24824         (pp_base_tree_identifier): Move from pretty-print.c.
24825         * c-objc-common.c: Include tree-pretty-print.h.
24826         (c_tree_printer): Handle %K here.
24827         * langhooks.c: Include tree-diagnostic.h.
24828         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
24829         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
24830         (default_tree_printer): Handle %K using percent_K_format.
24831         (general_init): Use default_tree_diagnostic_starter.
24832         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
24833         (free_lang_data): Use default_tree_diagnostic_starter.
24834         * c-pretty-print.c: Include tree-pretty-print.h.
24835         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
24836         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
24837         * dwarf2out.c: Include tree-pretty-print.h.
24838         * except.c: Include tree-pretty-print.h.
24839         * gimple-pretty-print.c: Include tree-pretty-print.h and
24840         gimple-pretty-print.h.
24841         * gimplify.c: Include tree-pretty-print.h.
24842         * graphite-poly.c: Include tree-pretty-print.h and
24843         gimple-pretty-print.h.
24844         * ipa-cp.c: Include tree-pretty-print.h.
24845         * ipa-inline.c: Include gimple-pretty-print.h.
24846         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
24847         * ipa-pure-const.c: Include gimple-pretty-print.h.
24848         * ipa-struct-reorg.c: Include tree-pretty-print.h and
24849         gimple-pretty-print.h.
24850         * ipa-type-escape.c: Include tree-pretty-print.h.
24851         * print-rtl.c: Include tree-pretty-print.h.
24852         * print-tree.c: Include gimple-pretty-print.h.
24853         * sese.c: Include tree-pretty-print.h.
24854         * tree-affine.c: Include tree-pretty-print.h.
24855         * tree-browser.c: Include tree-pretty-print.h.
24856         * tree-call-cdce.c: Include gimple-pretty-print.h.
24857         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
24858         * tree-chrec.c: Include tree-pretty-print.h.
24859         * tree-data-ref.c: Include tree-pretty-print.h and
24860         gimple-pretty-print.h.
24861         * tree-dfa.c: Include tree-pretty-print.h.
24862         * tree-if-conv.c: Include tree-pretty-print.h and
24863         gimple-pretty-print.h.
24864         * tree-inline.c: Include tree-pretty-print.h.
24865         * tree-into-ssa.c: Include tree-pretty-print.h and
24866         gimple-pretty-print.h.
24867         * tree-nrv.c: Include tree-pretty-print.h.
24868         * tree-object-size.c: Include tree-pretty-print.h and
24869         gimple-pretty-print.h.
24870         * tree-outof-ssa.c: Include tree-pretty-print.h and
24871         gimple-pretty-print.h.
24872         * tree-parloops.c: Include tree-pretty-print.h and
24873         gimple-pretty-print.h.
24874         * tree-predcom.c: Include tree-pretty-print.h and
24875         gimple-pretty-print.h.
24876         * tree-scalar-evolution.c: Include tree-pretty-print.h and
24877         gimple-pretty-print.h.
24878         * tree-sra.c: Include tree-pretty-print.h.
24879         * tree-ssa-address.c: Include tree-pretty-print.h.
24880         * tree-ssa-alias.c: Include tree-pretty-print.h.
24881         * tree-ssa-ccp.c: Include tree-pretty-print.h and
24882         gimple-pretty-print.h.
24883         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
24884         * tree-ssa-copy.c: Include tree-pretty-print.h and
24885         gimple-pretty-print.h.
24886         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
24887         * tree-ssa-dce.c: Include tree-pretty-print.h and
24888         gimple-pretty-print.h.
24889         * tree-ssa-dom.c: Include tree-pretty-print.h and
24890         gimple-pretty-print.h.
24891         * tree-ssa-dse.c: Include gimple-pretty-print.h.
24892         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
24893         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
24894         * tree-ssa-live.c: Include tree-pretty-print.h and
24895         gimple-pretty-print.h.
24896         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
24897         gimple-pretty-print.h.
24898         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
24899         gimple-pretty-print.h.
24900         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
24901         gimple-pretty-print.h.
24902         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
24903         gimple-pretty-print.h.
24904         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
24905         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
24906         * tree-ssa-operands.c: Include tree-pretty-print.h and
24907         gimple-pretty-print.h.
24908         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
24909         gimple-pretty-print.h.
24910         * tree-ssa-pre.c: Include tree-pretty-print.h and
24911         gimple-pretty-print.h.
24912         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
24913         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
24914         gimple-pretty-print.h.
24915         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
24916         gimple-pretty-print.h.
24917         * tree-ssa-sink.c: Include gimple-pretty-print.h.
24918         * tree-ssa-ter.c: Include tree-pretty-print.h and
24919         gimple-pretty-print.h.
24920         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
24921         * tree-ssa.c: Include tree-pretty-print.h and
24922         gimple-pretty-print.h.
24923         * tree-stdarg.c: Include gimple-pretty-print.h.
24924         * tree-switch-conversion.c: Include gimple-pretty-print.h.
24925         * tree-tailcall.c: Include tree-pretty-print.h and
24926         gimple-pretty-print.h.
24927         * tree-vect-data-refs.c: Include tree-pretty-print.h and
24928         gimple-pretty-print.h.
24929         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
24930         gimple-pretty-print.h.
24931         * tree-vect-loop.c: Include tree-pretty-print.h and
24932         gimple-pretty-print.h.
24933         * tree-vect-patterns.c: Include gimple-pretty-print.h.
24934         * tree-vect-slp.c: Include tree-pretty-print.h and
24935         gimple-pretty-print.h.
24936         * tree-vect-stmts.c: Include tree-pretty-print.h and
24937         gimple-pretty-print.h.
24938         * tree-vectorizer.c: Include tree-pretty-print.h.
24939         * tree-vrp.c: Include tree-pretty-print.h and
24940         gimple-pretty-print.h.
24941         * value-prof.c: Include tree-pretty-print.h and
24942         gimple-pretty-print.h.
24943         * var-tracking.c: Include tree-pretty-print.h.
24944         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
24945         (tree-diagnostic.o): New dependencies.
24946         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
24947         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
24948         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
24949         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
24950         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
24951         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
24952         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
24953         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
24954         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
24955         tree-ssa-address.o, tree-ssa-loop-niter.o,
24956         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
24957         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
24958         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
24959         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
24960         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
24961         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
24962         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
24963         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
24964         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
24965         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
24966         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
24967         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
24968         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
24969         tree-switch-conversion.o, var-tracking.o, value-prof.o,
24970         cfgexpand.o, pretty-print.o): Update dependencies.
24971
24972 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
24973
24974         * tree-ssa-structalias.c: Remove tm_p.h from include.
24975
24976 2010-05-21  Jeff Law  <law@redhat.com>
24977
24978         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
24979
24980 2010-05-21  Jason Merrill  <jason@redhat.com>
24981
24982         * tree-eh.c (cleanup_is_dead_in): New.
24983         (lower_try_finally): Don't generate a dead cleanup region.
24984         (lower_cleanup): Likewise.
24985
24986 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
24987
24988         PR debug/44223
24989         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
24990         unchain each use from the cyclic next_regno_use chain first.
24991
24992 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
24993
24994         * real: Do not include gmp.h, mpfr.h, and mpc.h.
24995         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
24996         (real_value_negate, real_value_abs): New prototypes.
24997         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
24998         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
24999         new include file for interface between MPFR and REAL_VALUE_TYPE.
25000         * real.c: Include realmpfr.h.
25001         (real_arithmetic2): Remove legacy function.
25002         (real_value_negate): New.
25003         (real_value_abs): New.
25004         (mfpr_from_real, real_from_mpfr): Move from here...
25005         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
25006         * builtins.c: Include realmpfr.h.
25007         * fold-const.c: Include realmpfr.h.
25008         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
25009         (fold_negate_const): Likewise.
25010         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
25011         * toplev.c: Include realmpfr.h.
25012         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
25013         and real_value_negate.
25014         * fixed-value.c (check_real_for_fixed_mode): Likewise.
25015         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
25016         (vfp3_const_double_index): Likewise.
25017         (arm_print_operand): Likewise.
25018         * Makefile.in: Update dependencies.
25019
25020 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25021
25022         * config/s390/s390.c (override_options): Increase the default
25023         of max-completely-peel-times.
25024
25025 2010-05-21  Julian Brown  <julian@codesourcery.com>
25026             Mark Mitchell  <mark@codesourcery.com>
25027
25028         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
25029         sibling calls for Thumb-1.
25030         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
25031         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
25032         Thumb-2.
25033         (*call_insn, *call_value_insn): Don't use for Thumb-2.
25034         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
25035         for Thumb-2.
25036         (return): New expander.
25037         (*arm_return): New name for ARM return insn.
25038         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
25039
25040 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
25041
25042         * config.gcc (sparc64-*-rtems*): New target.
25043
25044 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25045
25046         * tree.c (build_function_decl_skip_args): Fix grammar.
25047         (build_function_type_list_1): Fix typos, adjust formatting.
25048
25049 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25050
25051         * tree.h: Include real.h and fixed-value.h as basic datatypes.
25052         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
25053         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
25054         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
25055         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
25056         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
25057         tree-pretty-print.c, tree-loop-distribution.c,
25058         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
25059         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
25060         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
25061         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
25062         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
25063         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
25064         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
25065         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
25066         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
25067         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
25068         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
25069         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
25070         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
25071         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
25072         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
25073         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
25074         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
25075         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
25076         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
25077         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
25078         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
25079         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
25080         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
25081         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
25082         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
25083         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
25084         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
25085         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
25086         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
25087         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
25088         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
25089         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
25090         config/score/score7.c, config/score/score.c, config/arm/arm.c,
25091         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
25092         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
25093         config/bfin/bfin.c: Clean up redundant includes.
25094         * Makefile.in: Update accordingly.
25095
25096 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25097
25098         PR middle-end/44204
25099         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
25100         statement has no arguments.
25101
25102 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
25103
25104         PR/44139
25105         * varasm.c (emutls_decl): Merge attributes to new decl.
25106
25107 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
25108
25109         PR middle-end/44101
25110         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
25111         around the uniquized constructor if its type requires a conversion.
25112
25113 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25114
25115         PR debug/44205
25116         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
25117         at -O0 goto_locus of any of the incoming edges differs from
25118         goto_locus of outgoing edge, or gimple_location of any of the
25119         labels differs.
25120
25121 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
25122
25123         * ira.c (ira_non_ordered_class_hard_regs): Define.
25124         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
25125         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
25126         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
25127         cost of unaligned hard regs when allocating multi-reg pseudos.
25128
25129 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
25130
25131         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
25132         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
25133         for TARGET_NO_FLOAT.
25134         * config/mips/mips.c (mips_file_start): Expand conditional expression
25135         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
25136         (mips_override_options): Move -mno-float override -msoft-float and
25137         -mhard-float.
25138         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
25139         Condition(TARGET_SUPPORTS_NO_FLOAT).
25140         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
25141         __mips_no_float here.
25142         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
25143         (TARGET_SUPPORTS_NO_FLOAT): Define.
25144         * config/mips/sdemtk.opt: Delete.
25145
25146 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
25147
25148         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
25149
25150 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
25151
25152         PR target/43733
25153         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
25154         * configure: Regenerate.
25155         * config.in: Regenerate.
25156         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
25157         instead of sahf only for 64bit targets.
25158
25159 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25160
25161         PR debug/44178
25162         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
25163         setup_ref_regs for DEBUG_INSNs.
25164
25165 2010-05-20  Jan Hubicka  <jh@suse.cz>
25166
25167         PR middle-end/44197
25168         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
25169
25170 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
25171
25172         PR bootstrap/43870
25173         * df-scan.c (df_ref_compare): Stabilize sort.
25174
25175 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25176
25177         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
25178         argument.  Don't use DW_OP_piece if offset is non-zero,
25179         put offset into second DW_OP_bit_piece argument.
25180         (dw_sra_loc_expr): Adjust callers.  For memory expressions
25181         compute offset.
25182
25183 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
25184
25185         PR target/44202
25186         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
25187         settings for 16-bit-constant "addo" alternative.
25188
25189 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
25190
25191         * config/mips/mips-dsp.md (add<DSPV:mode>3,
25192         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
25193
25194         PR target/43764
25195         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
25196         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
25197         Use it.
25198
25199 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
25200
25201         * diagnostic.c (FLOAT, FFS): Don't undefine.
25202         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
25203         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
25204         include ordering.
25205
25206 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25207
25208         * combine.c (propagate_for_debug): Call make_compound_operation
25209         on the source value.
25210         (try_combine): When implementing a split chosen by find_split_point,
25211         either copy i2src or set it to null.  Assert that i2src is not null
25212         before substituting into CALL_INSN_FUNCTION_USAGE.
25213
25214 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
25215
25216         * double-int.h (double_int_ior): New function.
25217         * tree.h (build_int_cst_wide_type): Remove.
25218         * tree.c (build_int_cst_wide_type): Remove.
25219         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
25220         of build_int_cst_wide_type.
25221         * stor-layout.c (set_sizetype): (Ditto.).
25222         * dojump.c (do_jump): Use build_int_cstu instead of
25223         build_int_cst_wide_type.
25224
25225 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
25226
25227         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
25228         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
25229         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
25230         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
25231         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
25232         propagate the 'data' argument to copy_tree_r.
25233         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
25234         Propagate 'data' argument to walk_tree.
25235         (copy_if_shared): New function.
25236         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
25237         (unmark_visited): New function.
25238         (unshare_body): Call copy_if_shared instead of doing it manually.
25239         (unvisit_body): Call unmark_visited instead of doing it manually.
25240
25241 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
25242
25243         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
25244         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
25245         * hooks.c: Likewise.
25246         * target-def.h (TARGET_FOLD_BUILTIN): Define to
25247         hook_tree_tree_int_treep_bool_null.
25248         * target.h (struct gcc_target): Update signature of fold_builtin
25249         field.
25250         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
25251         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
25252         instead of the call expression.
25253         (fold_builtin_call_array): Pass n and argarray directly.
25254         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
25255         consing a list.
25256         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
25257         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
25258         `i' and use it in place of `arity'.
25259         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
25260         Dereference `args' directly.
25261         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
25262
25263 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25264
25265         * doc/sourcebuild.texi (Effective-Target Keywords): Document
25266         3dnow, sse3, sse2.
25267         (Directives): Document optional dg-require-effective-target
25268         selector.
25269
25270 2010-05-19  Richard Guenther  <rguenther@suse.de>
25271
25272         PR lto/44196
25273         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
25274
25275 2010-05-19  Richard Guenther  <rguenther@suse.de>
25276
25277         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
25278         * common.opt (fwhopr=): New.
25279         * opts.c (common_handle_option): Handle OPT_fwhopr.
25280         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
25281         * collect2.c (main): Match -fwhopr*.
25282         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
25283         Execute ltrans stage in parallel when jobs is bigger than 1.
25284
25285 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25286
25287         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
25288         pentiumpro on Solaris 8/x86 with Sun as.
25289         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
25290         hidden alias bug.
25291         (gcc_cv_as_ix86_quad): Check for .quad directive.
25292         * configure: Regenerate.
25293         * config.in: Regenerate.
25294         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
25295
25296 2010-05-19  Martin Jambor  <mjambor@suse.cz>
25297
25298         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
25299         also for indirect edges.  Actual printing moved...
25300         (ipa_print_node_jump_functions_for_edge): ...here.
25301         (ipa_compute_jump_functions): Renamed to
25302         ipa_compute_jump_functions_for_edge and made static.
25303         (ipa_compute_jump_functions): New function.
25304         (make_edge_direct_to_target): Check if the number of arguments on
25305         the newly direct edge is the same as the number of parametrs of
25306         the callee.
25307         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
25308         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
25309         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
25310         analysis functions unconditionally, call the new
25311         ipa_analyze_params_uses on the node instead of every edge.
25312
25313 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
25314
25315         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
25316         to tree.
25317         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
25318         also checks for a constant int vs.  non-constant but
25319         loop-invariant steps.
25320         (find_or_create_group): Change the sort algorithm to only consider
25321         steps that are constant ints.
25322         (idx_analyze_ref): Adopt code to handle a tree instead of a
25323         HOST_WIDE_INT for step.
25324         (gather_memory_references_ref): Handle tree instead of int and be
25325         prepared to see a NULL_TREE.
25326         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
25327         prefetches if the step cannot be calculated at compile time.
25328         (issue_prefetch_ref): Issue prefetches for non-constant but
25329         loop-invariant steps.
25330
25331 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25332
25333         Revert:
25334         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25335
25336         * tree.h (build_call_list): Remove.
25337         * tree.c (build_call_list): Remove.
25338
25339 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25340
25341         * tree.h (build_call_list): Remove.
25342         * tree.c (build_call_list): Remove.
25343
25344 2010-05-18  Jan Hubicka  <jh@suse.cz>
25345
25346         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
25347
25348 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
25349
25350         PR rtl-optimization/43332
25351         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
25352
25353 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
25354
25355         * tree.h (build_int_cstu): Implement as static inline.
25356         * tree.c (build_int_cstu): Remove function.
25357         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
25358         sign extended.
25359
25360 2010-05-18  Richard Guenther  <rguenther@suse.de>
25361
25362         PR lto/44143
25363         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
25364         (debug): Initialize from -save-temps.
25365         (collect_execute): Print command-line when verbose.
25366         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
25367         for ltrans invocation.  Produce -dumpbase flag again.
25368         (process_args): Remove.
25369         (main): Simplify.
25370         * collect2.c (maybe_run_lto_and_relink): Only pass object
25371         files to lto-wrapper.
25372         * gcc.c (LINK_COMMAND_SPEC): Likewise.
25373
25374 2010-05-18  Jan Hubicka  <jh@suse.cz>
25375
25376         * opts.c (decode_options): Do not disable whopr at ipa_cp.
25377         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
25378
25379 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
25380
25381         PR lto/44184
25382         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
25383         in a GIMPLE_ASM.
25384         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
25385         in a GIMPLE_ASM.
25386
25387 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
25388
25389         PR debug/41371
25390         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
25391         rtx_equal_p inline.
25392
25393 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
25394
25395         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
25396         lto-macho as lto_binary_reader.
25397
25398         * darwin.c (darwin_asm_named_section): Do not add assembler comment
25399         after .section directive; just print it before the directive instead.
25400
25401 2010-05-17  Jan Hubicka  <jh@suse.cz>
25402
25403         * cgraph.c (cgraph_create_virtual_clone): Only check
25404         versionable_function_p when not in wpa and checking is enabled.
25405         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
25406         there are no more functions to materialize.
25407
25408 2010-05-17  Jan Hubicka  <jh@suse.cz>
25409
25410         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
25411         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
25412         New functions.
25413         (output_cgraph): Call output_cgraph_opt_summary.
25414         (input_cgrpah): Call input_cgraph_opt_summary.
25415         (output_cgraph_opt_summary_p, output_node_opt_summary,
25416         input_node_opt_summary, input_cgraph_opt_section): New functions.
25417         * lto-section-in.c (lto_section_name): Add cgraphopt.
25418         * tree-inline.c (tree_function_versioning): Handle parm_num.
25419         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
25420         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
25421
25422 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
25423
25424         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
25425         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
25426         the insn to prefetch ratio heuristic to loops with known trip count.
25427
25428 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
25429
25430         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
25431         (schedule_prefetches): Do not generate a prefetch if the unroll factor
25432         is far from what is required by the prefetch.
25433
25434 2010-05-17  Jan Hubicka  <jh@suse.cz>
25435
25436         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
25437         (ipcp_estimate_growth): Likewise.
25438         (ipcp_const_param_count): Likewise.
25439         (ipcp_insert_stage): Likewise.
25440         * ipa-prop.c (visit_load_for_mod_analysis): New function.
25441         (visit_store_addr_for_mod_analysis): Set used flag.
25442         (ipa_detect_param_modifications): Set used flag for SSE params;
25443         update use of walk_stmt_load_store_addr_ops.
25444         (ipa_print_node_params): Print used flag.
25445         (ipa_write_node_info): Stream used flag.
25446         (ipa_read_node_info): Likewise.
25447         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
25448         (ipa_is_param_used): New function.
25449         (lto_ipa_fixup_call_notes): Remove unused declaration.
25450
25451 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25452
25453         PR target/44074
25454         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
25455         * configure: Regenerate.
25456         * config.in: Regenerate.
25457         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
25458         !HAVE_AS_IX86_REP_LOCK_PREFIX.
25459         Don't emit whitespace.
25460         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
25461         (*rep_movsi): Likewise.
25462         (*rep_movsi_rex64): Likewise.
25463         (*rep_movqi): Likewise.
25464         (*rep_movqi_rex64): Likewise.
25465         (*rep_stosdi_rex64): Likewise.
25466         (*rep_stossi): Likewise.
25467         (*rep_stossi_rex64): Likewise.
25468         (*rep_stosqi): Likewise.
25469         (*rep_stosqi_rex64): Likewise.
25470         (*cmpstrnqi_nz_1): Use {%;} after repz.
25471         (*cmpstrnqi_nz_rex_1): Likewise.
25472         (*cmpstrnqi_1): Likewise.
25473         (*cmpstrnqi_rex_1): Likewise.
25474         (*strlenqi_1): Use {%;} after repnz.
25475         (*strlenqi_rex_1): Likewise.
25476         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
25477         (*sync_compare_and_swap<mode>): Likewise.
25478         (sync_double_compare_and_swap<mode>): Likewise.
25479         (*sync_double_compare_and_swapdi_pic): Likewise.
25480         (sync_old_add<mode>): Likewise.
25481         (sync_add<mode>): Likewise.
25482         (sync_sub<mode>): Likewise.
25483         (sync_<code><mode>): Likewise.
25484
25485 2010-05-17  Martin Jambor  <mjambor@suse.cz>
25486
25487         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
25488         otr_token and polymorphic.
25489         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
25490         (cgraph_clone_edge): Copy the above fields.
25491         * tree.c (get_binfo_at_offset): New function.
25492         * tree.h (get_binfo_at_offset): Declare.
25493         * ipa-prop.h (enum jump_func_type): Added known_type jump function
25494         type, reordered items, updated comments.
25495         (union jump_func_value): Added base_type field, reordered fields.
25496         (enum ipa_lattice_type): Moved down in the file.
25497         (struct ipa_param_descriptor): New field polymorphic.
25498         (ipa_is_param_polymorphic): New function.
25499         * ipa-prop.c: Include gimple.h and gimple-fold.h.
25500         (ipa_print_node_jump_functions): Print known type jump functions.
25501         (compute_complex_pass_through): Renamed to...
25502         (compute_complex_assign_jump_func): this.
25503         (compute_complex_ancestor_jump_func): New function.
25504         (compute_known_type_jump_func): Likewise.
25505         (compute_scalar_jump_functions): Create known type and complex ancestor
25506         jump functions.
25507         (ipa_note_param_call): New parameter polymorphic, set the corresponding
25508         flag in the call note accordingly.
25509         (ipa_analyze_call_uses): Renamed to...
25510         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
25511         variable var only in the block where it is used.
25512         (ipa_analyze_virtual_call_uses): New function.
25513         (ipa_analyze_call_uses): Likewise.
25514         (combine_known_type_and_ancestor_jfs): Likewise.
25515         (update_jump_functions_after_inlining): Implemented handling of a
25516         number of new jump function types combination.
25517         (print_edge_addition_message): Removed.
25518         (make_edge_direct_to_target): New function.
25519         (try_make_edge_direct_simple_call): Likewise.
25520         (try_make_edge_direct_virtual_call): Likewise.
25521         (update_call_notes_after_inlining): Renamed to...
25522         (update_indirect_edges_after_inlining): this.  Moved edge creation for
25523         indirect calls to try_make_edge_direct_simple_call, also calls
25524         try_make_edge_direct_virtual_call for virtual calls.
25525         (ipa_print_node_params): Changed the header message.
25526         (ipa_write_jump_function): Stream also known type jump functions.
25527         (ipa_read_jump_function): Likewise.
25528         (ipa_write_indirect_edge_info): Stream new fields in
25529         cgraph_indirect_call_info.
25530         (ipa_read_indirect_edge_info): Likewise.
25531         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
25532         GIMPLE_FOLD_H.
25533
25534 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25535
25536         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
25537
25538 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
25539
25540         * tree.h (CALL_EXPR_ARGS): Delete.
25541         (call_expr_arglist): Delete.
25542         * tree.c (call_expr_arglist): Delete.
25543         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
25544         targetm.fold_builtin.
25545         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
25546         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
25547         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
25548         arglist parameter.  Use CALL_EXPR_ARG.
25549         (picochip_expand_builtin_3op): Likewise.
25550         (picochip_expand_builtin_2opvoid): Likewise.
25551         (picochip_expand_array_get): Likewise.
25552         (picochip_expand_array_put): Likewise.
25553         (picochip_expand_array_testport): Likewise.
25554         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
25555         rather than arglist.
25556         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
25557         CALL_EXPR_ARGS.
25558         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
25559         than TREE_VALUE and TREE_CHAIN.
25560         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
25561         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
25562         the arglist.
25563
25564 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
25565
25566         PR bootstrap/42347
25567         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
25568         to have no fallthru edge.
25569
25570         PR middle-end/44102
25571         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
25572         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
25573         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
25574         add BARRIER after previous bb if needed.
25575
25576 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
25577
25578         * tree.c (build_function_type_list_1): Remove bogus assert condition.
25579
25580 2010-05-17  Alan Modra  <amodra@gmail.com>
25581
25582         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
25583         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
25584         with copy_reg rtx param.
25585         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
25586         Correct cases where code for ABI_V4 did not initialise the reg
25587         used to access frame.  Also leave frame_reg_rtx as sp for large
25588         frames that save no regs.
25589
25590 2010-05-17  Martin Jambor  <mjambor@suse.cz>
25591
25592         PR middle-end/44133
25593         * tree-sra.c (create_access_replacement): New parameter rename, mark
25594         the replaement for renaming only when it is true.
25595         (get_access_replacement): Pass true in the rename parameter of
25596         create_access_replacement.
25597         (get_unrenamed_access_replacement): New function.
25598         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
25599         replacement declaration from it.
25600
25601 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
25602
25603         * function.c (try_fit_stack_local, add_frame_space): New static
25604         functions.
25605         (assign_stack_local_1): Use them.  Look for opportunities to use
25606         space previously wasted on alignment.
25607         * function.h (struct frame_space): New.
25608         (struct rtl_data): Add FRAME_SPACE_LIST member.
25609         * reload1.c (something_was_spilled): New static variable.
25610         (alter_reg): Set it.
25611         (reload): Test it in addition to testing if the frame size changed.
25612
25613 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
25614
25615         * config/s390/s390.c: Define sane prefetch settings and activate
25616         flag_prefetch_loop_arrays on -O3.
25617         * config/s390/s390.h: Declare that read can use write prefetch.
25618
25619 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
25620
25621         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
25622         build.
25623
25624 2010-05-16  Jan Hubicka  <jh@suse.cz>
25625
25626         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
25627         function body; do not check stdarg field of struct function.
25628
25629 2010-05-16  Jan Hubicka  <jh@suse.cz>
25630
25631         * cgraph.c (dump_cgraph_node): Dump versionable flag.
25632         * cgraph.h (cgraph_local_info): Add versionable flag.
25633         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
25634         (ipcp_versionable_function_p): Use it.
25635         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
25636         versionable flag.
25637
25638 2010-05-16  Jan Hubicka  <jh@suse.cz>
25639
25640         * cgraph.c (cgraph_clone_node): Take decl argument and insert
25641         clone into hash when it is different from orig.
25642         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
25643         * cgraph.h (cgraph_clone_node): Update prototype.
25644         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
25645         (lto_cgraph_encoder_delete): Delete body map.
25646         (lto_cgraph_encoder_size): Move to header.
25647         (lto_cgraph_encoder_encode_body_p,
25648         lto_set_cgraph_encoder_encode_body): New.
25649         (lto_output_node): Do not take written_decls argument; output clone_of
25650         pointer.
25651         (add_node_to): Add include_body_argument; call
25652         lto_set_cgraph_encoder_encode_body on master of the clone.
25653         (add_references): Update use of add_node_to.
25654         (compute_ltrans_boundary): Likewise.
25655         (output_cgraph): Do not create written_decls bitmap.
25656         (input_node): Take nodes argument; stream in clone_of correctly.
25657         (input_cgraph_1): Update use of input_node.
25658         * lto-streamer-out.c (lto_output): Use encoder info to decide
25659         what bodies to output.
25660         * ipa-inline.c (cgraph_clone_inlined_nodes,
25661         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
25662         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
25663         (lto_cgraph_encoder_size): Define here.
25664         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
25665         Declare.
25666
25667 2010-05-16  Richard Guenther  <rguenther@suse.de>
25668
25669         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
25670         -fipa-type-escape.
25671         * ipa-type-escape.c (gate_type_escape_vars): Run when
25672         -fipa-struct-reorg runs.
25673         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
25674         * common.opt (fipa-type-escape): Remove.
25675
25676 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25677
25678         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
25679         (decode_options): Likewise.
25680         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
25681
25682 2010-05-16  Jan Hubicka  <jh@suse.cz>
25683
25684         * ipa.c (function_and_variable_visibility): Also bring local all
25685         aliases.
25686
25687 2010-05-16  Richard Guenther  <rguenther@suse.de>
25688
25689         * alias.c (nonoverlapping_memrefs_p): Remove use of
25690         IPA type-escape information.
25691
25692 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
25693
25694         * c-common.c (c_common_reswords): Add _Static_assert for C.
25695         * c-parser.c (c_token_starts_declaration,
25696         c_parser_next_token_starts_declaration,
25697         c_parser_static_assert_declaration_no_semi,
25698         c_parser_static_assert_declaration): New.
25699         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
25700         Handle static assertions if static_assert_ok.
25701         (c_parser_external_declaration, c_parser_declaration_or_fndef,
25702         c_parser_compound_statement_nostart, c_parser_label,
25703         c_parser_for_statement, c_parser_objc_methodprotolist,
25704         c_parser_omp_for_loop): All callers of
25705         c_parser_declaration_or_fndef changed.
25706         (c_parser_struct_declaration): Handle static assertions.
25707         (c_parser_compound_statement_nostart): Use
25708         c_parser_next_token_starts_declaration and
25709         c_token_starts_declaration to detect start of declarations.
25710         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
25711         Likewise.
25712
25713 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
25714
25715         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25716         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25717         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25718         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25719         (mmix_function_outgoing_value): Rename to...
25720         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
25721         (mmix_function_value_regno_p): Make static.
25722         (mmix_libcall_value): New function.
25723         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
25724         mmix_function_value_regno_p): Remove declaration.
25725
25726 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25727
25728         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
25729         BUILT_IN_ALLOCA if stack checking is enabled.
25730
25731 2010-05-16  Richard Guenther  <rguenther@suse.de>
25732
25733         * var-tracking.c (vars_copy_1): Inline ...
25734         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
25735         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
25736         (variable_merge_over_cur): Adjust.  Merge asserts.
25737         (variable_merge_over_src): Likewise.
25738         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
25739         (variable_post_merge_new_vals): Merge asserts.
25740         (variable_post_merge_perm_vals): Likewise.
25741         (find_mem_expr_in_1pdv): Likewise.
25742         (dataflow_set_different_value): Remove.
25743         (onepart_variable_different_p): Merge asserts.
25744         (variable_different_p): Likewise.
25745         (dataflow_set_different_1): Inline ...
25746         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
25747         (emit_notes_for_differences_1): Merge asserts.
25748
25749 2010-05-16  Richard Guenther  <rguenther@suse.de>
25750
25751         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
25752         * optabs.c (libfunc_decl_hash): Likewise.
25753         * varasm.c (emutls_decl): Likewise.
25754
25755 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
25756
25757         * c-decl.c: Don't include gimple.h.
25758         (merge_decls): Do not copy gimple_body.
25759
25760 2010-05-15  Jason Merrill  <jason@redhat.com>
25761
25762         * c.opt: Add -fnothrow-opt.
25763
25764 2010-05-15  Jan Hubicka  <jh@suse.cz>
25765
25766         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
25767         analyzed.
25768         * passes.c (ipa_write_summaries): Write all analyzed nodes.
25769
25770 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
25771
25772         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
25773         * Makefile.in: Add it.
25774         Fix all other Makefile dependencies for changes below.
25775         * tree.h: Include it instead of defining VEC primitives here.
25776         * gimple.h: Likewise.
25777         * rtl.h: Likewise.
25778         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
25779         * except.h: Include vecir.h, break dependence on tree.h.
25780
25781         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
25782         Move from here...
25783         * tree-iterator.c: ...to here.
25784         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
25785
25786         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
25787         tm_p.h.
25788         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
25789         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
25790         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
25791         tree-mudflap.h, and target.h.
25792         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
25793         predict.h, tree-inline.h, gimple.h, and langhooks.h.
25794         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
25795         Add FIXME for why gimple.h is still included (should be unnecessary
25796         since GCC 4.5 gimplification unit-at-a-time).
25797         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
25798         * c-pragma.c: Add FIXME for why function.h needs to be included just
25799         for cfun, at front-end level.
25800         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
25801         Do not include ggc.h, but include vecprim.h for VEC(char).
25802         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
25803         Explain why target.h is included.
25804         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
25805         Explain why gimple.h is included.
25806         * c-ppoutput.c: Do not include tm.h.
25807         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
25808         * c-parses.c: Explain why rtl.h is included, and that this (and only
25809         this) is also why tm.h must be included.
25810         Do not include except.h.
25811         * c-lang.c: Do not include ggc.h.
25812
25813 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
25814
25815         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
25816
25817 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
25818
25819         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
25820         unions by default if those structs and unions have no tags.  Do
25821         not condition anonymous struct and unions handling on flag_iso.
25822         Allow anonymous structs and unions for C1X.
25823         (finish_struct): Do not diagnose lack of named fields when
25824         anonymous structs and unions present for C1X.  Accept flexible
25825         array members in structure with anonymous structs or unions but no
25826         directly named fields.
25827         * doc/extend.texi (Unnamed Fields): Update.
25828
25829 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
25830
25831         * gimple.h (compare_field_offset): Rename into...
25832         (gimple_compare_field_offset): ...this.
25833         * gimple.c (compare_field_offset): Rename into...
25834         (gimple_compare_field_offset): ...this.  Compare the full access if
25835         the offset is self-referential.
25836         (gimple_types_compatible_p): Adjust for above renaming.
25837         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
25838         DECL_NONADDRESSABLE_P flag of fields before merging them.
25839
25840 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
25841
25842         * tree.h (ctor_to_list): Delete.
25843         * tree.c (ctor_to_list): Delete.
25844
25845 2010-05-15  Jan Hubicka  <jh@suse.cz>
25846
25847         * ipa-reference.c: Include toplev.h
25848         (is_proper_for_analysis): Only add to all_module_statics
25849         if it is allocated.
25850         (write_node_summary_p, stream_out_bitmap,
25851         ipa_reference_write_optimization_summary,
25852         ipa_reference_read_optimization_summary): New.
25853         (struct ipa_opt_pass_d pass_ipa_reference): Add
25854         optimization summary streaming.
25855         * lto-cgraph.c (referenced_from_this_partition_p,
25856         reachable_from_this_partition_p): New functions.
25857         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
25858         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
25859         * opts.c (decode_options): Enable ipa_reference.
25860         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
25861         * lto-streamer.h (referenced_from_this_partition_p,
25862         reachable_from_this_partition_p): Declare.
25863
25864 2010-05-15  Richard Guenther  <rguenther@suse.de>
25865
25866         PR tree-optimization/44038
25867         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
25868         taking the address of a V_C_E of a constant.
25869
25870 2010-05-14  Jan Hubicka  <jh@suse.cz>
25871
25872         * tree.h (memory_identifier_string): Remove.
25873         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
25874         (ipa_reference_global_vars_info_d): Remove statics_not_read and
25875         statics_not_written.
25876         (ipa_reference_optimization_summary_d): New structure.
25877         (ipa_reference_optimization_summary_t): New type and vector.
25878         (ipa_reference_vars_info_d): Embedd structures instead of using
25879         pointers.
25880         (reference_vars_to_consider): Remove out of GGC space.
25881         (module_statics_escape): Remove.
25882         (global_info_obstack): Rename to ...
25883         (optimization_summary_obstack): ... this one.
25884         (initialization_status_t): Remove.
25885         (memory_identifier_string): Remove.
25886         (get_reference_vars_info): Fix indenting.
25887         (set_reference_vars_info): Likewise.
25888         (get_reference_optimization_summary): New.
25889         (set_reference_optimization_summary): New.
25890         (get_global_reference_vars_info): Remove.
25891         (ipa_reference_get_read_global): Remove.
25892         (ipa_reference_get_written_global): Remove.
25893         (ipa_reference_get_not_read_global): Update.
25894         (ipa_reference_get_not_written_global): Update.
25895         (is_proper_for_analysis): Outlaw addressable.
25896         (propagate_bits): Update for new datastructures.
25897         (analyze_variable): Remove.
25898         (init_function_info): Update for new datastructures.
25899         (clean_function_local_data): Remove.
25900         (clean_function): Remove.
25901         (copy_global_bitmap): Use optimizations_summary_obstack.
25902         (duplicate_node_data): Duplicate optimization summary only.
25903         (remove_node_data): Remove optimization summary only.
25904         (generate_summary): Do not analyze variables; do not compute
25905         module_statics_escape; do not prune solutions by it.
25906         (read_write_all_from_decl): Fix typos in comments.
25907         (propagate): Doscover readonly and nonaddressable first;
25908         update for new datastructures; share global bitmaps.
25909         * ipa-reference.h (ipa_reference_get_read_global,
25910         ipa_reference_get_written_global): Remove.
25911         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
25912         * Makefile.in: Remove ipa-refereference from GT files.
25913
25914 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
25915
25916         PR debug/44112
25917         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
25918         for all SYMBOL_REF_DECLs.
25919
25920 2010-05-14  Jan Hubicka  <jh@suse.cz>
25921
25922         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
25923         (varpool_all_refs_explicit_p): New inline function.
25924         * ipa-reference.c: Update comment.
25925         (module_statics_written): Remove.
25926         (get_static_decl): Remove.
25927         (ipa_init): Do not initialize module_statics_written.
25928         (analyze_function): Likewise.
25929         (generate_summary): Likewise; do not compute module_statics_readonly
25930         and do not update variable flags.
25931         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
25932         * ipa.c: Inlucde flags.h
25933         (cgraph_local_node_p): New.
25934         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
25935         promote functions to local.
25936         (ipa_discover_readonly_nonaddressable_vars): New function.
25937         (function_and_variable_visibility): Use cgraph_local_node_p.
25938         * varpool.c (varpool_finalize_decl): Set force_output for
25939         DECL_PRESERVE_P vars.
25940
25941 2010-05-14  Jan Hubicka  <jh@suse.cz>
25942
25943         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
25944
25945 2010-05-14  Richard Guenther  <rguenther@suse.de>
25946
25947         PR tree-optimization/44119
25948         * tree-ssa-pre.c (eliminate): Properly mark replacement of
25949         a PHI node necessary.
25950
25951 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25952
25953         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
25954
25955 2010-05-14  Jason Merrill  <jason@redhat.com>
25956
25957         PR c++/44127
25958         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
25959         (gimple_call_set_nothrow): New.
25960         * gimple.c (gimple_build_call_from_tree): Call it.
25961         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
25962
25963         PR c++/44127
25964         * gimplify.c (gimplify_seq_add_stmt): No longer static.
25965         * gimple.h: Declare it.
25966         * gimple.c (gimple_build_eh_filter): No ops.
25967
25968 2010-05-14  Jan Hubicka  <jh@suse.cz>
25969
25970         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
25971         nodes already in queue.
25972         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
25973         re-enqueueing node.
25974
25975 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
25976
25977         PR debug/44136
25978         * cfgexpand.c (expand_debug_expr): If non-memory op0
25979         has BLKmode, return NULL.
25980
25981 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
25982
25983         * config.gcc: Add support for --with-cpu option for bdver1.
25984         * config/i386/i386.h (TARGET_BDVER1): New macro.
25985         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
25986         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
25987         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
25988         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
25989         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
25990         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
25991         (processor_type): Add PROCESSOR_BDVER1.
25992         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
25993         processor_type in config/i386/i386.h.
25994         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
25995         movaps <reg, reg> instead of movapd <reg, reg> when replacing
25996         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
25997         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
25998         to emit packed xor instead of packed double/packed integer
25999         xor for SSE and AVX when moving a zero value.
26000         * config/i386/sse.md: Add check for
26001         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
26002         movapd/movdqa for SSE and AVX.
26003         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
26004         single logical operations i.e and, or and xor instead of packed double
26005         logical operations for SSE and AVX.
26006         * config/i386/i386-c.c (ix86_target_macros_internal):
26007         Add PROCESSOR_BDVER1.
26008         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
26009         (has_fma4, has_xop): New.
26010         * config/i386/i386.c (bdver1_cost): New variable.
26011         (m_BDVER1): New macro.
26012         (m_AMD_MULTIPLE): Add m_BDVER1.
26013         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
26014         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
26015         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
26016         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
26017         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
26018         x86_tune_sse_partial_reg_dependency,
26019         x86_tune_sse_unaligned_load_optimal,
26020         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
26021         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
26022         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
26023         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
26024         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
26025         Enable/disable for bdver1.
26026         (processor_target_table): Add bdver1_cost.
26027         (cpu_names): Add bdver1.
26028         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
26029          processor_alias_table.
26030         (ix86_expand_vector_move_misalign): Change.
26031         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
26032         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
26033         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
26034         of movupd/movdqu for SSE and AVX.
26035         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
26036         (ix86_tune_adjust_cost): Add code for bdver1.
26037         (standard_sse_constant_opcode): Add check for
26038         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
26039         of packed double xor for SSE and AVX.
26040
26041 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
26042
26043         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
26044         result to unsigned.
26045
26046 2010-05-14  Tristan Gingold  <gingold@adacore.com>
26047
26048         * toplev.c (default_debug_hooks): Remove this variable.
26049         (process_options): Remove assignments to default_debug_hooks.
26050
26051 2010-05-14  Martin Jambor  <mjambor@suse.cz>
26052
26053         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
26054         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
26055         * langhooks.h (struct lang_hooks_for_decls): Removed field
26056         fold_obj_type_ref.
26057         * tree.c (free_lang_data): Remove assignment to
26058         lang_hooks.fold_obj_type_ref.
26059         * tree.def (OBJ_TYPE_REF): Update comment.
26060
26061 2010-05-14  Richard Guenther  <rguenther@suse.de>
26062
26063         PR tree-optimization/44124
26064         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
26065
26066 2010-05-14  Alan Modra  <amodra@gmail.com>
26067
26068         PR target/44075
26069         * config/rs6000/rs6000.c (struct machine_function): Reorder
26070         fields for better packing.  Add lr_save_state.
26071         (rs6000_ra_ever_killed): Return lr_save_state if set.
26072         (rs6000_emit_eh_reg_restore): Set lr_save_state.
26073
26074 2010-05-13  Jan Hubicka  <jh@suse.cz>
26075
26076         * varpool.c (decide_is_variable_needed): Drop code checking
26077         TREE_SYMBOL_REFERENCED.
26078
26079 2010-05-13  Jan Hubicka  <jh@suse.cz>
26080
26081         * final.c (output_addr_const): Do not call mark_decl_referenced.
26082         * cgraphunit.c (process_function_and_variable_attributes): Use
26083         mark_needed_node dirrectly.
26084         (assemble_thunk): Do not call mark_decl_referenced.
26085
26086 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
26087
26088         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
26089
26090 2010-05-13  Jeff Law  <law@redhat.com>
26091
26092         * ira-conflicts.c (print_allocno_conflicts): New function broken out
26093         from...
26094         (print_conflicts): Call print_allocno_conflicts.
26095
26096 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26097
26098         PR debug/44104
26099         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
26100         if it is NULL.
26101
26102 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
26103
26104         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
26105         t-mingw-w64 or t-mingw-w32 for multilib configuration.
26106         * config/i386/t-mingw-w32: New.
26107         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
26108
26109 2010-05-13  Martin Jambor  <mjambor@suse.cz>
26110
26111         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
26112         gimple-fold.c).
26113         * gimple-fold.c (get_base_binfo_for_type): New function.
26114         (gimple_get_relevant_ref_binfo): Likewise.
26115         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26116         (gimple_fold_obj_type_ref): Likewise.
26117         (fold_gimple_call): Simplify condition for folding virtual calls
26118         and call gimple_fold_obj_type_ref.
26119         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
26120         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26121
26122 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
26123
26124         * config/rs6000/rs6000-protos.h
26125         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
26126         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
26127         (rs6000_debug_mode_dependent_address)
26128         (rs6000_mode_dependent_address_ptr): Likewise.
26129
26130 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26131
26132         PR debug/43983
26133         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
26134         by SRA.
26135         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
26136         * tree-sra.c (create_access_replacement): Call unshare_expr before
26137         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
26138         * dwarf2out.c: Include tree-flow.h.
26139         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
26140         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
26141         Handle DW_OP_bit_piece.
26142         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
26143         construct_piece_list, adjust_piece_list): New functions.
26144         (add_var_loc_to_decl): Handle SRA optimized variables.
26145         Adjust for var_loc_note to loc field renaming.
26146         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
26147         in VAR_LOCATION note.
26148         (new_loc_descr_op_bit_piece): New function.
26149         (dw_sra_loc_expr): New function.
26150         (dw_loc_list): Use it.  Don't handle the last range after the
26151         loop, handle it inside of the loop.  Adjust for var_loc_note
26152         to loc field renaming.
26153         (add_location_or_const_value_attribute): Only special case
26154         single entry loc lists if loc is NOTE_P.  Adjust for
26155         var_loc_note to loc field renaming.
26156         (dwarf2out_var_location): Don't set newloc->var_loc_note
26157         and newloc->next here.
26158
26159 2010-05-12  Jan Hubicka  <jh@suse.cz>
26160
26161         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
26162         flag.
26163         * cgraph.h (cgraph_only_called_directly_p,
26164         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
26165         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
26166         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
26167         (assemble
26168         * ipa.c (cgraph_remove_unreachable_nodes): Use
26169         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
26170         flags.
26171         * tree-inline.c (copy_bb): Check address_taken flag.
26172         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
26173         externally_visible flag.
26174
26175 2010-05-12  Jason Merrill  <jason@redhat.com>
26176
26177         PR bootstrap/44048
26178         PR target/44099
26179         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
26180         * sdbout.c (plain_type_1): Likewise.
26181         * dwarf2out.c (is_base_type): Likewise.
26182         (gen_type_die_with_usage): Likewise.  Generate
26183         DW_TAG_unspecified_type for any LANG_TYPE.
26184
26185 2010-05-12  Jan Hubicka  <jh@suse.cz>
26186
26187         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
26188         indrect edges too.
26189         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
26190         (cgraph_clone_edge): Update.
26191         (cgraph_node_remove_callees): Remove indirect calls too.
26192         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
26193         (cgraph_create_indirect_edge): Update prototype.
26194         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
26195         is_proper_for_analysis.
26196         (add_new_function, visited_nodes, function_insertion_hook_holder,
26197         get_local_reference_vars_info, mark_address_taken, mark_address,
26198         mark_load, mark_store, check_asm_memory_clobber, check_call,
26199         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
26200         (ipa_init): Do not initialize visited_nodes;
26201         function_insertion_hook_holder.
26202         (analyze_variable): Rewrite.
26203         (analyze_function): Rewrite.
26204         (copy_local_bitmap): Remove.
26205         (duplicate_node_dat): Do not duplicate local info.
26206         (generate_summary): Simplify to only walk cgraph.
26207         (write_node_summary_p, ipa_reference_write_summary,
26208         ipa_reference_read_summary): Remove.
26209         (propagate): Do not remove function insertion;
26210         generate summary.
26211         (pass_ipa_reference): NULLify summary handling fields.
26212         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
26213         (input_edge): Input ecf_flags.
26214         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
26215         (update_indirect_edges_after_inlining): Ignore edges with unknown
26216         param.
26217
26218 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
26219
26220         * implicit-zee.c: New file.
26221         * tree-pass.h (pass_implicit_zee): Declare.
26222         * passes.c (init_optimization_passes): Add zee pass.
26223         * common.opt (fzee): New flag.
26224         * timevar.def (TV_ZEE): Define.
26225         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
26226         and beyond.
26227         * Makefile.in (implicit-zee.o): Add new build file.
26228
26229 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26230             Nathan Froyd  <froydnj@codesourcery.com>
26231
26232         * c-common.c (sync_resolve_params): Remove write-only variable.
26233
26234 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
26235
26236         * target.h (struct gcc_target): Add mode_dependent_address_p field.
26237         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26238         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
26239         * targhooks.c (default_mode_dependent_address_p): New function.
26240         * targhooks.h (default_mode_dependent_address_p): Declare function.
26241         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26242         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
26243         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
26244         target hook. Change return type to bool.
26245         * recog.h (mode_dependent_address_p): Change return type to bool.
26246
26247 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26248             Nathan Froyd  <froydnj@codesourcery.com>
26249
26250         * tree-mudflap.c (build_function_type_0, build_function_type_1,
26251         build_function_type_2, build_function_type_3): Remove.
26252         (mudflap_init): Use build_function_type_list.
26253
26254 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26255             Nathan Froyd  <froydnj@codesourcery.com>
26256
26257         * coverage.c (build_fn_info_value): Call build_constructor instead of
26258         build_constructor_from_list.
26259         (build_ctr_info_value): Likewise.
26260         (build_gcov_info): Likewise.
26261
26262 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
26263
26264         * tree.c (build_constructor): Compute TREE_CONSTANT for the
26265         resultant constructor.
26266         (build_constructor_single): Don't set TREE_CONSTANT.
26267         (build_constructor_from_list): Don't compute TREE_CONSTANT.
26268
26269 2010-05-12  Jan Hubicka  <jh@suse.cz>
26270
26271         * cgraph.h (struct varpool_node): Add aux.
26272         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
26273         * varpool.c (varpool_remove_node): Do not remove initializer.
26274         (varpool_reset_queue): Export.
26275         (varpool_finalize_decl): Volatile vars are forced to be output.
26276         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
26277         replaced decl.
26278         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
26279         process_references, varpool_can_remove_if_no_refs): New functions.
26280         (cgraph_remove_unreachable_nodes): Handle variables too.
26281
26282 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
26283
26284         PR target/44088
26285         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
26286
26287 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
26288
26289         PR middle-end/44085
26290         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
26291         change value of ORT_TASK.
26292         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
26293         (omp_notice_threadprivate_variable): New function.
26294         (omp_notice_variable): Call it for threadprivate variables.
26295         If enclosing ctx is a task, print enclosing task rather than
26296         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
26297         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
26298         if task has untied clause.
26299
26300         PR debug/42278
26301         * dwarf2out.c (base_type_die): Don't add name attribute here.
26302         (modified_type_die): Instead of sizetype use
26303         its underlying original type.  If a DW_TAG_base_type doesn't
26304         have name added, add __unknown__.
26305         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
26306         always call force_type_die instead.
26307
26308 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
26309
26310         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
26311         for __stack_chk_guard.
26312
26313 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
26314
26315         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
26316         don't call start_source_file debug hook here...
26317         (finish_options): ... but here, after outputting predefined and
26318         command line defines and undefs.
26319
26320         PR middle-end/44071
26321         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
26322         no fallthru edge.
26323         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
26324         optimizing away empty bb with no successors, move over its
26325         footer chain to fallthru predecessor.
26326         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
26327         (rtl_split_edge): For asm goto call patch_jump_insn even if
26328         splitting fallthru edge.
26329
26330         PR c++/44059
26331         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
26332         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
26333         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
26334         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
26335         on DW.ref.* decls.
26336
26337         PR c++/44062
26338         * c-parser.c (c_parser_expression): Mark LHS of a comma
26339         expression as read if it is a decl, handled component or
26340         COMPOUND_EXPR with that on the RHS.
26341         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
26342         if it is a decl or handled component.
26343
26344 2010-05-11  Jan Hubicka  <jh@suse.cz>
26345
26346         * lto-symtab.c (lto_symtab_free): New function.
26347         * lto-streamer.h (lto_symtab_free): Declare.
26348
26349 2010-05-11  Jan Hubicka  <jh@suse.cz>
26350
26351         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
26352         that if function is needed it is reachable.
26353         (lto_output_node): See if it the function is reachable or referenced.
26354         (output_cgraph): Update call of lto_output_node.
26355         * lto-streamer.h (reachable_from_other_partition_p): Declare.
26356
26357 2010-05-11  Jan Hubicka  <jh@suse.cz>
26358
26359         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
26360         Mark as used.
26361
26362 2010-05-11  Jan Hubicka  <jh@suse.cz>
26363
26364         PR tree-optimize/44063
26365         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
26366         queue.
26367         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
26368         limits.
26369         (estimate_function_body_sizes): Compute sizes even when disregarding.
26370
26371 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
26372
26373         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
26374
26375 2010-05-11  Jan Hubicka  <jh@suse.cz>
26376
26377         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
26378         into every boundary.
26379
26380 2010-05-11  Jan Hubicka  <jh@suse.cz>
26381
26382         * matrix-reorg.c (matrix_reorg): Rebuild edges.
26383
26384 2010-05-11  Jan Hubicka  <jh@suse.cz>
26385
26386         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
26387         lto_streamer_cache_delete): Put nodes into heap.
26388         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
26389         heap.
26390
26391 2010-05-11  Jan Hubicka  <jh@suse.cz>
26392
26393         * cgraphbuild.c (cgraph_rebuild_references): New.
26394         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
26395         out extern inlines.
26396         * cgraph.h (cgraph_rebuild_references): Declare.
26397         * tree-inline.c (tree_function_versioning): Use it.
26398         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
26399
26400 2010-05-11  Jan Hubicka  <jh@suse.cz>
26401
26402         * cgraph.c: Include ipa-utils.h
26403         (cgraph_create_virtual_clone): Update references.
26404         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
26405
26406 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
26407
26408         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
26409         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
26410         cache size.
26411
26412 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
26413
26414         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
26415
26416 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
26417
26418         * gcc.c (execute): For -### don't quote arguments that
26419         contain just alphanumerics and _/-. characters.
26420         * doc/invoke.texi: Document that change for -###.
26421
26422         PR debug/44023
26423         * df-problems.c (struct dead_debug): Add to_rescan field.
26424         (dead_debug_init): Clear to_rescan field.
26425         (dead_debug_finish): Rescan all debug insns in to_rescan
26426         bitmap and free the bitmap.
26427         (dead_debug_insert_before): Instead of rescanning debug insns
26428         immediately queue their rescanning until dead_debug_finish.
26429         (df_note_bb_compute): After dead_debug_add do continue instead
26430         of break.
26431
26432 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
26433
26434         PR debug/44028
26435         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
26436         clear also INSN_REG_USE_LIST.
26437
26438 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26439
26440         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
26441
26442 2010-05-10  Jan Hubicka  <jh@suse.cz>
26443
26444         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
26445         commited change.
26446
26447 2010-05-10  Jan Hubicka  <jh@suse.cz>
26448
26449         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
26450         Allocate encoders.
26451         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
26452         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
26453         (lto_streamer_cache_create): Init alloc pool.
26454         (lto_streamer_cache_delete): Free alloc pool.
26455         * lto-streamer.h: Include alloc pool.
26456         (lto_streamer_cache_d): Use alloc pool.
26457         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
26458
26459 2010-05-10  Jan Hubicka  <jh@suse.cz>
26460
26461         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
26462         * cgraphbuild.c: Include except.h
26463         (record_type_list, record_eh_tables): New function.
26464         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
26465
26466 2010-05-10  Jan Hubicka  <jh@suse.cz>
26467
26468         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
26469         __frame_dummy_init_array_entry, force_to_data): Attribute as used
26470         rather than unused.
26471
26472 2010-05-10  Michael Matz  <matz@suse.de>
26473
26474         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
26475         (can_reassociate_p): Use FLOAT_TYPE_P.
26476         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
26477         (vect_force_simple_reduction): ... this.
26478         * tree-parloops.c (gather_scalar_reductions): Use
26479         vect_force_simple_reduction.
26480         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
26481         vect_is_simple_reduction, add modify argument, if true rewrite
26482         "a-b" into "a+(-b)".
26483         (vect_is_simple_reduction, vect_force_simple_reduction): New
26484         functions.
26485         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
26486
26487 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
26488             Vladimir Makarov  <vmakarov@redhat.com>
26489
26490         PR rtl-optimization/44012
26491         * ira-build.c (remove_unnecessary_allocnos): Nullify
26492         regno_allocno_map of the removed allocno.
26493
26494 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26495
26496         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
26497         to /dev/null.
26498         * configure: Regenerate.
26499
26500 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26501
26502         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
26503         unused.
26504         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
26505         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
26506         support in Sun ld.
26507         * configure: Regenerate.
26508
26509 2010-05-10  Richard Guenther  <rguenther@suse.de>
26510
26511         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
26512         marked if the entry identifier is marked.
26513
26514 2010-05-10  Richard Guenther  <rguenther@suse.de>
26515
26516         * c-common.c (struct c_common_attributes): Add fnspec attribute.
26517         (handle_fnspec_attribute): New function.
26518         * gimple.h (gimple_call_return_flags): Declare.
26519         (gimple_call_arg_flags): Likewise.
26520         * gimple.c (gimple_call_arg_flags): New function.
26521         (gimple_call_return_flags): Likewise.
26522         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
26523         New argument flags.
26524         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
26525         return value flags.
26526         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
26527         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
26528         main work to ...
26529         (make_heapvar_for): ... this new function.
26530         (handle_rhs_call): Handle fnspec attribute argument specifiers.
26531         (handle_lhs_call): Likewise.
26532         (find_func_aliases): Adjust.
26533
26534 2010-05-10  Richard Guenther  <rguenther@suse.de>
26535
26536         PR tree-optimization/44050
26537         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
26538
26539 2010-05-10  Wei Guozhi  <carrot@google.com>
26540
26541         PR target/42879
26542         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
26543
26544 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
26545
26546         PR c/10676
26547         * c-typeck.c (lookup_field): Take a type directly.  Update
26548         recursive calls.
26549         (build_component_ref): Update call to lookup_field.
26550         (set_init_label): Use lookup_field to find initialized field.
26551         Handle returned list of fields like a sequence of designators.
26552
26553 2010-05-09  Richard Guenther  <rguenther@suse.de>
26554
26555         PR middle-end/44024
26556         * fold-const.c (tree_single_nonzero_warnv_p): Properly
26557         handle &FUNCTION_DECL.
26558
26559 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
26560
26561         PR c/4784
26562         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
26563         structures and unions recursively.
26564         (detect_field_duplicates): Move duplicate detection with a hash to
26565         detect_field_duplicates_hash.  Always use a hash if anonymous
26566         structures or unions are present.
26567         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
26568         give errors.
26569
26570 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
26571
26572         PR target/44046
26573         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
26574         detect Atom, Core 2 and Core i7.
26575
26576 2010-05-09  Richard Guenther  <rguenther@suse.de>
26577
26578         * gcc.c (store_arg): Handle temporary file deletion for
26579         joined arguments.
26580
26581 2010-05-09  Richard Guenther  <rguenther@suse.de>
26582
26583         PR middle-end/44043
26584         * ipa-inline.c (estimate_function_body_sizes): Return after
26585         disregarding inline limits.
26586
26587 2010-05-09  Richard Guenther  <rguenther@suse.de>
26588
26589         * gcc.c (store_arg): Revert last change.
26590
26591 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
26592
26593         PR middle-end/28685
26594         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
26595         (optimize_ops_list): Call it.
26596
26597 2010-05-08  Richard Guenther  <rguenther@suse.de>
26598
26599         PR tree-optimization/44030
26600         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
26601         NECESSARY flag if we propagate from a inserted expression.
26602
26603 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
26604
26605         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
26606         domain types as equal if they are both PLACEHOLDER_EXPRs.
26607
26608 2010-05-08  Richard Guenther  <rguenther@suse.de>
26609
26610         * lto-wrapper.c (run_gcc): Remove linker output from
26611         command line for LTRANS invocation.
26612
26613 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
26614
26615         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
26616         lto-macho as lto_binary_reader.
26617         * target.h (struct gcc_target): New hooks lto_start and lto_end.
26618         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
26619         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
26620         in lto_start and lto_end calls.
26621         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
26622         magic numbers.
26623         (scan_prog_file): Update is_elf_or_coff call.
26624         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
26625
26626         * collect2.c (main): Fix enum comparison.
26627
26628         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
26629         Add prototypes.
26630         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
26631         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
26632         and TARGET_ASM_LTO_END.
26633         * darwin.c: Include obstack.h and lto-streamer.h.
26634         (lto_section_names_offset, lto_section_names_obstack,
26635         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
26636         global variables.
26637         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
26638         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
26639         to a temporary file.
26640         (darwin_asm_lto_end): New function.  Restore asm_out_file.
26641         (darwin_asm_named_section): For LTO sections, replace the name with
26642         the offset of the section name in a string table, and build this
26643         table.
26644         (darwin_file_start): Initialize global vars for LTO support.
26645         (darwin_file_end): If output to asm_out_file was redirected, append it
26646         to the proper asm_out_file here.  Add the section names section.
26647
26648 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
26649
26650         * c-pragma.c (pending_weak_d, pending_weak): New.
26651         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
26652         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
26653         handle_pragma_weak): Update the uses of pending_weaks.
26654
26655 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26656
26657         PR documentation/44016
26658         * doc/standards.texi (Standards): Link to unversioned
26659         cxx0x_status.html page.
26660
26661 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
26662
26663         PR target/43708
26664         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
26665         in addition to TREE_USED, to avoid "set but unused" warnings.
26666
26667 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
26668
26669         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
26670         (is_loop_prefetching_profitable): Do not insert prefetches
26671         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
26672         times the prefetch ahead distance.
26673
26674 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
26675
26676         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
26677         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
26678         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
26679         the unroll_factor.
26680
26681 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
26682
26683         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
26684         a diagnostic info when the insn-to-mem ratio is too small.
26685
26686 2010-05-07  Richard Guenther  <rguenther@suse.de>
26687
26688         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
26689         the linker plugin.
26690         (store_arg): Queue temp_filename for deletion instead of
26691         the whole argument.
26692
26693 2010-05-07  Richard Guenther  <rguenther@suse.de>
26694
26695         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
26696         (run_gcc): Handle LTRANS phase invocation.
26697         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
26698
26699 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
26700
26701         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
26702         this is also meaningful on PARM_DECLs and RESULT_DECLs.
26703
26704 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26705
26706         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
26707
26708 2010-05-07  Richard Guenther  <rguenther@suse.de>
26709
26710         PR tree-optimization/44020
26711         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
26712         code when PRE is not yet initialized.
26713
26714 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26715
26716         * config/mips/dbxmdebug.h: Remove.
26717         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
26718
26719 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
26720
26721         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
26722         with null pointer and also warn about ordered comparison of zero with
26723         pointer if -Wextra.
26724
26725 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
26726
26727         * graphite-blocking.c
26728         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
26729         * graphite-clast-to-gimple.c
26730         (clast_to_gcc_expression): Same.
26731         (precision_for_value): Same.
26732         (precision_for_interval): Same.
26733         (gcc_type_for_interval): Same.
26734         (graphite_create_new_guard): Same.
26735         (compute_bounds_for_level): Same.
26736         (graphite_create_new_loop_guard): Same.
26737         * graphite-interchange.c
26738         (build_linearized_memory_access): Same.
26739         (pdr_stride_in_loop): Same.
26740         (memory_strides_in_loop_1): Same.
26741         (memory_strides_in_loop): Same.
26742         (extend_scattering): Same.
26743         (psct_scattering_dim_for_loop_depth): Same.
26744         (pbb_number_of_iterations): Same.
26745         * graphite-poly.h
26746         (debug_iteration_domains): Same.
26747         * graphite-ppl.c
26748         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
26749         (ppl_set_inhomogeneous_gmp): Same.
26750         (ppl_strip_loop): Same.
26751         (ppl_lexico_compare_linear_expressions): Same.
26752         (ppl_read_polyhedron_matrix): Same.
26753         (ppl_max_for_le_pointset): Same.
26754         * graphite-ppl.h
26755         (ppl_read_polyhedron_matrix): Same.
26756         (tree_int_to_gmp): Same.
26757         (gmp_cst_to_tree): Same.
26758         (ppl_set_inhomogeneous): Same.
26759         (ppl_set_inhomogeneous_tree): Same.
26760         (ppl_set_coef): Same.
26761         (ppl_set_coef_tree): Same.
26762         * graphite-sese-to-poly.c
26763         (build_pbb_scattering_polyhedrons): Same.
26764         (build_scop_scattering): Same.
26765         (scan_tree_for_params_right_scev): Same.
26766         (scan_tree_for_params): Same.
26767         (find_params_in_bb): Same.
26768         (find_scop_parameters): Same.
26769         (add_upper_bounds_from_estimated_nit): Same.
26770         (build_loop_iteration_domains): Same.
26771         (add_condition_to_domain): Same.
26772         (pdr_add_memory_accesses): Same.
26773
26774 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
26775
26776         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
26777         CLooG's value_* macros to their respective mpz_* counterparts.
26778         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
26779         (graphite_create_new_loop_guard): Same.
26780         * graphite-interchange.c (build_linearized_memory_access): Same.
26781         (pdr_stride_in_loop): Same.
26782         (memory_strides_in_loop_1): Same.
26783         (1st_interchange_profitable_p): Same.
26784         * graphite-poly.c (extend_scattering): Same.
26785         (psct_scattering_dim_for_loop_depth): Same.
26786         (pbb_number_of_iterations): Same.
26787         (pbb_number_of_iterations_at_time): Same.
26788         * graphite-poly.h (new_1st_loop): Same.
26789         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
26790         (oppose_constraint): Same.
26791         (insert_constraint_into_matrix): Same.
26792         (ppl_set_inhomogeneous_gmp): Same.
26793         (ppl_set_coef_gmp): Same.
26794         (ppl_strip_loop): Same.
26795         (ppl_lexico_compare_linear_expressions): Same.
26796         (ppl_max_for_le_pointset): Same.
26797         (ppl_min_for_le_pointset): Same.
26798         (ppl_build_realtion): Same.
26799         * graphite-ppl.h (gmp_cst_to_tree): Same.
26800         (ppl_set_inhomogeneous): Same.
26801         (ppl_set_inhomogeneous_tree): Same.
26802         (ppl_set_coef): Same.
26803         (ppl_set_coef_tree): Same.
26804         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
26805         (build_scop_scattering): Same.
26806         (add_value_to_dim): Same.
26807         (scan_tree_for_params_right_scev): Same.
26808         (scan_tree_for_params_int): Same.
26809         (scan_tree_for_params): Same.
26810         (find_params_in_bb): Same.
26811         (find_scop_parameters): Same.
26812         (add_upper_bounds_from_estimated_nit): Same.
26813         (build_loop_iteration_domains): Same.
26814         (create_linear_expr_from_tree): Same.
26815         (add_condition_to_domain): Same.
26816         (pdr_add_memory_accesses): Same.
26817
26818 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
26819             Jason Merrill  <jason@redhat.com>
26820
26821         * c-common.c (c_common_reswords): Add nullptr.
26822         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
26823         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
26824         (gen_type_die_with_usage): Likewise.
26825         * dbxout.c (dbxout_type): Likewise.
26826         * sdbout.c (plain_type_1): Likewise.
26827
26828 2010-05-06  Jason Merrill  <jason@redhat.com>
26829
26830         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
26831         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
26832         ret appropriately.
26833         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
26834
26835         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
26836         stripping WITH_SIZE_EXPR.
26837         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
26838         change.
26839
26840 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26841
26842         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
26843         list of obsolete configurations.
26844         Disabled check for obsolete configurations.
26845         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
26846         Removed support for previous versions.
26847         * config/mips/iris.h: Removed.
26848         * config/mips/iris5.h: Removed.
26849         * config/mips/iris6.h: Merged old iris.h contents.
26850         (TARGET_IRIX): Removed.
26851         (DRIVER_SELF_SPECS): Removed mabi=32.
26852         (IDENT_ASM_OP): Removed undef.
26853         (STARTFILE_SPEC): Removed mabi=32.
26854         (ENDFILE_SPEC): Likewise.
26855         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
26856         (MACHINE_TYPE): Update for IRIX 6.5.
26857         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
26858         TARGET_IRIX by TARGET_IRIX6.
26859         (mips_file_start): Likewise.
26860         (mips_output_external): Remove IRIX 5/6 O32 support.
26861         (mips_output_function_prologue): Likewise.
26862         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
26863         TARGET_IRIX6.
26864         (TARGET_CPU_CPP_BUILTINS): Likewise.
26865         (TARGET_IRIX): Removed.
26866         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
26867         (MULTILIB_DIRNAMES): Removed 32.
26868         (MULTILIB_OSDIRNAMES): Removed ../lib.
26869         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
26870         (Specific, mips-sgi-irix5): Document removal.
26871         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
26872         Remove references to older IRIX 6 releases and the O32 ABI.
26873
26874 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
26875
26876         PR bootstrap/43994
26877         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
26878         instead of DF_REF_REAL_REG.
26879
26880 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
26881
26882         PR target/43888
26883         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
26884         handling to still return true for x64 targets.
26885
26886 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
26887
26888         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
26889
26890 2010-05-06  Jan Hubicka  <jh@suse.cz>
26891
26892         PR tree-optimization/43791
26893         * ipa-inline.c (update_caller_keys): Remove bogus
26894         disregard_inline_limits check.
26895
26896 2010-05-06  Michael Matz  <matz@suse.de>
26897
26898         PR tree-optimization/43984
26899         * tree-ssa-pre.c (inserted_phi_names): Remove.
26900         (inserted_exprs): Change to bitmap.
26901         (create_expression_by_pieces): Set bits, don't append to vector.
26902         (insert_into_preds_of_block): Don't handle inserted_phi_names.
26903         (eliminate): Don't look at inserted_phi_names, remove deleted
26904         insns from inserted_exprs.
26905         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
26906         (init_pre, fini_pre): Allocate and free bitmaps.
26907         (execute_pre): Insert insns on edges before elimination.
26908
26909 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
26910
26911         * tree.c (initializer_zerop): Handle STRING_CST.
26912
26913 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26914
26915         PR 40989
26916         * doc/invoke.texi (Wimplicit): Document as C only.
26917         * opts.c (common_handle_option): Add argument kind.
26918         (handle_option): Rename as read_cmdline_option. Factor out code to...
26919         (handle_option): ... here. New.
26920         (handle_options): Rename as read_cmdline_options.
26921         (decode_options): Update call.
26922         (set_option): Use option index instead of option pointer. Classify
26923         diagnostics correctly.
26924         (enable_warning_as_error): Call handle_option.
26925         * opts.h (set_option): Update declaration.
26926         (handle_option): Declare.
26927         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
26928         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
26929         * c-opts.c (set_Wimplicit): Delete.
26930         (c_family_lang_mask): New static constant.
26931         (c_common_handle_option): Add argument kind. Use handle_option
26932         instead of set_Wimplicit.
26933         (c_common_post_options): warn_implicit and warn_implicit_int
26934         are disabled by default.
26935         * c-common.c (warn_implicit): Do not define here.
26936         * c-common.h (warn_implicit): Do not declare here.
26937         (c_common_handle_option): Update declaration.
26938         * lto-opts.c (lto_reissue_options): Update call to set_option.
26939
26940 2010-05-06  Richard Guenther  <rguenther@suse.de>
26941
26942         PR tree-optimization/43571
26943         * domwalk.c (walk_dominator_tree): Walk the dominator
26944         sons in more optimal order.
26945
26946 2010-05-06  Richard Guenther  <rguenther@suse.de>
26947
26948         PR tree-optimization/43934
26949         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
26950         (stmt_cost): Likewise.
26951         (extract_true_false_args_from_phi): New helper.
26952         (determine_max_movement): For PHI nodes verify we can hoist them
26953         and compute their cost.
26954         (determine_invariantness_stmt): Handle PHI nodes.
26955         (move_computations_stmt): Likewise.  Hoist PHI nodes in
26956         if-converted form using COND_EXPRs.
26957         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
26958         (tree_ssa_lim): Likewise.
26959         * tree-flow.h (tree_ssa_lim): Adjust prototype.
26960         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
26961
26962 2010-05-06  Richard Guenther  <rguenther@suse.de>
26963
26964         PR tree-optimization/43987
26965         * tree-ssa-structalias.c (could_have_pointers): For possibly
26966         address-taken variables force pointers to be recorded.
26967         (create_variable_info_for_1): Likewise.
26968         (push_fields_onto_fieldstack): Pass in wheter all fields
26969         must have pointers.
26970         (find_func_aliases): Query types instead of vars whether
26971         they contain pointers where appropriate.
26972
26973 2010-05-06  Jan Hubicka  <jh@suse.cz>
26974
26975         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
26976         (record_reference, mark_address, mark_load, mark_store): Record
26977         references.
26978         (record_references_in_initializer): Update call of record_references.
26979         (rebuild_cgraph_edges): Remove all references before rebuiding.
26980         * cgraph.c (cgraph_create_node): Clear ref list.
26981         (cgraph_remove_node): Remove references.
26982         (dump_cgraph_node): Dump references.
26983         (cgraph_clone_node): Clone references.
26984         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
26985         (struct cgraph_node, varpool_node): Add ref_lst.
26986         * ipa-ref.c: New file.
26987         * ipa-ref.h: New file.
26988         * ipa-ref-inline.h: New file.
26989         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
26990         (referenced_from_other_partition_p): New function.
26991         (lto_output_varpool_node): Take set arugment; call
26992         referenced_from_other_partition.
26993         (lto_output_ref): New.
26994         (add_references): New.
26995         (output_refs): New.
26996         (output_cgraph): Compute boundary based on references; output refs.
26997         (output_varpool): Accept cgraph_node_set argument.
26998         (input_ref): New.
26999         (input_refs): New.
27000         (input_cgraph): Call input_refs.
27001         * lto-section-in.c (lto_section_name): Add refs.
27002         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
27003         (ipa-ref.o): New file.
27004         * varpool.c (varpool_node): Clear ipa ref list.
27005         (varpool_remove_node): Remove references.
27006         (dump_varpool_node): Dump references.
27007         (varpool_assemble_decl): Only compile finalized ones.
27008         (varpool_extra_name_alias): Initialize ref list.
27009         * lto-streamer.c (lto-get_section_name): Add .refs section.
27010         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
27011         (referenced_from_other_partition_p): Declared.
27012
27013 2010-05-06  Ira Rosen  <irar@il.ibm.com>
27014
27015         PR tree-optimization/43901
27016         * tree-vect-stmts.c (vectorizable_call): Assert that vector
27017         type is not NULL if it's transformation phase, and return
27018         FALSE if it's analysis.
27019         (vectorizable_conversion, vectorizable_operation,
27020         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
27021
27022 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
27023
27024         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27025         Delete.
27026         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27027         New define.
27028         * config/mips/mips-protos.h
27029         (mips_small_register_classes_for_mode_p): Delete prototype.
27030
27031 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
27032
27033         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
27034         * config/arm/arm.c (multiple_operation_profitable_p,
27035         compute_offset_order): New static functions.
27036         (load_multiple_sequence, store_multiple_sequence): Use them.
27037         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
27038         memory offsets, not register numbers.
27039         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
27040
27041 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
27042
27043         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
27044         (get_pending_sizes, put_pending_size, put_pending_sizes):
27045         Update the uses of pending_sizes.
27046         * c-decl.c (store_parm_decls): Likewise.
27047         * c-tree.h (struct c_arg_info): Likewise.
27048         * tree.h: Update the prototype for get_pending_sizes and
27049         put_pending_sizes.
27050
27051 2010-05-05  Jason Merrill  <jason@redhat.com>
27052
27053         PR debug/43370
27054         * c-common.c (handle_aligned_attribute): Respect
27055         ATTR_FLAG_TYPE_IN_PLACE.
27056
27057         PR testsuite/43758
27058         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
27059         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27060         (TARGET_INITIALIZER): Use it.
27061         * c-common.c (attribute_takes_identifier_p): Call it.
27062         * c-common.h: Update prototype.
27063         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
27064         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27065
27066 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27067
27068         PR debug/43950
27069         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
27070         DW_ID_down_case for Fortran compilation units.
27071
27072 2010-05-05  Jan Hubicka  <jh@suse.cz>
27073
27074         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
27075         handle aliases.
27076
27077 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
27078
27079         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
27080         a variable-sized RESULT_DECL.
27081
27082 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
27083
27084         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
27085
27086 2010-05-05  Jason Merrill  <jason@redhat.com>
27087
27088         PR c++/43787
27089         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
27090         returns GS_OK.
27091         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
27092
27093 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
27094             Jakub Jelinek  <jakub@redhat.com>
27095
27096         PR debug/43478
27097         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
27098         (dead_debug_init, dead_debug_finish): New functions.
27099         (dead_debug_add, dead_debug_insert_before): Likewise.
27100         (df_note_bb_compute): Initialize a dead_debug object, add dead
27101         debug uses to it, insert debug bind insns before death insns,
27102         reset debug insns that refer to pending uses at the end.
27103         * rtl.h (make_debug_expr_from_rtl): New prototype.
27104         * varasm.c (make_debug_expr_from_rtl): New function.
27105
27106 2010-05-05  Jan Hubicka  <jh@suse.cz>
27107
27108         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
27109         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
27110         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
27111         lto_varpool_encoder_deref, lto_varpool_encoder_size,
27112         lto_varpool_encoder_encode_initializer_p,
27113         lto_set_varpool_encoder_encode_initializer): New functions.
27114         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
27115         call output_varpool.
27116         (input_varpool_node): Do not always set analyzed.
27117         (input_cgraph_1): Return vector of cgraph nodes.
27118         (input_varpool_1): Return vector of varpools.
27119         (input_cgraph): Free the vectors.
27120         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27121         output only initializers needed.
27122         (lto_output): Only call output_cgraph.
27123         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
27124         * lto-section-out.c (lto_new_out_decl_state): Initialize
27125         state->varpool_node_encoder.
27126         * lto-streamer.h (lto_varpool_encoder_d): New.
27127         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
27128         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
27129         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
27130         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
27131         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
27132         Declare.
27133         (output_varpool, input_varpool): Remove declarations.
27134
27135 2010-05-05  Jan Hubicka  <jh@suse.cz>
27136
27137         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
27138         with body can prevail.
27139
27140 2010-05-05  Jan Hubicka  <jh@suse.cz>
27141
27142         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
27143         size.
27144
27145 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27146
27147         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
27148
27149         * gengtype.h (erro_at_line): Constify pos argument.
27150
27151         * gengtype.c: Include hashtab.h.
27152         (enum gc_used): Document GC_MAYBE_POINTED_TO.
27153         (error_at_line): Constify pos argument.
27154         (do_typedef): Initialize p->opt field.
27155         (get_file_gtfilename): Fix comment typo.
27156         (struct walk_type_data): Constify line field.
27157         (get_output_file_for_structure): New function.
27158         (write_local_func_for_structure): Constify orig_s argument.
27159         Use get_output_file_for_structure.
27160         (write_func_for_structure): Use get_output_file_for_structure.
27161         (INDENT): New define.
27162         (dump_pair, dump_type, dump_type_list, dump_typekind)
27163         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
27164         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
27165         functions.
27166         (seen_types): New variable.
27167         (main): New variable do_dump.  Process "-d" command line option.
27168         Call dump_everything if dump requested.
27169
27170 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27171
27172         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
27173         in a temporary instead of invoking the macro multiple times.
27174         (track_expr_p): Likewise.
27175
27176 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
27177
27178         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
27179         per new semantics.
27180         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
27181         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
27182         conditions for printing notes.
27183         * common.opt (-Wcoverage-mismatch): Allow negative, default to
27184         true, update documentation.
27185         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
27186
27187 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
27188
27189         PR c/43981
27190         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
27191         on dimen.
27192
27193 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27194
27195         PR target/43799
27196         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
27197         (*sse_prologue_save_insn1): Likewise.
27198         (SSE prologue save splitter): Likewise.
27199
27200 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
27201
27202         * tree.c (free_lang_data_in_one_sizepos): New inline function.
27203         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
27204         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
27205         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
27206         all decls.  Call it on DECL_FIELD_OFFSET of fields.
27207         (find_decls_types_r): Follow DECL_VALUE_EXPR.
27208         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
27209
27210 2010-05-04  Martin Jambor  <mjambor@suse.cz>
27211
27212         * tree-sra.c (build_access_from_expr_1): The first parameter type
27213         changed to simple tree.
27214         (build_access_from_expr): Likewise, gsi parameter was eliminated.
27215         (scan_assign_result): Renamed to assignment_mod_result, enum elements
27216         renamed as well.
27217         (build_accesses_from_assign): Removed all parameters except for a
27218         simple gimple statement.  Now returns a simple bool.
27219         (scan_function): All non-analysis parts moved to separate functions
27220         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
27221         parameters and updated both callers.
27222         (sra_modify_expr): Removed parameter data.
27223         (sra_modify_function_body): New function.
27224         (perform_intra_sra): Call sra_modify_function_body to modify the
27225         function body.
27226         (replace_removed_params_ssa_names): Parameter data changed into
27227         adjustments vector.
27228         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
27229         changed the parameter dont_convert to convert with the opposite
27230         meaning.
27231         (sra_ipa_modify_assign): Parameter data changed into adjustments
27232         vector, return value changed to bool.
27233         (ipa_sra_modify_function_body): New function.
27234         (sra_ipa_reset_debug_stmts): Updated a comment.
27235         (modify_function): Use ipa_sra_modify_function_body to modify function
27236         body.
27237
27238 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27239
27240         PR middle-end/43671
27241         * alias.c (true_dependence): Handle the same VALUE in x and mem.
27242         (canon_true_dependence): Likewise.
27243         (write_dependence_p): Likewise.
27244
27245 2010-05-04  Jan Hubicka  <jh@suse.cz>
27246
27247         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
27248         * cgraphbuild.c: Include ipa-utils.h
27249         (record_reference_ctx): New struct.
27250         (record_reference): Simplify to work on initializers; not statements.
27251         (mark_address, mark_load, mark_store): New.
27252         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27253         walk PHI nodes too.
27254         (record_references_in_initializer): Update use of record_reference.
27255         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27256         walk PHI nodes too.
27257
27258 2010-05-04  Jan Hubicka  <jh@suse.cz>
27259
27260         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
27261         node will be removed anyway.
27262         (lto_varpool_replace_node): Allow also unanalyzed nodes;
27263         relink aliases of node into prevailing node.
27264         * varpool.c (varpool_remove_node): Remove aliases properly;
27265         when removing node, remove all its aliases too; remove DECL_INITIAL
27266         of removed node; ggc_free the varpool node.
27267
27268 2010-05-04  Richard Guenther  <rguenther@suse.de>
27269
27270         PR tree-optimization/43879
27271         * tree-ssa-structalias.c (alias_get_name): Use
27272         DECL_ASSEMBLER_NAME if available.
27273         (create_function_info_for): Return the varinfo node.
27274         (ipa_pta_execute): Associate same-body aliases and extra names
27275         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
27276
27277 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
27278
27279         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
27280
27281 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
27282
27283         PR bootstrap/43964
27284         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
27285         only if HONOR_REG_ALLOC_ORDER is not defined.
27286
27287 2010-05-04  Richard Guenther  <rguenther@suse.de>
27288
27289         PR tree-optimization/43949
27290         * tree-vrp.c (extract_range_from_binary_expr): Only handle
27291         TRUNC_MOD_EXPR.
27292
27293 2010-04-26  Jason Merrill  <jason@redhat.com>
27294
27295         * c.opt (-fstrict-enums): New.
27296         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
27297
27298 2010-05-03  David Ung  <davidu@mips.com>
27299             James E. Wilson  <wilson@codesourcery.com>
27300
27301         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
27302         emit the trap instruction before the divide for TUNE_74K.
27303
27304 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
27305
27306         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
27307         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
27308         based on the above, for new target hook.
27309
27310         * hooks.c (hook_bool_mode_true): New generic hook.
27311         * hooks.h (hook_bool_mode_true): Add prototype.
27312
27313         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
27314         target hook.
27315         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
27316         target hook, set to hook_bool_mode_false.
27317         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
27318         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
27319         with targetm.small_register_classes_for_mode_p.
27320         (find_reusable_reload): Likewise.
27321         (combine_reloads): Likewise.
27322         * reload1.c (reload_as_needed): Likewise.
27323         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
27324         * ifcvt.c (noce_process_if_block, check_cond_move_block,
27325         dead_or_predicable): Likewise.
27326         * regmove.c (optimize_reg_copy_1): Likewise.
27327         * calls.c (prepare_call_address): Likewise.
27328         (precompute_register_parameters): Likewise.
27329
27330         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
27331         hook definition.
27332         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
27333         implementation of the hook that considers all register classes
27334         small except for SH64.
27335         (sh_override_options): Use the new hook.
27336         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
27337         Add prototype.
27338
27339         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
27340         hook definition.
27341         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
27342         implementation of the hook that considers all register classes
27343         small for THUMB1.
27344         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
27345         Add prototype.
27346
27347         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
27348         hook definition.
27349         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
27350         implementation of the hook that considers all register classes
27351         small for MIPS16.
27352         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
27353         Add prototype.
27354
27355         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
27356         hook definition.
27357         * config/m32c/m32c.h: Likewise.
27358         * config/pdp11/pdp11.h: Likewise.
27359         * config/avr/avr.h: Likewise.
27360         * config/xtensa/xtensa.h: Likewise.
27361         * config/m68hc11/m68hc11.h: Likewise.
27362         * config/mn10300/mn10300.h: Likewise.
27363         * config/mcore/mcore.h: Likewise.
27364         * config/h8300/h8300.h: Likewise.
27365         * config/bfin/bfin.h: Likewise.
27366
27367         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
27368         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
27369
27370 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
27371
27372         * double-int.h (tree_to_double_int): Remove macro.
27373         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
27374         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
27375         (tree_to_double_int): New function.
27376         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
27377         Move ...
27378         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
27379
27380 2010-05-03  Richard Guenther  <rguenther@suse.de>
27381
27382         PR tree-optimization/43971
27383         * tree-ssa-structalias.c (get_constraint_for_1): Fix
27384         constraints in the !flag_delete_null_pointer_checks case.
27385
27386 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
27387
27388         PR debug/43972
27389         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
27390         result mode matches original rtl mode.
27391
27392 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
27393
27394         PR target/43888
27395         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
27396
27397 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27398
27399         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
27400         when processing flag options.
27401
27402 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27403
27404         * gcov-iov.c (main): Change format string placeholder
27405         from %#08x to 0x%08x.
27406         * genchecksum.c (dosum): Change format string placeholder
27407         from %#02x to 0x%02x.
27408
27409 2010-05-02  Richard Guenther  <rguenther@suse.de>
27410
27411         PR tree-optimization/43879
27412         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
27413
27414 2010-05-02  Bruno Haible  <bruno@clisp.org>
27415
27416         * doc/extend.texi (Function Attributes): Fix a typo.
27417
27418 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27419
27420         Revert:
27421         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
27422         placeholder from 0x%x to %#x.
27423         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
27424         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
27425         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
27426         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
27427         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
27428         * config/i386/i386.c (ix86_target_string): Ditto.
27429         * config/i386/i386.c (output_pic_addr_const): Ditto.
27430         (print_operand): Ditto.
27431
27432 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27433
27434         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
27435         placeholder from 0x%x to %#x.
27436         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
27437         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
27438         (ASM_OUTPUT_DEBUG_DATA): Ditto.
27439         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
27440         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
27441         * optc-gen.awk: Ditto.
27442         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
27443         (HOST_WIDE_INT_PRINT_HEX): Ditto.
27444         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
27445         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
27446
27447 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
27448
27449         * target.h (struct calls): Add function_value_regno_p field.
27450         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
27451         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
27452         * targhooks.c (default_function_value_regno_p): New function.
27453         * targhooks.h (default_function_value_regno_p): Declare function.
27454         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
27455         * builtins.c. (apply_result_size): (Ditto.).
27456         * combine.c. (likely_spilled_retval_p): (Ditto.).
27457         * mode-switching.c. Include 'target.h'.
27458         (create_pre_exit): Use function_value_regno_p hook.
27459         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
27460         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
27461         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
27462
27463         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
27464         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
27465         (ix86_function_value_regno_p): Declare as static, change argument
27466         type to const unsigned int.
27467         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
27468
27469 2010-05-01  Richard Guenther  <rguenther@suse.de>
27470
27471         PR tree-optimization/43949
27472         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
27473         types.
27474         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
27475
27476 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
27477
27478         * rtl.h (CONST_DOUBLE_P): Define.
27479         (rtx_to_double_int): Declare.
27480         * emit-rtl.c (rtx_to_double_int): New function.
27481         * dwarf2out.c (insert_double): New function.
27482         (loc_descriptor, add_const_value_attribute): Clean up, use
27483         rtx_to_double_int and insert_double functions.
27484
27485 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
27486
27487         * doc/extend.texi (Inline): Add missing return keyword to examples.
27488         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
27489         "command-line".
27490
27491 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
27492
27493         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
27494         the variable part of the offset as well.  Use highest_pow2_factor for
27495         all alignment checks.
27496
27497 2010-04-30  Richard Guenther  <rguenther@suse.de>
27498
27499         PR tree-optimization/43879
27500         * tree-ssa-structalias.c (type_could_have_pointers): Functions
27501         can have pointers.
27502
27503 2010-04-30  Jan Hubicka  <jh@suse.cz>
27504
27505         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
27506         varpool.
27507         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
27508
27509 2010-04-30  Jan Hubicka  <jh@suse.cz>
27510
27511         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
27512         New.
27513         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
27514         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
27515         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
27516         cgraph_node_set_needs_ltrans_p): Remove.
27517
27518 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
27519
27520         * sdbout.c: Include vec.h, do not include varray.h.
27521         (deferred_global_decls, sdbout_global_decl,
27522         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
27523         * toplev.c: Do not include varray.h.
27524         (dump_memory_report): Do not dump VARRAY statistics.
27525         * gengtype.c (open_base_file): Ignore varray.h.
27526         * Makefile.in: Update for abovementioned changes.
27527         Remove all traces of varray.c and varray.h.
27528         * varray.c: Remove file.
27529         * varray.h: Remove file.
27530
27531 2010-04-30  Jan Hubicka  <jh@suse.cz>
27532
27533         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
27534         references.
27535
27536 2010-04-30  Jan Hubicka  <jh@suse.cz>
27537
27538         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
27539         needed.
27540
27541 2010-04-30  Richard Guenther  <rguenther@suse.de>
27542
27543         * tree-ssa-structalias.c (get_constraint_for_1): Generate
27544         constraints for CONSTRUCTOR.
27545
27546 2010-04-30  Richard Guenther  <rguenther@suse.de>
27547
27548         PR lto/43946
27549         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
27550         first after all lowering passes.
27551
27552 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
27553
27554         * toplev.c: Include varray.h for statistics dumping.
27555         * tree.h: Do not declare varray_head_tag.
27556         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
27557         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
27558         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
27559         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
27560         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
27561         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
27562         c-common.c, c-common.h, reg-stack.c, basic-block.h,
27563         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
27564         include varray.h.
27565         * Makefile.in: Update for abovementioned changes.
27566
27567 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
27568
27569         PR debug/43942
27570         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
27571
27572 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
27573
27574         * config/picochip/picochip.c (picochip_legitimize_address): Define.
27575         Use this function to do machine-specific conversion.
27576         (picochip_legitimize_reload_address): Likewise.
27577         (picochip_legitimate_address_p): Check valid base register only if
27578         strict.
27579         (picochip_check_conditional_copy): Check for modw only if opnd is
27580         register.
27581         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
27582         to call the function in c.
27583         * config/picochip/picochip-protos.h
27584         (picochip_legitimize_reload_address): Define.
27585         * config/picochip/picochip.md (supported_compare1): Define.
27586
27587 2010-04-30  Jan Hubicka  <jh@suse.cz>
27588
27589         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
27590         (cgraph_global_info): Remove inlined.
27591         (LTO_cgraph_tag_names): Remove.
27592         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
27593         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
27594         simplify cgraph tags and document.
27595         (lto_output_node): Use only LTO_cgraph_unavail_node and
27596         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
27597         for_functions_valid, global info, process and output flags.
27598         (input_overwrite_node): Initialize estimated stack size and
27599         estimated growth.  Do not read flags we no longer store.
27600         (input_node): Likewise do not read info no longer stored.
27601         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
27602         flag.
27603
27604 2010-04-30  Richard Guenther  <rguenther@suse.de>
27605
27606         PR tree-optimization/43879
27607         * tree-ssa-structalias.c (get_constraint_for_1): Properly
27608         handle non-zero initializers.
27609
27610 2010-04-30  Richard Guenther  <rguenther@suse.de>
27611
27612         * builtins.c (fold_builtin_1): Delete free (0).
27613
27614 2010-04-29  Jan Hubicka  <jh@suse.cz>
27615
27616         * gengtype.c (open_base_files): Add lto-streamer.h
27617         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
27618         (pass_ipa_cp): GGC collect.
27619         * toplev. (compile_file): Do not output symbols.
27620         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
27621         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
27622         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
27623         * lto-section-in.c: Include ggc.h
27624         (lto_new_in_decl_state): Alloc in GGC.
27625         (lto_delete_in_decl_state): Likewise.
27626         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
27627         Collect.
27628
27629 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
27630
27631         PR target/42895
27632         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
27633         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
27634         (HONOR_REG_ALLOC_ORDER): Describe new macro.
27635         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
27636         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
27637         account only if HONOR_REG_ALLOC_ORDER is not defined.
27638         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
27639         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
27640
27641 2010-04-29  Jon Grant  <04@jguk.org>
27642
27643         * collect2.c (vflag): Change type from int to bool.
27644         (debug): Likewise.
27645         (helpflag): New global bool.
27646         (main): Set vflag and debug with boolean, not integer truth values.
27647         Accept new "--help" option and output usage text if found.
27648         * collect2.h (vflag): Update prototype.
27649         (debug): Likewise.
27650
27651 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
27652
27653         PR bootstrap/43936
27654         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
27655
27656 2010-04-29  Richard Guenther  <rguenther@suse.de>
27657
27658         PR bootstrap/43935
27659         * plugin.h (invoke_plugin_callbacks): Annotate arguments
27660         with ATTRIBUTE_UNUSED.
27661
27662 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
27663
27664         PR target/43921
27665         * config/i386/i386.c (get_some_local_dynamic_name): Replace
27666         INSN_P with NONDEBUG_INSN_P.
27667         (distance_non_agu_define): Likewise.
27668         (distance_agu_use): Likewise.
27669
27670 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
27671
27672         From Dominique d'Humieres  <dominiq@lps.ens.fr>
27673         PR bootstrap/43858
27674         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
27675         test_set.
27676
27677 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
27678
27679         * plugin.h (invoke_plugin_callbacks): New inline function.
27680         * plugin.c (flag_plugin_added): New global flag.
27681         (add_new_plugin): Initialize above flag.
27682         (invoke_plugin_callbacks): Rename to ...
27683         (invoke_plugin_callbacks_full): ... this.
27684
27685 2010-04-28  Jan Hubicka  <jh@suse.cz>
27686
27687         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
27688         (lto_varpool_replace_node): New.
27689         (lto_symtab_resolve_symbols): Resolve varpool nodes.
27690         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
27691         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
27692         * cgraph.h (varpool_node_ptr): New type.
27693         (varpool_node_ptr): New vector.
27694         (varpool_node_set_def): New structure.
27695         (varpool_node_set): New type.
27696         (varpool_node_set): New vector.
27697         (varpool_node_set_element_def): New structure.
27698         (varpool_node_set_element, const_varpool_node_set_element): New types.
27699         (varpool_node_set_iterator): New type.
27700         (varpool_node): Add prev pointers, add used_from_other_partition,
27701         in_other_partition.
27702         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
27703         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
27704         varpool_get_node, varpool_remove_node): Declare.
27705         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
27706         varpool_node_set_size): New inlines.
27707         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
27708         * tree-pass.h (varpool_node_set_def): Forward declare.
27709         (ipa_opt_pass_d): Summary writting takes vnode sets too.
27710         (ipa_write_optimization_summaries): Update prototype.
27711         * ipa-cp.c (ipcp_write_summary): Update.
27712         * ipa-reference.c (ipa_reference_write_summary): Update.
27713         * lto-cgraph.c (lto_output_varpool_node): New static function.
27714         (output_varpool): New function.
27715         (input_varpool_node): New static function.
27716         (input_varpool_1): New function.
27717         (input_cgraph): Input varpool.
27718         * ipa-pure-const.c (pure_const_write_summary): Update.
27719         * lto-streamer-out.c (lto_output): Update, output varpool too.
27720         (write_global_stream): Kill WPA hack.
27721         (produce_asm_for_decls): Update.
27722         (output_alias_pair_p): Handle variables.
27723         (output_unreferenced_globals): Output only needed partition of varpool.
27724         * ipa-inline.c (inline_write_summary): Update.
27725         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
27726         cgraph.
27727         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
27728         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
27729         varpool_node_set_new, varpool_node_set_add,
27730         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
27731         debug_varpool_node_set): New functions.
27732         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
27733         (execute_one_pass): Process new decls too.
27734         (ipa_write_summaries_2): Pass around vsets.
27735         (ipa_write_summaries_1): Likewise.
27736         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
27737         to add.
27738         (ipa_write_optimization_summaries_1): Pass around vsets.
27739         (ipa_write_optimization_summaries): Likewise.
27740         * varpool.c (varpool_get_node): New.
27741         (varpool_node): Update doubly linked lists.
27742         (varpool_remove_node): New.
27743         (dump_varpool_node): More dumping.
27744         (varpool_enqueue_needed_node): Update doubly linked lists.
27745         (decide_is_variable_needed): Kill ltrans hack.
27746         (varpool_finalize_decl): Kill lto hack.
27747         (varpool_assemble_decl): Skip decls in other partitions.
27748         (varpool_assemble_pending_decls): Update doubly linkes lists.
27749         (varpool_empty_needed_queue): Likewise.
27750         (varpool_extra_name_alias): Likewise.
27751         * lto-streamer.c (lto_get_section_name): Add vars section.
27752         * lto-streamer.h (lto_section_type): Update.
27753         (output_varpool, input_varpool): Declare.
27754
27755 2010-04-28  Mike Stump  <mikestump@comcast.net>
27756
27757         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
27758
27759 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27760
27761         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
27762         record or union type with RECORD_OR_UNION_TYPE_P predicate.
27763         (lto_input_ts_type_tree_pointers): Likewise.
27764         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
27765         (lto_output_ts_type_tree_pointers): Likewise.
27766
27767 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27768
27769         Uniquization of constants at the Tree level
27770         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
27771         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
27772         bit to the end.
27773         (tree_output_constant_def): Declare.
27774         * gimplify.c (gimplify_init_constructor): When using block copy, first
27775         uniquize the constant constructor on the RHS.
27776         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
27777         DECL_IN_CONSTANT_POOL flag.
27778         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
27779         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
27780         constant pool.
27781         (assemble_variable): Deal with symbols belonging to the tree constant
27782         pool.
27783         (get_constant_section): Add ALIGN parameter and simplify.
27784         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
27785         (assemble_constant_contents): Use the expression of the VAR_DECL.
27786         (output_constant_def_contents): Use the alignment of the VAR_DECL.
27787         (tree_output_constant_def): New global function.
27788         (mark_constant): Use the expression of the VAR_DECL.
27789         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
27790         its expression.
27791         (output_object_block): Likewise and assemble the expression.
27792
27793 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27794
27795         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
27796         hash_tree, eq_tree): New tree hash table.
27797         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
27798         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
27799         lto_orig_address_remove): Reimplement.
27800
27801 2010-04-28  Xinliang David Li  <davidxl@google.com>
27802
27803         PR c/42643
27804         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
27805         (compute_uninit_opnds_pos): New function.
27806         (is_non_loop_exit_postdominating): New function.
27807         (compute_control_dep_chain): New function.
27808         (find_pdom): New function.
27809         (convert_control_dep_chain_into_preds): New function.
27810         (find_predicates): New function.
27811         (find_control_equiv_block): New function.
27812         (collect_phi_def_edges): New function.
27813         (find_def_preds): New function.
27814         (find_dom): New function.
27815         (dump_predicates): New function.
27816         (get_cmp_code): New function.
27817         (is_value_included_in): New function.
27818         (find_matching_predicate_in_rest_chains): New function.
27819         (use_pred_not_overlap_with_undef_path_pred): New function.
27820         (is_use_properly_guarded): New function.
27821         (normalize_cond_1): New function.
27822         (is_and_or_or): New function.
27823         (normalize_cond): New function.
27824         (is_gcond_subset_of): New function.
27825         (is_subset_of_any): New function.
27826         (is_or_set_subset_of): New function.
27827         (is_and_set_subset_of): New function.
27828         (is_norm_cond_subset_of): New function.
27829         (is_pred_expr_subset_of): New function.
27830         (is_pred_chain_subset_of): New function.
27831         (is_included_in): New function.
27832         (is_superset_of): New function.
27833         (find_uninit_use): New function.
27834         (warn_uninitialized_phi): New function.
27835         (compute_possibly_undefined_names): New function.
27836         (ssa_undefined_value_p): New function.
27837         (execute_late_warn_uninitialized): New function.
27838         * tree-ssa.c (ssa_undefined_value_p): Removed.
27839         (warn_uninit): Changed to extern.
27840         (warn_uninitialized_phi): Removed.
27841         (warn_uninitialized_vars): Changed to extern.
27842         (execute_late_warn_uninitialized): Removed
27843         * tree-flow.h: Add new prototypes.
27844         * timevar.def: Add new time variable.
27845         * Makefile.in: Add new build file.
27846
27847 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
27848
27849         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
27850         type if available.
27851
27852 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27853
27854         PR target/22224
27855         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
27856
27857 2010-04-28  Martin Jambor  <mjambor@suse.cz>
27858
27859         * cgraph.h (struct cgraph_node): New field indirect_calls.
27860         (struct cgraph_indirect_call_info): New type.
27861         (struct cgraph_edge): Removed field indirect_call. New fields
27862         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
27863         (cgraph_create_indirect_edge): Declare.
27864         (cgraph_make_edge_direct): Likewise.
27865         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
27866         * ipa-prop.h (struct ipa_param_call_note): Removed.
27867         (struct ipa_node_params): Removed field param_calls.
27868         (ipa_create_all_structures_for_iinln): Declare.
27869         * cgraph.c: Described indirect edges and uids in initial comment.
27870         (cgraph_add_edge_to_call_site_hash): New function.
27871         (cgraph_edge): Search also among the indirect edges, use
27872         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
27873         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
27874         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
27875         site hash.
27876         (initialize_inline_failed): Assign a reason to indirect edges.
27877         (cgraph_create_edge_1): New function.
27878         (cgraph_create_edge): Moved some functionality to
27879         cgraph_create_edge_1.
27880         (cgraph_create_indirect_edge): New function.
27881         (cgraph_edge_remove_callee): Add an assert checking for
27882         non-indirectness.
27883         (cgraph_edge_remove_caller): Special-case indirect edges.
27884         (cgraph_remove_edge): Likewise.
27885         (cgraph_set_edge_callee): New function.
27886         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
27887         (cgraph_make_edge_direct): New function.
27888         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
27889         the declaration of the call statement matches.
27890         (cgraph_node_remove_callees): Special-case indirect edges.
27891         (cgraph_clone_edge): Likewise.
27892         (cgraph_clone_node): Clone also the indirect edges.
27893         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
27894         indirect_call, dump count of indirect_calls edges.
27895         * ipa-prop.c (iinlining_processed_edges): New variable.
27896         (ipa_note_param_call): Create indirect edges instead of
27897         creating notes.  New parameter node.
27898         (ipa_analyze_call_uses): New parameter node, pass it on to
27899         ipa_note_param_call.
27900         (ipa_analyze_stmt_uses): Likewise.
27901         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
27902         (print_edge_addition_message): Work on edges rather than on notes.
27903         (update_call_notes_after_inlining): Likewise, renamed to
27904         update_indirect_edges_after_inlining.
27905         (ipa_create_all_structures_for_iinln): New function.
27906         (ipa_free_node_params_substructures): Do not free notes.
27907         (ipa_edge_duplication_hook): Propagate bits within
27908         iinlining_processed_edges bitmap.
27909         (ipa_node_duplication_hook): Do not duplicate notes.
27910         (free_all_ipa_structures_after_ipa_cp): Renamed to
27911         ipa_free_all_structures_after_ipa_cp.
27912         (free_all_ipa_structures_after_iinln): Renamed to
27913         ipa_free_all_structures_after_iinln.
27914         (ipa_write_param_call_note): Removed.
27915         (ipa_read_param_call_note): Removed.
27916         (ipa_write_indirect_edge_info): New function.
27917         (ipa_read_indirect_edge_info): Likewise.
27918         (ipa_write_node_info): Do not stream notes, do stream information
27919         in indirect edges.
27920         (ipa_read_node_info): Likewise.
27921         (lto_ipa_fixup_call_notes): Removed.
27922         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
27923         * ipa-inline.c (pass_ipa_inline): Likewise.
27924         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
27925         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
27926         * tree-inline.c (copy_bb): Removed an unnecessary double check for
27927         is_gimple_call.
27928         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
27929         edges.
27930         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
27931         (output_cgraph): Stream also indirect edges.
27932         (lto_output_edge): Added capability to stream indirect edges.
27933         (input_edge): Likewise.
27934         (input_cgraph_1): Likewise.
27935         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
27936         of indirect edges.
27937
27938 2010-04-28  Richard Guenther  <rguenther@suse.de>
27939
27940         PR tree-optimization/43879
27941         PR tree-optimization/43909
27942         * tree-ssa-structalias.c (struct variable_info): Add
27943         only_restrict_pointers flag.
27944         (new_var_info): Initialize it.  Increment stats.total_vars here.
27945         (create_function_info_for): Do not increment stats.total_vars here.
27946         (get_function_part_constraint): Fix build with C++.
27947         (insert_into_field_list): Remove.
27948         (push_fields_onto_fieldstack): Properly merge fields.
27949         (create_variable_info_for): Split and simplify.
27950         (create_variable_info_for_1): New piece.
27951         (intra_create_variable_infos): Properly make restrict constraints
27952         from parameters.
27953
27954 2010-04-28  Richard Guenther  <rguenther@suse.de>
27955
27956         PR c++/43880
27957         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
27958
27959 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27960             Jan Hubicka  <hubicka@ucw.cz>
27961
27962         * doc/invoke.texi (-Wsuggest-attribute=const,
27963         -Wsuggest-attribute=pure): Document.
27964         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
27965         (function_always_visible_to_compiler_p,
27966         suggest_attribute, warn_function_pure, warn_function_const):
27967         New functions.
27968         (check_call): Improve debug info.
27969         (analyze_function): Do not check availability.
27970         (add_new_function): Check availability.
27971         (propagate): Output warnings.
27972         (skip_function_for_local_pure_const): New function.
27973         (local_pure_const): Use it; output warnings.
27974         * common.opt (Wsuggest-attribute=const,
27975         Wsuggest-attribute=pure): New.
27976
27977 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
27978
27979         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
27980         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
27981         or DW_CFA_def_cfa_offset{,_sf}.
27982
27983 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
27984
27985         * tree.h: Fix truncated long macros.
27986
27987 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
27988
27989         * collect2.c (TARGET_64BIT): Redefine to target's default.
27990         * tlink.c: Likewise.
27991         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
27992         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
27993         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
27994         for underscoring __USER_LABEL_PREFIX__.
27995         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
27996         (SUB_LINK_ENTRY32): New.
27997         (SUB_LINK_ENTRY64): New.
27998         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
27999         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
28000         (SUB_LINK_ENTRY64): New.
28001         (SUB_LINK_ENTRY): New.
28002         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
28003         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
28004         x64 target is choosen.
28005         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
28006         * configure: Regenerated.
28007         * configure.ac (leading-mingw64-underscores): Option added.
28008
28009 2010-04-27  Jan Hubicka  <jh@suse.cz>
28010
28011         * doc/invoke.texi (-fipa-profile): Document.
28012         * opts.c (decode_options): Enable ipa-profile at -O1.
28013         * timevar.def (TV_IPA_PROFILE): Define.
28014         * common.opt (fipa-profile): Add.
28015         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
28016         flag for clones.
28017         (cgraph_propagate_frequency): Handle only local ones.
28018         * tree-pass.h (pass_ipa_profile): Declare.
28019         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
28020         (pass_ipa_profile): Use TV_IPA_PROFILE.
28021         * ipa.c (ipa_profile): New function.
28022         (gate_ipa_profile): Likewise.
28023         (pass_ipa_profile): New global variable.
28024         * passes.c (pass_ipa_profile): New.
28025
28026 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
28027
28028         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
28029
28030 2010-04-27  Martin Jambor  <mjambor@suse.cz>
28031
28032         PR middle-end/43812
28033         * ipa.c (dissolve_same_comdat_group_list): New function.
28034         (function_and_variable_visibility): Call
28035         dissolve_same_comdat_group_list when comdat group contains external or
28036         newly local nodes.
28037         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
28038         lists are circular and that they contain only DECL_ONE_ONLY nodes.
28039
28040 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28041
28042         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
28043         (const_hash_1) <VECTOR_CST>: New case.
28044         (compare_constant) <VECTOR_CST>: Likewise.
28045         <ADDR_EXPR>: Deal with LABEL_REFs.
28046         (copy_constant) <VECTOR_CST>: New case.
28047
28048 2010-04-27  Jan Hubicka  <jh@suse.cz>
28049
28050         * cgraph.c (cgraph_propagate_frequency): New function.
28051         * cgraph.h (cgraph_propagate_frequency): Declare.
28052         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
28053         cgraph_propagate_frequency.
28054
28055 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28056
28057         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
28058
28059 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
28060
28061         PR target/40657
28062         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
28063         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
28064         here to determine which regs to push and how much stack to reserve.
28065
28066 2010-04-27  Jie Zhang  <jie@codesourcery.com>
28067
28068         * doc/gimple.texi (gimple_statement_with_ops): Remove
28069         addresses_taken field.
28070         (gimple_statement_with_memory_ops): Likewise.
28071
28072 2010-04-27  Jan Hubicka  <jh@suse.cz>
28073
28074         * tree-inline.c (eni_inlining_weights): Remove.
28075         (estimate_num_insns): Special case more builtins.
28076
28077 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
28078
28079         PR c/32207
28080         * c-typeck.c (build_binary_op): Move forward check for comparison
28081         pointer with null pointer constant and adjust the diagnostic message.
28082
28083 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
28084
28085         PR lto/42776
28086         * configure.ac (gcc_cv_as_section_has_align): Set if installed
28087         binutils supports extended .section directive needed by LTO, or
28088         warn if older binutils found.
28089         (LTO_BINARY_READER): New AC_SUBST'd variable.
28090         (LTO_USE_LIBELF): Likewise.
28091         * config.gcc (lto_binary_reader): New target-specific configure
28092         variable.
28093         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
28094         (LTO_USE_LIBELF): Likewise.
28095         * configure: Regenerate.
28096
28097         * collect2.c (is_elf): Rename from this ...
28098         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
28099          object files in addition to ELF-formatted ones.
28100         (scan_prog_file): Caller updated.  Also allow for LTO info marker
28101         symbol to be prefixed or not by an extra underscore.
28102
28103         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
28104         * config/i386/winnt.c: Also #include lto-streamer.h
28105         (i386_pe_asm_named_section): Specify 1-byte section alignment for
28106         LTO named sections.
28107         (i386_pe_asm_output_aligned_decl_common): Add comment.
28108         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
28109
28110 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
28111
28112         PR target/43889
28113         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
28114         Add missing earlyclobber for second alternative.
28115
28116 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
28117
28118         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
28119         bits for artificial defs at the top of the block.
28120         * fwprop.c (single_def_use_enter_block): Don't call it.
28121
28122 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
28123
28124         PR 43715
28125         * configure.ac: Use "$gcc_cv_nm -g" on darwin
28126         instead of "$gcc_cv_objdump -T".
28127         Use "-undefined dynamic_lookup" on darwin.
28128         * configure: Regenerate.
28129
28130 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
28131
28132         PR c/43893
28133         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
28134
28135 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28136
28137         * c-parser.c (struct c_token): Move location field up.
28138         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
28139         (struct c_declspecs): Convert typespec_word, storage_class, and
28140         default_int_p into bitfields.
28141         (struct c_declarator): Move loc field up.
28142
28143 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28144
28145         * cfgloop.h (struct loop): Move can_be_parallel field up.
28146         * ipa-prop.h (struct ip_node_params): Move bitfields up.
28147         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
28148         down.
28149         (struct iv_cand): Convert pos field into a bitfield.
28150         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
28151         field up.
28152         (struct _stmt_vec_info): Shuffle fields for better packing.
28153
28154 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28155
28156         * varasm.c (IN_NAMED_SECTION): Remove guard.
28157         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
28158         (IN_NAMED_SECTION_P): ...this.
28159         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
28160         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
28161
28162 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28163
28164         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
28165         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
28166         of shadowing it.  Fix comments.
28167
28168 2010-04-26  Jan Hubicka  <jh@suse.cz>
28169
28170         * cgraph.c (cgraph_create_node): Set node frequency to normal.
28171         (cgraph_clone_node): Copy function frequency.
28172         * cgraph.h (node_frequency): New enum
28173         (struct cgraph_node): Add.
28174         * final.c (rest_of_clean_state): Update.
28175         * lto-cgraph.c (lto_output_node): Output node frequency.
28176         (input_overwrite_node): Input node frequency.
28177         * tre-ssa-loop-ivopts (computation_cost): Update.
28178         * lto-streamer-out.c (output_function): Do not output function
28179         frequency.
28180         * predict.c (maybe_hot_frequency_p): Update and handle functions
28181         executed once.
28182         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
28183         attribute lookup.
28184         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
28185         (compute_function_frequency): Set noreturn functions to be executed
28186         once.
28187         (choose_function_section): Update.
28188         * lto-streamer-in.c (input_function): Do not input function frequency.
28189         * function.c (allocate_struct_function): Do not initialize function
28190         frequency.
28191         * function.h (function_frequency): Remove.
28192         (struct function): Remove function frequency.
28193         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
28194         (try_update): Update.
28195         * tree-inline.c (initialize_cfun): Do not update function frequency.
28196         * passes.c (pass_init_dump_file): Update.
28197         * i386.c (ix86_compute_frame_layout): Update.
28198         (ix86_pad_returns): Update.
28199
28200 2010-04-26  Jie Zhang  <jie@codesourcery.com>
28201
28202         PR tree-optimization/43833
28203         * tree-vrp.c (range_int_cst_p): New.
28204         (range_int_cst_singleton_p): New.
28205         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
28206         when both operands are constants.  Use range_int_cst_p in
28207         BIT_IOR_EXPR case.
28208
28209 2010-04-26  Jan Hubicka  <jh@suse.cz>
28210
28211         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
28212
28213 2010-04-26  Richard Guenther  <rguenther@suse.de>
28214
28215         PR lto/43080
28216         * gimple.c (gimple_decl_printable_name): Deal gracefully
28217         with a NULL DECL_NAME.
28218
28219 2010-04-26  Richard Guenther  <rguenther@suse.de>
28220
28221         PR lto/42425
28222         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
28223         if emitting debug information and it is either a function
28224         or a namespace decl.
28225
28226 2010-04-26  Ira Rosen  <irar@il.ibm.com>
28227
28228         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
28229         determine if the statement is vectorizable, and a macro to access it.
28230         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
28231         Skip statements that can't be vectorized. If the analysis fails,
28232         mark the statement as unvectorizable if vectorizing basic block.
28233         (vect_compute_data_refs_alignment): Likewise.
28234         (vect_verify_datarefs_alignment): Skip statements marked as
28235         unvectorizable. Add print.
28236         (vect_analyze_group_access): Skip statements that can't be
28237         vectorized. If the analysis fails, mark the statement as
28238         unvectorizable if vectorizing basic block.
28239         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
28240         * tree-vect-stmts.c (vectorizable_store): Fix the number of
28241         generated stmts for SLP.
28242         (new_stmt_vec_info): Initialize the new field.
28243         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
28244         statements marked as unvectorizable.
28245
28246 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
28247
28248         * c-common.c (flag_isoc1x): New.
28249         (flag_isoc99): Update comment.
28250         * c-common.h (flag_isoc1x): New.
28251         (flag_isoc99): Update comment.
28252         * c-cppbuiltin.c (builtin_define_float_constants): Also define
28253         __<type>_DECIMAL_DIG__.
28254         * c-opts.c (set_std_c1x): New.
28255         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
28256         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
28257         * c.opt (-std=c1x, -std=gnu1x): New options.
28258         * doc/cpp.texi: Mention -std=c1x.
28259         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
28260         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
28261         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
28262         * doc/standards.texi: Mention C1X.
28263         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
28264         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
28265         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
28266         Define for C1X.
28267
28268 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
28269
28270         * config/i386/gmon-sol2.c (_mcleanup): Change format string
28271         placeholder from 0x%x to %#x.
28272         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
28273         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
28274         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
28275         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
28276         * config/i386/i386.c (ix86_target_string): Ditto.
28277         (output_pic_addr_const): Ditto.
28278         (print_operand): Ditto.
28279
28280 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
28281
28282         * combine.c (find_split_point): Add third argument.  Use it
28283         to find nested multiply-accumulate instructions.  Adjust calls.
28284         (try_combine): Adjust call to find_split_point.
28285
28286 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
28287
28288         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
28289
28290 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
28291
28292         PR tree-optimization/41442
28293         * fold-const.c (merge_truthop_with_opposite_arm): New function.
28294         (fold_binary_loc): Call it.
28295
28296 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28297
28298         * toplev.c (general_init): Set default for fdiagnostics-show-option.
28299         * opts.c (common_handle_option): Allow disabling it.
28300         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
28301
28302 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
28303
28304         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
28305         between modes if both types are integral.
28306
28307 2010-04-23  Richard Guenther  <rguenther@suse.de>
28308
28309         PR tree-optimization/43572
28310         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
28311
28312 2010-04-23  Richard Guenther  <rguenther@suse.de>
28313
28314         PR lto/43455
28315         * tree-inline.c (tree_can_inline_p): Also check compatibility
28316         of return types.
28317
28318 2010-04-23  Martin Jambor  <mjambor@suse.cz>
28319
28320         PR tree-optimization/43846
28321         * tree-sra.c (struct access): New flag grp_assignment_read.
28322         (build_accesses_from_assign): Set grp_assignment_read.
28323         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
28324         (enum mark_read_status): New type.
28325         (analyze_access_subtree): Propagate grp_assignment_read, create
28326         accesses also if both direct_read and root->grp_assignment_read.
28327
28328 2010-04-23  Martin Jambor  <mjambor@suse.cz>
28329
28330         PR middle-end/43835
28331         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
28332         function does not have type attributes.
28333
28334 2010-04-23  Richard Guenther  <rguenther@suse.de>
28335
28336         PR lto/42653
28337         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
28338         of FUNCTION_DECLs.
28339
28340 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28341
28342         * sese.h (create_if_region_on_edge): Remove.
28343
28344         * sese.c (create_if_region_on_edge): Make static.
28345
28346         * tree-inline.c: Do not include ggc.h.
28347
28348         * expr.c: Do not include ggc.h.
28349
28350         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
28351         dependencies.
28352
28353 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
28354
28355         PR target/43744
28356         * config/sh/sh.c (find_barrier): Don't emit a constant pool
28357         in the middle of insns for casesi_worker_2.
28358
28359 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
28360
28361         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
28362
28363 2010-04-22  Ira Rosen  <irar@il.ibm.com>
28364
28365         PR tree-optimization/43842
28366         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
28367         loop unrolling in update of exit phis. Fix comment.
28368         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
28369         least two reduction statements in the loop before starting SLP
28370         analysis.
28371
28372 2010-04-22  Nick Clifton  <nickc@redhat.com>
28373
28374         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
28375
28376 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
28377
28378         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
28379         to simplify a + ~a.
28380
28381 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28382
28383         * tree-parloops.c (loop_parallel_p): New argument
28384         parloop_obstack.  Pass it down.
28385         (parallelize_loops): New variable parloop_obstack.  Initialize it,
28386         pass it down, free it.
28387
28388         * tree-loop-linear.c (linear_transform_loops): Pass down
28389         lambda_obstack.
28390
28391         * tree-data-ref.h (lambda_compute_access_matrices): New argument
28392         of type struct obstack *.
28393
28394         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
28395         scratch_obstack.  Initialize it, pass down, free it.
28396
28397         * lambda.h (lambda_loop_new): Remove.
28398         (lambda_matrix_new, lambda_matrix_inverse)
28399         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
28400         argument of type struct obstack *.
28401
28402         * lambda-trans.c (lambda_trans_matrix_new): New argument
28403         lambda_obstack.  Pass it down, use obstack allocation for ret.
28404         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
28405         it down.
28406
28407         * lambda-mat.c (lambda_matrix_get_column)
28408         (lambda_matrix_project_to_null): Remove.
28409         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
28410         allocation for mat.
28411         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
28412         lambda_obstack.
28413
28414         * lambda-code.c (lambda_loop_new): New function.
28415         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
28416         (lambda_compute_auxillary_space, lambda_compute_target_space)
28417         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
28418         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
28419         (build_access_matrix): New argument lambda_obstack.  Use obstack
28420         allocation for am.
28421         (lambda_compute_step_signs, lambda_compute_access_matrices): New
28422         argument lambda_obstack.  Pass it down.
28423
28424 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28425
28426         * optabs.h (expand_widening_mult): Declare.
28427
28428 2010-04-22  Richard Guenther  <rguenther@suse.de>
28429
28430         PR tree-optimization/43845
28431         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
28432         lookup the CALL_EXPR function and arguments.
28433
28434 2010-04-22  Nick Clifton  <nickc@redhat.com>
28435
28436         * config/stormy16/stormy16.c
28437         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
28438         * config/stormy16/stormy16.h: Tidy up formatting.
28439         (DONT_USE_BUILTIN_SETJMP): Remove definition.
28440         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
28441         (ineqbranchsi): Delete pattern.
28442         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
28443         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
28444         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
28445         stormy16-lib2-ucmpsi2.c.
28446
28447 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28448
28449         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
28450         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
28451         extra set merge_set_noclobber, and use it to relax the final test
28452         slightly.
28453         * df.h (df_simulate_find_noclobber_defs): Declare.
28454         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
28455         conditional defs.
28456         (df_simulate_find_noclobber_defs): New function.
28457
28458 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
28459
28460         * config/i386/i386.md: Use {} around multi-line preparation statements.
28461
28462 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28463
28464         * c-tree.h (push_init_level, pop_init_level, set_init_index)
28465         (process_init_element): New argument of type struct obstack *.
28466
28467         * c-typeck.c (push_init_level, pop_init_level, set_designator)
28468         (set_init_index, set_init_label, set_nonincremental_init)
28469         (set_nonincremental_init_from_string, find_init_member)
28470         (output_init_element, output_pending_init_elements)
28471         (process_init_element): New argument braced_init_obstack.  Pass it
28472         down.
28473         (push_range_stack, add_pending_init): New argument
28474         braced_init_obstack.  Use obstack allocation.
28475
28476         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
28477         braced_init_obstack.  Pass it down.
28478         (c_parser_braced_init): New variables ret, braced_init_obstack.
28479         Initialize obstack, pass it down and finally free it.
28480
28481 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28482
28483         PR middle-end/29274
28484         * tree-pass.h (pass_optimize_widening_mul): Declare.
28485         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
28486         gate_optimize_widening_mul): New static functions.
28487         (pass_optimize_widening_mul): New.
28488         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
28489         <case MULT_EXPR>: Remove support for widening multiplies.
28490         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
28491         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
28492         simplify_gen_unary rather than directly building extensions.
28493         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
28494         WIDEN_MULT_EXPR.
28495         * expmed.c (expand_widening_mult): New function.
28496         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
28497
28498 2010-04-21  Jan Hubicka  <jh@suse.cz>
28499
28500         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
28501         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
28502         * lto-wpa-fixup.c: Remove.
28503         * Makefile.in (lto-wpa-fixup.o): Remove.
28504         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
28505         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
28506         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
28507
28508 2010-04-21  Jan Hubicka  <jh@suse.cz>
28509
28510         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
28511         add write_optimization_summary, read_optimization_summary.
28512         (ipa_write_summaries_of_cgraph_node_set): Remove.
28513         (ipa_write_optimization_summaries): Declare.
28514         (ipa_read_optimization_summaries): Declare.
28515         * ipa-cp.c (pass_ipa_cp): Update.
28516         * ipa-reference.c (pass_ipa_reference): Update.
28517         * ipa-pure-const.c (pass_ipa_pure_const): Update.
28518         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
28519         Update.
28520         * ipa-inline.c (pass_ipa_inline): Update.
28521         * ipa.c (pass_ipa_whole_program): Update.
28522         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
28523         * passes.c (ipa_write_summaries_1): Do not test wpa.
28524         (ipa_write_optimization_summaries_1): New.
28525         (ipa_write_optimization_summaries): New.
28526         (ipa_read_summaries): Do not test ltrans.
28527         (ipa_read_optimization_summaries_1): New.
28528         (ipa_read_optimization_summaries): New.
28529
28530 2010-04-21  Jan Hubicka  <jh@suse.cz>
28531
28532         * lto-cgraph.c (lto_output_node): Do not output comdat groups
28533         for boundary nodes.
28534         (output_cgraph): Do not arrange comdat groups for boundary nodes.
28535
28536 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
28537
28538         PR debug/40040
28539         * dwarf2out.c (add_name_and_src_coords_attributes): Add
28540         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
28541
28542 2010-04-21  Jan Hubicka  <jh@suse.cz>
28543
28544         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
28545
28546 2010-04-21  Jan Hubicka  <jh@suse.cz>
28547
28548         * varpool.c (decide_is_variable_needed): Variable is always needed
28549         during ltrans.
28550
28551 2010-04-21  Jan Hubicka  <jh@suse.cz>
28552
28553         * opts.c (decode_options): Enable pure-const pass for whopr.
28554
28555 2010-04-21  Jan Hubicka  <jh@suse.cz>
28556
28557         * cgraph.c (dump_cgraph_node): Dump also assembler name.
28558         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
28559         at WPA dumping.
28560         (cgraph_decide_inlining): Do not expect callee to be removed in all
28561         cases.
28562
28563 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
28564
28565         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
28566
28567 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
28568
28569         * config/i386/i386.md (x86_shrd): Add athlon_decode and
28570         amdfam10_decode attributes.
28571
28572 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
28573
28574         PR middle-end/43570
28575         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
28576         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
28577         (lower_copyprivate_clauses): Use private var in outer
28578         context instead of original var.  Make sure the types
28579         are correct for VLAs.
28580
28581 2010-04-21  Richard Guenther  <rguenther@suse.de>
28582
28583         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
28584         to non-pointer objects.
28585
28586 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
28587
28588         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
28589         last chain entry if it starts with the still current label.
28590         (add_location_or_const_value_attribute): Check that
28591         loc_list->first->next is NULL instead of comparing ->first with ->last.
28592         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
28593         to add_var_loc_to_decl.
28594
28595         * dwarf2out.c (output_call_frame_info): For dw_cie_version
28596         >= 4 add also address size and segment size fields into CIE header.
28597
28598         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
28599         long as address size is the same as sizeof (void *) and
28600         segment size is 0.
28601         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
28602         address size or segment size is unexpected, return DW_EH_PE_omit.
28603         (classify_object_over_fdes): If get_cie_encoding returned
28604         DW_EH_PE_omit, return -1.
28605         (init_object): If classify_object_over_fdes returned -1,
28606         pretend there were no FDEs at all.
28607
28608 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
28609
28610         * config/i386/i386.md (bswap<mode>2): Macroize expander from
28611         bswap{si,di}2 using SWI48 mode iterator.
28612         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
28613         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
28614         set modrm attribute of bswap insn to 0 and remove length attribute.
28615         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
28616         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
28617         set mode attribute to <MODE> and remove length attribute.
28618
28619 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
28620
28621         PR rtl-optimization/43520
28622         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
28623         zero available registers.
28624
28625 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28626
28627         * builtins.c (fold_builtin_cproj): Fold more cases.
28628
28629 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28630
28631         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
28632         (fold_builtin_1): Fold builtin cproj.
28633         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
28634         Use ATTR_CONST_NOTHROW_LIST.
28635
28636 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
28637
28638         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
28639         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
28640         ffsi2_no_cmove for !TARGET_CMOVE.
28641         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
28642         (ffssi2): Remove expander.
28643         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
28644         mode iterator.
28645         (ctz<mode>2): Ditto from ctz{si,di}2.
28646         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
28647         mode iterator.
28648         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
28649         mode iterator.
28650
28651 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
28652
28653         * dwarf2out.c (AT_linkage_name): Define.
28654         (clone_as_declaration): Handle DW_AT_linkage_name.
28655         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
28656         of DW_AT_MIPS_linkage_name.
28657         (move_linkage_attr): Likewise.
28658         (dwarf2out_finish): Likewise.
28659
28660 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
28661
28662         PR middle-end/41952
28663         * fold-const.c (fold_comparison): New folding rule.
28664
28665 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
28666
28667         * double-int.h (double_int_setbit): Declare.
28668         * double-int.c (double_int_setbit): New function.
28669         * rtl.h (immed_double_int_const): Declare.
28670         * emit-rtl.c (immed_double_int_const): New function.
28671         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
28672         and immed_double_int_const functions.
28673         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
28674         expand_copysign_bit): (Ditto.).
28675         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
28676         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
28677         * dojump.c (prefer_and_bit_test): (Ditto.).
28678         * expr.c (convert_modes, reduce_to_bit_field_precision,
28679         const_vector_from_tree): (Ditto.).
28680         * expmed.c (mask_rtx, lshift_value): (Ditto.).
28681
28682 2010-04-20  Jan Hubicka  <jh@suse.cz>
28683
28684         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
28685         (dump_cgraph_node): Dump new flags.
28686         * cgraph.h (struct cgraph_node): Add flags
28687         reachable_from_other_partition and in_other_partition.
28688         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
28689         other partition can not be removed.
28690         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
28691         the other partition must be output; silence sanity checking on
28692         leaking functions bodies from other paritition.
28693         * lto-cgraph.c (reachable_from_other_partition_p): New function.
28694         (lto_output_node): Output new flags; do not sanity check that inline
28695         clones are output; drop lto_forced_extern_inline_p code; do not mock
28696         visibility flags at partition boundaries.
28697         (add_node_to): New function.
28698         (output_cgraph): Use it to sort functions so masters appear before
28699         clones.
28700         (input_overwrite_node): Input new flags.
28701         * passes.c (ipa_write_summaries): Do not call
28702         lto_new_extern_inline_states.
28703         * lto-section-out.c (forced_extern_inline,
28704         lto_new_extern_inline_states lto_delete_extern_inline_states,
28705         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
28706         * lto-streamer.h (lto_new_extern_inline_states,
28707         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
28708         lto_forced_extern_inline_p): Kill.
28709
28710 2010-04-20  Richard Guenther  <rguenther@suse.de>
28711
28712         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
28713         from vars that can have pointers.
28714         (process_constraint): Dump useless constraints.
28715
28716 2010-04-20  Richard Guenther  <rguenther@suse.de>
28717
28718         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
28719         (dump_sa_points_to_info): Remove asserts.
28720         (init_base_vars): nothing_id isn't an escape point nor does it
28721         have pointers.
28722
28723 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
28724
28725         * tree.h (TYPE_REF_IS_RVALUE): Define.
28726         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
28727         should_move_die_to_comdat, prune_unused_types_walk): Handle
28728         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
28729         (modified_type_die, gen_reference_type_die): Emit
28730         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
28731         if TYPE_REF_IS_RVALUE and -gdwarf-4.
28732
28733 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28734
28735         PR target/43635
28736         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
28737         calls for -fpic -m31 if they have been sibcall optimized.
28738
28739 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
28740
28741         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
28742         ar.lc fixed and call-used.
28743
28744         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
28745
28746 2010-04-19  Jan Hubicka  <jh@suse.cz>
28747
28748         * opts.c (decode_options): Disable whpr incompatible passes.
28749         * lto/lto.c (lto_1_to_1_map): Skip clones.
28750         (read_cgraph_and_symbols): Do not mark everything as needed.
28751         (do_whole_program_analysis): Do map only after optimizing;
28752         set proper cgraph_state; use passmanager.
28753
28754 2010-04-19  DJ Delorie  <dj@redhat.com>
28755
28756         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
28757         POINTER_PLUS_EXPR and fix them.
28758
28759 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
28760
28761         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
28762         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
28763         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
28764         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
28765         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
28766         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
28767         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
28768         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
28769         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
28770         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
28771         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
28772
28773 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
28774
28775         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
28776         (check_cond_move_block): Likewise.
28777         (cond_move_process_if_block): Likewise.
28778         (noce_find_if_block): Improve formatting.
28779         (find_if_header): Pass 0 to memset and tweak conditions.
28780         (cond_exec_find_if_block): Fix long lines and tweak conditions.
28781
28782 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
28783
28784         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
28785         for -gdwarf-4.
28786
28787         PR middle-end/43337
28788         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
28789         with non-local decl doesn't need chain.
28790
28791 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
28792
28793         * ira-color.c (allocno_reload_assign): Avoid accumulating
28794         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
28795
28796 2010-04-19  Martin Jambor  <mjambor@suse.cz>
28797
28798         * gimple.h (create_tmp_reg): Declare.
28799         * gimplify.c (create_tmp_reg): New function.
28800         (gimplify_return_expr): Use create_tmp_reg.
28801         (gimplify_omp_atomic): Likewise.
28802         (gimple_regimplify_operands): Likewise.
28803         * tree-dfa.c (make_rename_temp): Likewise.
28804         * tree-predcom.c (predcom_tmp_var): Likewise.
28805         (reassociate_to_the_same_stmt): Likewise.
28806         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
28807         (get_replaced_param_substitute): Likewise.
28808         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
28809         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
28810         * tree-ssa-pre.c (get_representative_for): Likewise.
28811         (create_expression_by_pieces): Likewise.
28812         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
28813         (create_tailcall_accumulator): Likewise.
28814
28815 2010-04-19  Martin Jambor  <mjambor@suse.cz>
28816
28817         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
28818         new_stmt.
28819         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
28820
28821 2010-04-19  Richard Guenther  <rguenther@suse.de>
28822
28823         PR tree-optimization/43796
28824         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
28825         from SCEV in the lattice.
28826         (vrp_visit_phi_node): Dump change.
28827
28828 2010-04-19  Richard Guenther  <rguenther@suse.de>
28829
28830         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
28831         * configure: Re-generated.
28832
28833 2010-04-19  Richard Guenther  <rguenther@suse.de>
28834
28835         PR tree-optimization/43783
28836         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
28837         constant ARRAY_REF operands two and three if possible.
28838
28839 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
28840
28841         PR target/43766
28842         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
28843
28844 2010-04-19  Jie Zhang  <jie@codesourcery.com>
28845
28846         PR target/43662
28847         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
28848
28849 2010-04-19  Ira Rosen  <irar@il.ibm.com>
28850
28851         PR tree-optimization/37027
28852         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
28853         and macro to access it.
28854         (vectorizable_reduction): Add argument.
28855         (vect_get_slp_defs): Likewise.
28856         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
28857         statements for possible use in SLP.
28858         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
28859         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
28860         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
28861         add new argument.
28862         (vectorizable_reduction): Likewise.
28863         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
28864         vect_get_slp_defs.
28865         (vectorizable_type_demotion, vectorizable_type_promotion,
28866         vectorizable_store): Likewise.
28867         (vect_analyze_stmt): Update call to vectorizable_reduction.
28868         (vect_transform_stmt): Likewise.
28869         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
28870         (vect_build_slp_tree): Fix indentation. Check that there are no loads
28871         from different interleaving chains in same node.
28872         (vect_slp_rearrange_stmts): New function.
28873         (vect_supported_load_permutation_p): Allow load permutations for
28874         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
28875         inside SLP nodes if necessary.
28876         (vect_analyze_slp_instance): Handle reductions.
28877         (vect_analyze_slp): Try to build SLP instances originating from groups
28878         of reductions.
28879         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
28880         (vect_get_constant_vectors): Create initial vectors for reductions
28881         according to reduction code. Add new argument.
28882         (vect_get_slp_defs): Add new argument, pass it to
28883         vect_get_constant_vectors.
28884         (vect_schedule_slp_instance): Remove SLP tree root statements.
28885
28886 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
28887
28888         * tree.h (ENUM_IS_SCOPED): Define.
28889         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
28890         for ENUM_IS_SCOPED enums.
28891
28892 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
28893
28894         * fold-const.c (fold_comparison): Use ssizetype.
28895         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
28896         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
28897         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
28898         * tree-object-size.c (compute_object_sizes): Use size_type_node.
28899
28900         * tree.h (initialize_sizetypes): Remove parameter.
28901         (build_common_tree_nodes): Remove second parameter.
28902         * stor-layout.c (initialize_sizetypes): Remove parameter.
28903         Always create an unsigned type.
28904         (set_sizetype): Assert that the passed type is unsigned and simplify.
28905         * tree.c (build_common_tree_nodes): Remove second parameter.
28906         Adjust call to initialize_sizetypes.
28907         * c-decl.c (c_init_decl_processing): Remove second argument in call to
28908         build_common_tree_nodes.
28909
28910 2010-04-18  Matthias Klose  <doko@ubuntu.com>
28911
28912         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
28913
28914 2010-04-18  Ira Rosen  <irar@il.ibm.com>
28915
28916         PR tree-optimization/43771
28917         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
28918         load permutation doesn't have gaps.
28919
28920 2010-04-18  Jan Hubicka  <jh@suse.cz>
28921
28922         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
28923         (sse_prologue_save_insn expander): Use new pattern.
28924         (sse_prologue_save_insn1): New pattern and splitter.
28925         (sse_prologue_save_insn): Update to deal also with 64bit aligned
28926         blocks.
28927         * i386.c (setup_incoming_varargs_64): Do not compute jump
28928         destination here.
28929         (ix86_gimplify_va_arg): Update alignment needed.
28930         (ix86_local_alignment): Do not align all local arrays to 128bit.
28931
28932 2010-04-17  Jan Hubicka  <jh@suse.cz>
28933
28934         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
28935
28936 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
28937
28938         * arm.md (negdi2): Remove redundant code to force values into a
28939         register.
28940
28941 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
28942
28943         * arm/bpabi.S: Add EABI alignment attributes to objects.
28944         * arm/bpabi-v6m.S: Likewise.
28945         * arm/crti.asm: Likewise.
28946         * arm/crtn.asm: Likewise.
28947         * arm/lib1funcs.asm: Likewise.
28948         * arm/libunwind.S: Likewise.
28949
28950 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
28951
28952         * arm-protos.h (tune_params): New structure.
28953         * arm.c (current_tune): New variable.
28954         (arm_constant_limit): Delete.
28955         (struct processors): Add pointer to the tune parameters.
28956         (arm_slowmul_tune): New tuning option.
28957         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
28958         (all_cores): Adjust to pick up the tuning model.
28959         (arm_constant_limit): New function.
28960         (arm_override_options): Select the appropriate tuning model.  Delete
28961         initialization of arm_const_limit.
28962         (arm_split_constant): Use the new constant-limit model.
28963         (arm_rtx_costs): Pick up the current tuning model.
28964         * arm.md (is_strongarm, is_xscale): Delete.
28965         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
28966         for Xscale variant architectures.
28967         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
28968
28969 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28970
28971         * config/arm/arm.c (arm_gen_constant): Remove unused variable
28972         can_shift.
28973         (arm_rtx_costs_1): Remove unused variable extra_cost.
28974         (arm_unwind_emit_set): Use variable offset.
28975         (thumb1_output_casesi): Remove unused variable flags.
28976
28977 2010-04-16  Jeff Law  <law@redhat.com>
28978
28979         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
28980         needing assignment rather than doing a two-phase assignment.  Remove
28981         unused variable 'm'.
28982
28983 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
28984
28985         PR bootstrap/43767
28986         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
28987
28988 2010-04-16  Doug Kwan  <dougkwan@google.com>
28989
28990         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
28991         (next_operand_entry_id): New static variable.
28992         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
28993         (add_to_ops_vec): Assigned unique ID to operand entry.
28994         (struct oecount_s): New field ID.
28995         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
28996         (undistribute_ops_list): Assign unique IDs to oecounts.
28997         (init_reassoc): reset next_operand_entry_id.
28998
28999 2010-04-16  Doug Kwan  <dougkwan@google.com>
29000
29001         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
29002         missing left parenthesis.
29003
29004 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
29005
29006         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
29007         *btdi_rex64 using SWI48 mode iterator.
29008         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
29009         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
29010         *jcc_btdi_mask_rex64.
29011
29012 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
29013
29014         * double-int.h (tree_to_double_int): Convert to macro.
29015         * double-int.c (tree_to_double_int): Remove.
29016
29017 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29018
29019         PR debug/43762
29020         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
29021         with want_address 2 and in case a single element list might be
29022         possible, call it again with want_address 0.
29023
29024 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
29025
29026         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
29027         case 'W' print operands for HI mode.
29028         * config/h8300/h8300.h (Y0, Y2) : New constraints.
29029         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
29030         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
29031         * config/h8300/predicate.md (bit_register_indirect_operand): New.
29032
29033         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
29034
29035         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
29036         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
29037         #xx:3 and #xx:4 mode.
29038
29039         * config/h8300/h8300.md (inverted load with HImode dest): Add
29040         support for H8300SX.
29041
29042         * config/h8300/predicate.md (bit_operand): Allow immediate values that
29043         satisfy 'U' constraint.
29044
29045 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29046
29047         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
29048         * configure: Regenerate.
29049         * config.in: Regenerate.
29050         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
29051         works.
29052
29053 2010-04-16  Richard Guenther  <rguenther@suse.de>
29054
29055         * tree.h (struct tree_decl_minimal): Move pt_uid ...
29056         (struct tree_decl_common): ... here.
29057         (DECL_PT_UID): Adjust.
29058         (SET_DECL_PT_UID): Likewise.
29059         (DECL_PT_UID_SET_P): Likewise.
29060
29061 2010-04-16  Richard Guenther  <rguenther@suse.de>
29062
29063         PR tree-optimization/43572
29064         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
29065         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
29066         * tree-flow.h (is_call_clobbered): Remove.
29067         * tree-flow-inline.h (is_call_clobbered): Likewise.
29068         * tree-dfa.c (dump_variable): Do not dump call clobber state.
29069         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
29070         (execute_return_slot_opt): Adjust.
29071         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
29072         check for call clobbered vars here.
29073         (find_tail_calls): Move tailcall verification to the
29074         proper place.
29075
29076 2010-04-16  Diego Novillo  <dnovillo@google.com>
29077
29078         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
29079
29080 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29081
29082         PR target/40603
29083         * config/arm/arm.md (cbranchqi4): New pattern.
29084         * config/arm/predicates.md (const0_operand,
29085         cbranchqi4_comparison_operator): New predicates.
29086
29087 2010-04-16  Richard Guenther  <rguenther@suse.de>
29088
29089         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
29090         (dump_gimple_stmt): Likewise.
29091
29092 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29093
29094         * recog.h (struct recog_data): New field is_operator.
29095         (struct insn_operand_data): New field is_operator.
29096         * recog.c (extract_insn): Set recog_data.is_operator.
29097         * genoutput.c (output_operand_data): Emit code to set the
29098         is_operator field.
29099         * reload.c (find_reloads): Use it rather than testing for an
29100         empty constraint string.
29101
29102         PR target/41514
29103         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
29104         If the previous insn is a cbranchsi4_insn with the same arguments,
29105         omit the compare instruction.
29106
29107         * config/arm/arm.md (addsi3_cbranch): If destination is a high
29108         register, inputs must be low registers and we need a low register
29109         scratch.  Handle alternative 2 like alternative 3.
29110
29111 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29112
29113         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
29114         don't call get_addr on both.  If one expression is a VALUE and
29115         the other a REG, check VALUE's locs if the REG isn't among them.
29116
29117 2010-04-16  Christian Bruel  <christian.bruel@st.com>
29118
29119         * config/sh/sh.h (sh_frame_pointer_required): New function.
29120         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
29121         (flag_omit_frame_pointer) Set.
29122         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
29123         (rounded_frame_size): Adjust size with outgoing_args_size.
29124         (sh_set_return_address): Must return from stack pointer.
29125         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
29126         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
29127         (ACCUMULATE_OUTGOING_ARGS): Define.
29128         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
29129         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
29130
29131 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
29132
29133         PR target/43471
29134         * config/sh/sh.c (sh_legitimize_reload_address): Use
29135         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
29136         Remove a unneeded check for offset_base.
29137
29138 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
29139
29140         * configure: Regenerated.
29141
29142 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29143
29144         * config/s390/s390.c (s390_call_save_register_used): Switch back
29145         to HARD_REGNO_NREGS.
29146
29147 2010-04-15  Richard Guenther  <rguenther@suse.de>
29148
29149         * alias.c (alias_set_subset_of): Handle alias-set zero
29150         child properly.
29151
29152 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
29153             Julian Brown  <julian@codesourcery.com>
29154
29155         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
29156         alternatives according to use of high and low regs.
29157         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
29158         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
29159         optimizing for size on Thumb-2.
29160
29161 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
29162
29163         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
29164
29165 2010-04-15  Richard Guenther  <rguenther@suse.de>
29166
29167         * tree-ssa-structalias.c (struct variable_info): Add
29168         is_fn_info flag.
29169         (new_var_info): Initialize it.
29170         (dump_constraints): Support printing last added constraints.
29171         (debug_constraints): Adjust.
29172         (dump_constraint_graph): Likewise.
29173         (make_heapvar_for): Check for NULL cfun.
29174         (get_function_part_constraint): New function.
29175         (get_fi_for_callee): Likewise.
29176         (find_func_aliases): Properly implement IPA PTA constraints.
29177         (process_ipa_clobber): New function.
29178         (find_func_clobbers): Likewise.
29179         (insert_into_field_list_sorted): Remove.
29180         (create_function_info_for): Properly allocate vars for IPA mode.
29181         Do not use insert_into_field_list_sorted.
29182         (create_variable_info_for): Properly generate constraints for
29183         global vars in IPA mode.
29184         (dump_solution_for_var): Always dump the solution.
29185         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
29186         (find_what_var_points_to): Adjust.
29187         (pt_solution_set): Change.
29188         (pt_solution_ior_into): New function.
29189         (pt_solution_empty_p): Export.
29190         (pt_solution_includes_global): Adjust.
29191         (pt_solution_includes_1): Likewise.
29192         (pt_solutions_intersect_1): Likewise.
29193         (dump_sa_points_to_info): Check some invariants.
29194         (solve_constraints): Move constraint dumping ...
29195         (compute_points_to_sets): ... here.
29196         (ipa_pta_execute): ... and here.
29197         (compute_may_aliases): Do not re-compute points-to info
29198         locally if IPA info is available.
29199         (ipa_escaped_pt): New global var.
29200         (ipa_pta_execute): Properly implement IPA PTA.
29201         * tree-into-ssa.c (dump_decl_set): Support dumping
29202         decls not in referenced-vars.
29203         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
29204         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
29205         (dump_points_to_solution): Likewise.
29206         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
29207         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
29208         (remap_gimple_stmt): Reset call clobber/use information if necessary.
29209         (copy_decl_to_var): Copy DECL_PT_UID.
29210         (copy_result_decl_to_var): Likewise.
29211         * tree.c (make_node_stat): Initialize DECL_PT_UID.
29212         (copy_node_stat): Copy it.
29213         * tree.h (DECL_PT_UID): New macro.
29214         (SET_DECL_PT_UID): Likewise.
29215         (DECL_PT_UID_SET_P): Likewise.
29216         (struct tree_decl_minimal): Add pt_uid member.
29217         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
29218         (pt_solution_empty_p): Declare.
29219         (pt_solution_set): Adjust.
29220         (ipa_escaped_pt): Declare.
29221         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
29222         * gimple-pretty-print.c (pp_points_to_solution): New function.
29223         (dump_gimple_call): Dump call clobber/use information.
29224         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
29225         * tree-pass.h (TDF_ALIAS): New dump option.
29226         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
29227         * doc/invoke.texi (-fipa-pta): Update documentation.
29228
29229 2010-04-15  Richard Guenther  <rguenther@suse.de>
29230
29231         * Makefile.in (OBJS-common): Add gimple-fold.o.
29232         (gimple-fold.o): New rule.
29233         * tree.h (maybe_fold_offset_to_reference,
29234         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
29235         prototypes ...
29236         * gimple.h: ... here.
29237         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
29238         may_propagate_address_into_dereference): Move prototypes ...
29239         * gimple.h: ... here.
29240         * tree-ssa-ccp.c (get_symbol_constant_value,
29241         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
29242         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
29243         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
29244         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
29245         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
29246         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
29247         gimplify_and_update_call_from_tree): Move ...
29248         * gimple-fold.c: ... here.  New file.
29249         (ccp_fold_builtin): Rename to ...
29250         (gimple_fold_builtin): ... this.
29251         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
29252
29253 2010-04-15  Richard Guenther  <rguenther@suse.de>
29254
29255         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
29256         fit_double_type, force_fit_type_double, add_double_with_sign,
29257         neg_double, mul_double_with_sign, lshift_double, rshift_double,
29258         lrotate_double, rrotate_double, div_and_round_double): Move ...
29259         * double-int.c: ... here.
29260         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
29261         add_double, neg_double, mul_double_with_sign, mul_double,
29262         lshift_double, rshift_double, lrotate_double, rrotate_double,
29263         div_and_round_double): Move prototypes ...
29264         * double-int.h: ... here.
29265
29266 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
29267
29268         PR target/43742
29269         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
29270         matching constraints to ensure inputs match the output.
29271
29272 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
29273
29274         PR target/43742
29275         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
29276         in an input-only operand.
29277
29278 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
29279
29280         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
29281         (double_int_not, double_int_lshift, double_int_rshift): Declare.
29282         (double_int_negative_p): Convert to static inline function.
29283         * double-int.c (double_int_lshift, double_int_lshift): New functions.
29284         (double_int_negative_p): Remove.
29285         * tree.h (lshift_double, rshift_double):
29286         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
29287         * fold-const.c (fold_convert_const_int_from_real,
29288         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
29289         (lshift_double): Change type of arith argument to bool.
29290         (rshift_double): Change type of arith argument to bool. Correct
29291         comment.
29292         * expmed.c (mask_rtx, lshift_value): (Ditto.).
29293
29294 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
29295
29296         PR target/21803
29297         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
29298         at the start and end of the then/else blocks, and omit them from the
29299         conversion.
29300         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
29301         argument; all callers changed.  Pass zero to old_insns_match_p instead.
29302         (flow_find_head_matching_sequence): New function.
29303         (old_insns_match_p): Check REG_EH_REGION notes for calls.
29304         * basic-block.h (flow_find_cross_jump,
29305         flow_find_head_matching_sequence): Declare functions.
29306
29307 2010-04-14  Jason Merrill  <jason@redhat.com>
29308
29309         PR c++/36625
29310         * c-common.c (attribute_takes_identifier_p): New fn.
29311         * c-common.h: Declare it.
29312
29313 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29314
29315         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
29316         splitter condition.
29317         (*udivmod<mode>4): Ditto.
29318
29319 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29320
29321         * config/i386/i386.md (maxmin_int): Rename code attribute from
29322         maxminiprefix and update all users.
29323         (maxmin_float): Ditto from maxminfprefix.
29324         (logic): Ditto from logicprefix.
29325         (absneg_mnemonic): Ditto from absnegprefix.
29326         * config/i386/mmx.md: Update all users of maxminiprefix,
29327         maxminfprefix and logicprefix for rename.
29328         * config/i386/sse.md: Ditto.
29329         * config/i386/sync.md (sync_<code><mode>): Update for
29330         logicprefix rename.
29331
29332 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29333
29334         PR 42966
29335         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
29336         warnings converted to errors.
29337
29338 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29339
29340         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
29341         used insn_type variable.
29342         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
29343         to avoid set-but-not-used warning.
29344
29345 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29346
29347         * df-core.c (df_ref_debug): Change format string placeholder
29348         from 0x%x to %#x.
29349         * dwarf2asm.c (dw2_asm_output_data_raw,
29350         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
29351         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
29352         * dwarf2out.c (output_cfi, output_cfi_directive,
29353         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
29354         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
29355         Ditto.
29356         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
29357         * print-rtl.c (print_rtx): Ditto.
29358
29359 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
29360
29361         PR middle-end/42694
29362         * builtins.c (expand_builtin_pow_root): New function to expand pow
29363         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
29364         series of sqrt and cbrt calls under -ffast-math.
29365         (expand_builtin_pow): Call it.
29366
29367 2010-04-14  Michael Matz  <matz@suse.de>
29368
29369         PR tree-optimization/42963
29370         * tree-cfg.c (touched_switch_bbs): New static variable.
29371         (group_case_labels_stmt): New function broken out from ...
29372         (group_case_labels): ... here, use the above.
29373         (start_recording_case_labels): Allocate touched_switch_bbs.
29374         (end_recording_case_labels): Deallocate it, call
29375         group_case_labels_stmt.
29376         (gimple_redirect_edge_and_branch): Remember index of affected BB.
29377
29378 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29379
29380         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
29381         from insn template.
29382
29383 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29384
29385         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
29386
29387 2010-04-13  Jan Hubicka  <jh@suse.cz>
29388
29389         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
29390         of optimized out static functions.
29391         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
29392         cost computation.  Also sanity check for overflows.
29393         (update_caller_keys): Update cgraph_edge_badness call; properly
29394         update fibheap and sanity check that it is up to date.
29395         (add_new_edges_to_heap): Update cgraph_edge_badness.
29396         (cgraph_decide_inlining_of_small_function): Likewise;
29397         add sanity checking that badness in heap is up to date;
29398         improve dumping of reason; Update badness of calls to the
29399         offline copy of function currently inlined; dump badness
29400         of functions not inlined because of unit growth limits.
29401
29402 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
29403
29404         PR middle-end/32628
29405         * c-common.c (pointer_int_sum): Disregard overflow that occured only
29406         because of sign-extension change when converting to sizetype here...
29407         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
29408
29409         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
29410         the folding to constants.  Remove redundant final conversion.
29411         (fold_binary) <associate>: Do not associate if the re-association of
29412         constants alone overflows.
29413         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
29414         to the end of the list.
29415         (multiple_of_p) <COND_EXPR>: New case.
29416
29417 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29418
29419         * opt-functions.awk (opt_sanitized_name): New.
29420         (opt_enum): New.
29421         * optc-gen.awk: Use it
29422         * opth-gen.awk: Use it.
29423
29424 2010-04-13  Martin Jambor  <mjambor@suse.cz>
29425
29426         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
29427         (sra_modify_assign): Delete stmts loading dead data even if racc has no
29428         children.  Call replace_uses_with_default_def_ssa_name to handle
29429         SSA_NAES on lhs.
29430
29431 2010-04-13  Michael Matz  <matz@suse.de>
29432
29433         PR middle-end/43730
29434         * builtins.c (expand_builtin_interclass_mathfn): Also create
29435         a register if the predicate doesn't match.
29436
29437 2010-04-13  Diego Novillo  <dnovillo@google.com>
29438
29439         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
29440         * c-pch.c: Include timevar.h.
29441         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
29442         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
29443         * ggc-common.c: Include timevar.h.
29444         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
29445         * timevar.def (TV_PCH_SAVE): Define.
29446         (TV_PCH_CPP_SAVE): Define.
29447         (TV_PCH_PTR_REALLOC): Define.
29448         (TV_PCH_PTR_SORT): Define.
29449         (TV_PCH_RESTORE): Define.
29450         (TV_PCH_CPP_RESTORE): Define.
29451
29452 2010-04-13  Michael Matz  <matz@suse.de>
29453
29454         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
29455         into MINUS_EXPRs.
29456         (can_reassociate_p): New function.
29457         (break_up_subtract_bb, reassociate_bb): Use it.
29458
29459 2010-04-13  Richard Guenther  <rguenther@suse.de>
29460
29461         PR bootstrap/43737
29462         * builtins.c (c_readstr): Fix assert.
29463
29464 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
29465
29466         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
29467         when generating cltd insn.
29468
29469         (*ashl<mode>3_1): Remove special handling for register operand 2.
29470         (*ashlsi3_1_zext): Ditto.
29471         (*ashlhi3_1): Ditto.
29472         (*ashlhi3_1_lea): Ditto.
29473         (*ashlqi3_1): Ditto.
29474         (*ashlqi3_1_lea): Ditto.
29475         (*<shiftrt_insn><mode>3_1): Ditto.
29476         (*<shiftrt_insn>si3_1_zext): Ditto.
29477         (*<shiftrt_insn>qi3_1_slp): Ditto.
29478         (*<rotate_insn><mode>3_1): Ditto.
29479         (*<rotate_insn>si3_1_zext): Ditto.
29480         (*<rotate_insn>qi3_1_slp): Ditto.
29481
29482 2010-04-13  Richard Guenther  <rguenther@suse.de>
29483
29484         * tree-ssa-structalias.c (callused_id): Remove.
29485         (call_stmt_vars): New.
29486         (get_call_vi): Likewise.
29487         (lookup_call_use_vi): Likewise.
29488         (lookup_call_clobber_vi): Likewise.
29489         (get_call_use_vi): Likewise.
29490         (get_call_clobber_vi): Likewise.
29491         (make_transitive_closure_constraints): Likewise.
29492         (handle_const_call): Adjust to do per-call call-used handling.
29493         (handle_pure_call): Likewise.
29494         (find_what_var_points_to): Remove general callused handling.
29495         (init_base_vars): Likewise.
29496         (init_alias_vars): Initialize call_stmt_vars.
29497         (compute_points_to_sets): Process call-used and call-clobbered
29498         vars for call statements.
29499         (delete_points_to_sets): Free call_stmt_vars.
29500
29501 2010-04-13  Richard Guenther  <rguenther@suse.de>
29502
29503         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29504         Only add RW dependence for dependence distance zero.
29505         Adjust maximal vectorization factor according to dependences.
29506         Move alignment handling ...
29507         (vect_find_same_alignment_drs): ... here.  New function.
29508         (vect_analyze_data_ref_dependences): Adjust.
29509         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
29510         (vect_analyze_data_refs): Adjust minimal vectorization factor
29511         according to data references.
29512         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
29513         dependences before determining the vectorization factor.
29514         Analyze alignment after determining the vectorization factor.
29515         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
29516         dependences before alignment.
29517         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
29518         Adjust prototype.
29519         (vect_analyze_data_refs): Likewise.
29520         (MAX_VECTORIZATION_FACTOR): New define.
29521
29522 2010-04-13  Duncan Sands  <baldrick@free.fr>
29523
29524         * except.h (lang_eh_type_covers): Remove.
29525         * except.c (lang_eh_type_covers): Likewise.
29526
29527 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29528             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29529
29530         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
29531         * config/s390/s390.c: Replace UNTIS_PER_WORD with
29532         UNITS_PER_LONG where it is ABI relevant.
29533         (s390_return_addr_rtx): Likewise.
29534         (s390_back_chain_rtx): Likewise.
29535         (s390_frame_area): Likewise.
29536         (s390_frame_info): Likewise.
29537         (s390_initial_elimination_offset): Likewise.
29538         (save_gprs): Likewise.
29539         (s390_emit_prologue): Likewise.
29540         (s390_emit_epilogue): Likewise.
29541         (s390_function_arg_advance): Likewise.
29542         (s390_function_arg): Likewise.
29543         (s390_va_start): Likewise.
29544         (s390_gimplify_va_arg): Likewise.
29545         (s390_function_profiler): Likewise.
29546         (s390_optimize_prologue): Likewise.
29547         (s390_rtx_costs): Likewise.
29548         (s390_secondary_reload): Likewise.
29549         (s390_promote_function_mode): Likewise.
29550         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
29551         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
29552         registers available.
29553         (s390_unwind_word_mode): New function.
29554         (s390_function_value): Split 64 bit values into register pair if
29555         used as return value.
29556         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
29557         function call parameters.  Handle parallels.
29558         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
29559         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
29560         (DWARF_CIE_DATA_ALIGNMENT): New macro.
29561         (s390_expand_setmem): Remove unused variable src_addr.
29562         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
29563         deal with 64 bit registers.
29564         * config/s390/s390.h: Define __zarch__ predefined macro.
29565         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
29566         (UNITS_PER_LONG): New macro.
29567         * libjava/include/s390-signal.h: Define extended ucontext
29568         structure containing the upper halfs of the 64 bit registers.
29569
29570 2010-04-13  Simon Baldwin  <simonb@google.com>
29571
29572         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
29573
29574 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
29575
29576         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
29577         rvalue on the RHS if the LHS is of a non-renamable type.
29578         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
29579
29580 2010-04-13  Matthias Klose  <doko@ubuntu.com>
29581
29582         * gcc.c (cc1_options): Handle -iplugindir before processing
29583         the cc1 spec. Only add -iplugindir once.
29584         (cpp_unique_options): Add -iplugindir option if -fplugin* options
29585         found.
29586         * common.opt (iplugindir): Remove `Separate' property, initialize.
29587         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
29588         option.
29589         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
29590         (distclean): Remove plugin dir.
29591         * doc/invoke.texi: Document -iplugindir.
29592
29593 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
29594
29595         * doc/plugins.texi (Loading Plugins): Document short
29596         -fplugin=foo option.
29597         (Plugin API): Mention default_plugin_dir_name function.
29598
29599         * gcc.c (find_file_spec_function): Add new declaration.
29600         (static_spec_func): Use it for "find-file".
29601         (find_file_spec_function): Add new function.
29602         (cc1_options): Add -iplugindir option if -fplugin* options found.
29603
29604         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
29605
29606         * plugin.c (add_new_plugin): Updated comment, and handle short
29607         plugin name.
29608         (default_plugin_dir_name): Added new function.
29609
29610         * common.opt (iplugindir): New option to set the plugin directory.
29611
29612 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
29613
29614         * config/i386/i386.md (any_rotate): New code iterator.
29615         (rotate_insn): New code attribute.
29616         (rotate): Ditto.
29617         (SWIM124): New mode iterator.
29618         (<rotate_insn>ti3): New expander.
29619         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
29620         any_rotate code iterator.
29621         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
29622         using any_rotate code iterator and SWIM124 mode iterator.
29623         (ix86_rotlti3): New insn_and_split pattern.
29624         (ix86_rotrti3): Ditto.
29625         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
29626         ix86_rotl{di,ti}3 patterns.
29627         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
29628         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
29629         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
29630         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
29631         code iterator and SWI mode iterator.
29632         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
29633         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
29634         code iterator.
29635         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
29636         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
29637         (bswap rotatert splitter): Add splitter.
29638         (bswap splitter): Macroize splitter using any_rotate code iterator.
29639         Add insn predicate to split only for TARGET_USE_XCHGB or when
29640         optimizing function for size.
29641
29642 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
29643
29644         * config/pa/pa.c (emit_move_sequence): Remove use of
29645         deleted variable flag_argument_noalias.
29646
29647 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29648
29649         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
29650         configurations.
29651         Add to unsupported targets list.
29652         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
29653         sparc*-sun-solaris2.[567]* from target lists.
29654         * configure: Regenerate.
29655         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
29656         removal.
29657         Remove Solaris 7 patch references.
29658         (Specific, sparc-sun-solaris2.7): Removed.
29659         (sparc-sun-solaris2*): Update Solaris 7 example.
29660         (sparc64-*-solaris2*): Likewise.
29661
29662 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29663
29664         * config.build (alpha*-dec-osf4*): Remove.
29665         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
29666         of obsolete configurations.
29667         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
29668         support.
29669         * config/alpha/t-osf4: Renamed to ...
29670         * config/alpha/t-osf5: ... this.
29671         * config/alpha/osf.h: Renamed to ...
29672         * config/alpha/osf5.h: ... this.
29673         Merged old osf5.h contents.
29674         Update comments.
29675         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
29676         (EXTRA_SPECS): Removed.
29677         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
29678         reflect removal of Tru64 UNIX V4.0/V5.0 support.
29679         Document that.
29680
29681 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29682
29683         * doc/contrib.texi (Contributors, Rainer Orth): Update.
29684
29685 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
29686
29687         PR/43702
29688         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
29689         __thiscall convention.
29690
29691 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
29692
29693         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
29694         orig_base.
29695         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
29696
29697 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
29698
29699         * function.c (assign_parms_initialize_all): Add unused attribute
29700         to fntype.
29701
29702 2010-04-12  Richard Guenther  <rguenther@suse.de>
29703
29704         * gsstruct.def (GSS_CALL): New.
29705         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
29706         * gimple.h: Include tree-ssa-alias.h.
29707         (struct gimple_statement_call): New.
29708         (union gimple_statement_struct_d): Add gimple_call member.
29709         (gimple_call_reset_alias_info): Declare.
29710         (gimple_call_use_set): New function.
29711         (gimple_call_clobber_set): Likewise.
29712         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
29713         * gimple.c (gimple_call_reset_alias_info): New function.
29714         (gimple_build_call_1): Call it.
29715         * lto-streamer-in.c (input_gimple_stmt): Likewise.
29716         * tree-inline.c (remap_gimple_stmt): Likewise.
29717         (expand_call_inline): Remove callused handling.
29718         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
29719         * tree-dfa.c (dump_variable): Likewise.
29720         * tree-parloops.c (parallelize_loops): Likewise.
29721         * tree-ssa.c (init_tree_ssa): Likewise.
29722         (delete_tree_ssa): Likewise.
29723         * tree-flow-inline.h (is_call_used): Remove.
29724         * tree-flow.h (struct gimple_df): Remove callused member.
29725         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
29726         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
29727         (ref_maybe_used_by_call_p_1): Simplify.
29728         (call_may_clobber_ref_p_1): Likewise.
29729         * tree-ssa-structalias.c (compute_points_to_sets): Set
29730         the call stmt used and clobbered sets.
29731         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
29732         (find_tail_calls): Verify the tail call.
29733
29734 2010-04-12  Richard Guenther  <rguenther@suse.de>
29735
29736         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
29737         single-iteration always-inline inlining.
29738         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
29739         (cgraph_decide_inlining): Do not handle always-inline specially.
29740         (try_inline): Remove always-inline cycle detection special case.
29741         Do not recurse on always-inlines.
29742         (cgraph_early_inlining): Do not iterate if not optimizing.
29743         (cgraph_gate_early_inlining): remove.
29744         (pass_early_inline): Run unconditionally.
29745         (gate_cgraph_decide_inlining): New function.
29746         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
29747         not inlining or optimizing.
29748         (cgraph_decide_inlining_of_small_functions): Also consider
29749         always-inline functions.
29750         (cgraph_default_inline_p): Return true for nodes which should
29751         disregard inline limits.
29752         (estimate_function_body_sizes): Assume zero size and time for
29753         nodes which are marked as disregarding inline limits.
29754         (cgraph_decide_recursive_inlining): Do not perform recursive
29755         inlining on always-inline nodes.
29756
29757 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
29758
29759         PR bootstrap/43699
29760         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
29761         for exprs satisfying handled_component_p.
29762
29763 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
29764
29765         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
29766         non-constant aggregate elements.
29767
29768         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
29769         is a real initialization.
29770
29771 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
29772
29773         PR c/36774
29774         * c-decl.c (start_function): Move forward check for nested function.
29775
29776 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
29777
29778         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
29779         * config/sh/sh.c: Include reload.h.
29780         (sh_legitimize_reload_address): New.
29781         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
29782         sh_legitimize_reload_address.
29783
29784 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
29785
29786         * config/sh/sh.md (*movqi_pop): New insn pattern.
29787         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
29788
29789 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
29790
29791         * config/i386/i386.md (any_shiftrt): New code iterator.
29792         (shiftrt_insn): New code attribute.
29793         (shiftrt): Ditto.
29794         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
29795         using any_shiftrt code iterator.
29796         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
29797         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
29798         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
29799         pattern from corresponding peephole2 patterns.
29800         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
29801         using any_shiftrt code iterator.
29802         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
29803         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
29804         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
29805         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
29806         *{ashr,lshr}<mode>3_cmp_zext.
29807         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
29808
29809 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
29810
29811         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
29812         scratch register.
29813         (*lshr<mode>3_cconly): Ditto.
29814
29815 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
29816
29817         * config/i386/i386.md (lshr<mode>3): Macroize expander from
29818         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
29819         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
29820         pattern from *lshr{di,ti}3_1 and corresponding splitters using
29821         DWI mode iterator.
29822         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
29823         from corresponding peephole2 patterns.
29824         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
29825         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
29826         and *lshrdi3_1_rex64 using SWI mode iterator.
29827         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
29828         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
29829         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
29830         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
29831         and *lshrdi3_cmp_rex64 using SWI mode iterator.
29832         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
29833         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
29834         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
29835         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
29836         SWI mode iterator.
29837
29838 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
29839
29840         * config/i386/i386.md (ashr<mode>3): Macroize expander from
29841         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
29842         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
29843         pattern from *ashr{di,ti}3_1 and corresponding splitters using
29844         DWI mode iterator.
29845         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
29846         from corresponding peephole2 patterns.
29847         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
29848         (ashrsi3_cvt): Rename from ashrsi3_31.
29849         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
29850         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
29851         and x86_64_shift_adj_3 using SWI48 mode iterator.
29852         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
29853         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
29854         and *ashrdi3_1_rex64 using SWI mode iterator.
29855         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
29856         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
29857         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
29858         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
29859         and *ashrdi3_cmp_rex64 using SWI mode iterator.
29860         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
29861         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
29862         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
29863         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
29864         SWI mode iterator.
29865         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
29866         * config/i386/i386.c (ix86_split_ashr): Update for renamed
29867         x86_shift<mode>_adj_3 expanders.
29868
29869 2010-04-10  Wei Guozhi  <carrot@google.com>
29870
29871         PR target/42601
29872         * config/arm/arm.c (arm_pic_static_addr): New function.
29873         (legitimize_pic_address): Call arm_pic_static_addr when it detects
29874         a static symbol.
29875         (arm_output_addr_const_extra): Output expression for new pattern.
29876         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
29877
29878 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
29879
29880         * ira-costs.c (record_reg_classes): Ignore alternatives that are
29881         not enabled.
29882
29883         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
29884         * web.c: Include "insn-config.h" and "recog.h".
29885         (union_match_dups): New function.
29886         (web_main): Call it.
29887         (union_defs): Don't try to recognize match_dups.
29888
29889         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
29890         if doing so would replace the entire pattern.
29891
29892 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
29893
29894         PR target/43707
29895         PR target/43709
29896         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
29897         and splitter pattern.  Change splitter operand 1 predicate to
29898         nonmemory_operand.
29899
29900 2010-04-09  Martin Jambor  <mjambor@suse.cz>
29901
29902         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
29903         lattices are addresses of CONST_DECLs with the same initial value.
29904         (ipcp_print_all_lattices): Print values of CONST_DECLs.
29905         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29906
29907 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
29908             Bernd Schmidt  <bernds@codesourcery.com>
29909
29910         * loop-invariant.c (replace_uses): New static function.
29911         (move_invariant_reg): Use it to ensure we can replace the uses.
29912
29913 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
29914
29915         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
29916         function template.
29917         (picochip_override_options): Enable section anchors only above -O1.
29918         (picochip_reorg): Fixed a couple of build warnings.
29919
29920 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29921
29922         * configure.ac (plugin -rdynamic test): Log result.
29923         * configure: Regenerate.
29924         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
29925         (RDYNAMIC_SPEC): Define.
29926         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
29927
29928 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29929
29930         * configure.ac: Determine Sun ld version numbers.
29931         (comdat_group): Restrict GNU ld version checks to gld.
29932         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
29933         (enable_comdat): Support --enable-comdat.
29934         * configure: Regenerate.
29935         * doc/install.texi (Configuration): Document --enable-comdat.
29936
29937 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29938
29939         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
29940         * config/sol2-gld.h: ... here.
29941         * config.gcc (sparc*-*-solaris2*): Reflect this.
29942         (i[34567]86-*-solaris2*): Use it.
29943
29944 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
29945
29946         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
29947         setup_clocks_p.
29948         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
29949
29950 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29951
29952         PR 42965
29953         * diagnostic.c (diagnostic_initialize): Initialize
29954         some_warnings_are_errors.
29955         (diagnostic_finish): New.
29956         (diagnostic_action_after_output): Call it before exiting.
29957         (diagnostic_report_diagnostic): Do not print message here. Set
29958         some_warnings_are_errors.
29959         * diagnostic.h (diagnostic_context): Delete
29960         issue_warnings_are_errors_message. Add some_warnings_are_errors.
29961         (diagnostic_finish): Declare.
29962         * toplev.c (toplev_main): Call it before exit.
29963
29964 2010-04-09  Jason Merrill  <jason@redhat.com>
29965
29966         PR c++/42623
29967         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
29968         for incomplete type.
29969
29970         PR c++/41788
29971         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
29972         based on a warning flag.
29973
29974 2010-04-09  Richard Guenther  <rguenther@suse.de>
29975
29976         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
29977
29978 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
29979
29980         PR bootstrap/43684
29981         * varasm.c (default_assemble_visibility): Wrap vars that are
29982         set, but unused, by targets without GAS.
29983         * config/rs6000/rs6000.c (paired_emit_vector_compare):
29984         Remove set, but unused, vars.
29985         (rs6000_legitimize_tls_address): Likewise.
29986         (altivec_expand_dst_builtin): Likewise.
29987         * config/darwin.c (machopic_classify_symbol): Likewise.
29988         (machopic_indirection_name): Likewise.
29989
29990 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
29991
29992         * config/i386/i386.md (DWI): New mode iterator.
29993         (S): New mode attribute.
29994         (shift_operand): Ditto.
29995         (shift_immediate_operand): Ditto.
29996         (ashl_input_operand): Ditto.
29997         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
29998         using SDWIM mode iterator.
29999         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30000         pattern from *ashl{di,ti}3_1 and corresponding splitters using
30001         DWI mode iterator.
30002         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
30003         from corresponding peephole2 patterns.
30004         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
30005         and x86_64_shift_adj_1 using SWI48 mode iterator.
30006         (x86_shift<mode>_adj_2): Ditto.
30007         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
30008         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
30009         using SWI48 mode iterator.
30010         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
30011         *ashldi3_cmp_rex64 using SWI mode iterator.
30012         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
30013         *ashldi3_cconly_rex64 using SWI mode iterator.
30014         * config/i386/i386.c (ix86_split_ashl): Update for renamed
30015         x86_shift<mode>_adj_{1,2}.
30016         (ix86_split_ashr): Ditto.
30017         (ix86_split_lshr): Ditto.
30018
30019 2010-04-09  Richard Guenther  <rguenther@suse.de>
30020
30021         * target.h (builtin_conversion): Pass in input and output types.
30022         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
30023         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
30024         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
30025         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
30026
30027         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
30028         Handle AVX modes.
30029         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
30030
30031 2010-04-09  Richard Guenther  <rguenther@suse.de>
30032
30033         PR target/43152
30034         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
30035
30036 2010-04-09  Richard Guenther  <rguenther@suse.de>
30037
30038         * tree-vectorizer.h (struct _stmt_vec_info): Document
30039         that vectype is the type of the LHS.
30040         (supportable_widening_operation, supportable_narrowing_operation):
30041         Get both input and output vector types as arguments.
30042         (vect_is_simple_use_1): Declare.
30043         (get_same_sized_vectype): Likewise.
30044         * tree-vect-loop.c (vect_determine_vectorization_factor):
30045         Set STMT_VINFO_VECTYPE to the vector type of the def.
30046         (vectorizable_reduction): Adjust.
30047         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
30048         Adjust.  Specify the output vector type.
30049         (vect_pattern_recog_1): Adjust.
30050         * tree-vect-stmts.c (get_same_sized_vectype): New function.
30051         (vectorizable_call): Adjust.
30052         (vectorizable_conversion): Likewise.
30053         (vectorizable_operation): Likewise.
30054         (vectorizable_type_demotion): Likewise.
30055         (vectorizable_type_promotion): Likewise.
30056         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
30057         the def.
30058         (vect_is_simple_use_1): New function.
30059         (supportable_widening_operation): Get both input and output
30060         vector types.
30061         (supportable_narrowing_operation): Likewise.
30062         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
30063
30064 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
30065
30066         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
30067         __thiscall and _thiscall as predefined macros.
30068         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
30069         thiscall attribute handling.
30070         (ix86_comp_type_attributes): Likewise.
30071         (ix86_function_regparm): Likewise.
30072         (ix86_return_pops_args): Likewise.
30073         (init_cumulative_args): Likewise.
30074         (find_drap_reg): Likewise.
30075         (ix86_static_chain): Likewise.
30076         (x86_this_parameter): Likewise.
30077         (x86_output_mi_thunk): Likewise.
30078         (ix86_attribute_table): Add description for thiscall attribute.
30079         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
30080         * doc/extend.texi: Add documentation for thiscall.
30081
30082 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30083
30084         PR c++/28584
30085         * c.opt (Wint-to-pointer-cast): Available in C++.
30086         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
30087
30088 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
30089
30090         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
30091         * calls.c (expand_call): Pass the function type to aggregate_value_p.
30092         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
30093         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
30094         function type instead.  Reorder and simplify checks.
30095
30096         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
30097
30098 2010-04-08  Jing Yu  <jingyu@google.com>
30099             Zdenek Dvorak  <ook@ucw.cz>
30100
30101         PR tree-optimization/42720
30102         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
30103         loop unswitch conditions here from ...
30104         (tree_unswitch_single_loop): ... here.
30105
30106 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30107
30108         * tree-if-conv.c: Fix comments and simplify logic.
30109
30110 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30111
30112         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
30113         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
30114         (main_tree_if_conversion): Update call to tree_if_conversion.
30115
30116 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30117
30118         PR 42485
30119         * doc/invoke.texi (-b,-V): Delete.
30120         * doc/tm.texi: Do not mention -b.
30121         * gcc.c (display_help): Delete -b and -V.
30122         (process_command): Delete -b and -V.
30123         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
30124
30125 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
30126             Wolfgang Gellerich  <gellerich@de.ibm.com>
30127
30128         Implement target hook for loop unrolling
30129         * target.h (loop_unroll_adjust): Add a new target hook function.
30130         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
30131         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
30132         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
30133         (s390_loop_unroll_adjust): Implement the new target hook for s390.
30134         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
30135         target hook.
30136         (decide_unroll_stupid): Likewise.
30137
30138 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30139
30140         PR target/43643
30141         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
30142
30143 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30144
30145         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
30146         (Specific, *-*-solaris2*): Likewise.
30147         Don't prefer Sun as over GNU as.
30148
30149 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
30150
30151         * config/s390/s390.c (override_options): Adjust the z10 defaults
30152         for max-unroll-times, max-completely-peeled-insns
30153         and max-completely-peel-times.
30154
30155 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30156
30157         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
30158         instructions for z10.
30159         (s390_expand_setmem): Likewise.
30160         (s390_expand_cmpmem): Likewise.
30161
30162 2010-04-08  Richard Guenther  <rguenther@suse.de>
30163
30164         PR tree-optimization/43679
30165         * tree-ssa-pre.c (eliminate): Only propagate copies.
30166
30167 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30168
30169         PR bootstrap/43681
30170         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
30171         set but not used variable warning.
30172
30173 2010-04-08  Wei Guozhi  <carrot@google.com>
30174
30175         PR target/41653
30176         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
30177         (arm_size_rtx_costs): Call the new function when optimized for size.
30178
30179 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30180
30181         PR debug/43670
30182         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
30183         op0 is not a MEM, just return NULL instead of assertion
30184         failure.
30185         (discover_nonconstant_array_refs): Don't walk debug stmts.
30186
30187 2010-04-08  Doug Kwan  <dougkwan@google.com>
30188
30189         * configure.ac: Recognize gold and do not use its version number
30190         to test ld features.
30191         * configure: Regenerate.
30192
30193 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
30194
30195         PR middle-end/40815
30196         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
30197         (negate_value): Move code to push elements to broken_up_substracts ...
30198         (eliminate_plus_minus_pair): ... here.  Push operands that have no
30199         negative pair to plus_negates.
30200         (repropagate_negates, init_reassoc, fini_reassoc): Update.
30201
30202 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30203
30204         * doc/install.texi (Configuration): Move description of
30205         --enable-lto, --with-libelf*, --enable-gold from Java section to
30206         general section.
30207
30208         * doc/generic.texi (Working with declarations)
30209         (Function Properties, C and C++ Trees): Fix typos.
30210         * doc/sourcebuild.texi (Top Level): Likewise.
30211
30212 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
30213
30214         PR c/18624
30215         * tree.h (DECL_READ_P): Define.
30216         (struct tree_decl_common): Add decl_read_flag.
30217         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
30218         a set but not used warning.
30219         (merge_decls): Merge DECL_READ_P flag.
30220         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
30221         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
30222         * c-common.c (handle_used_attribute, handle_unused_attribute):
30223         Likewise.
30224         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
30225         New prototypes.
30226         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
30227         New functions.
30228         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
30229         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
30230         c_parser_binary_expression, c_parser_cast_expression,
30231         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
30232         Call default_function_array_read_conversion instead of
30233         default_function_array_conversion where needed.
30234         (c_parser_unary_expression, c_parser_conditional_expression,
30235         c_parser_postfix_expression_after_primary, c_parser_initelt):
30236         Likewise.  Call mark_exp_read where needed.
30237         (c_parser_statement_after_labels, c_parser_asm_operands,
30238         c_parser_typeof_specifier, c_parser_sizeof_expression,
30239         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
30240         where needed.
30241         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
30242         New.
30243         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
30244         (warn_unused_but_set_parameter): Default to warn_unused
30245         && extra_warnings.
30246         * doc/invoke.texi: Document -Wunused-but-set-variable and
30247         -Wunused-but-set-parameter.
30248
30249         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
30250         used count variable.
30251         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
30252         when operandN variables aren't used in the body of the expander
30253         or splitter.
30254         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
30255         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
30256         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
30257         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
30258         FOR_EACH_IMM_USE_ON_STMT): Likewise.
30259         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
30260         * tree.c (PROCESS_ARG): Likewise.
30261
30262 2010-04-07  Simon Baldwin  <simonb@google.com>
30263
30264         * diagnostic.h (diagnostic_override_option_index): New macro to
30265         set a diagnostic's option_index.
30266         * c-tree.h (c_cpp_error): Add warning reason argument.
30267         * opts.c (_warning_as_error_callback): New.
30268         (register_warning_as_error_callback): Store callback for
30269         warnings enabled via enable_warning_as_error.
30270         (enable_warning_as_error): Call callback, minor code tidy.
30271         * opts.h (register_warning_as_error_callback): Declare.
30272         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
30273         response to -Werror=.
30274         (c_common_init_options): Register warning_as_error_callback in opts.c.
30275         * common.opt: Add -Wno-cpp option.
30276         * c-common.c (struct reason_option_codes_t): Map cpp warning
30277         reason codes to gcc option indexes.
30278         * (c_option_controlling_cpp_error): New function, lookup the gcc
30279         option index for a cpp warning reason code.
30280         * (c_cpp_error): Add warning reason argument, call
30281         c_option_controlling_cpp_error for diagnostic_override_option_index.
30282         * doc/invoke.texi: Document -Wno-cpp.
30283
30284 2010-04-07  Richard Guenther  <rguenther@suse.de>
30285
30286         * ipa-reference.c (mark_load): Use get_base_address.
30287         (mark_store): Likewise.
30288
30289         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
30290         inserting GIMPLE_NOPs into the IL.
30291         * tree-ssa-structalias.c (get_constraint_for_component_ref):
30292         Explicitly strip handled components and indirect references.
30293
30294         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
30295         folding address expressions.
30296         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
30297         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
30298         operand_equal_p to compare decls.
30299         (ptr_deref_may_alias_decl_p): Likewise.
30300         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
30301         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
30302         Handle reversed comparison ops.
30303         * tree-sra.c (asm_visit_addr): Use get_base_address.
30304         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
30305         * ipa-reference.c (mark_address): Use get_base_address.
30306
30307 2010-04-07  Richard Guenther  <rguenther@suse.de>
30308
30309         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
30310         Propagate constants everywhere.
30311
30312 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
30313
30314         PR debug/43516
30315         * tree.c (MAX_INT_CACHED_PREC): Define.
30316         (nonstandard_integer_type_cache): New array.
30317         (build_nonstandard_integer_type): Cache results for precision
30318         <= MAX_INT_CACHED_PREC.
30319
30320 2010-04-07  Richard Guenther  <rguenther@suse.de>
30321
30322         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
30323         -fargument-noalias-global, -fargument-noalias-anything): Remove.
30324         * common.opt: Likewise.
30325         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
30326         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
30327         (nonoverlapping_memrefs_p): Likewise.
30328         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
30329         * opts.c (common_handle_option): Handle OPT_fargument_alias,
30330         OPT_fargument_noalias, OPT_fargument_noalias_anything and
30331         OPT_fargument_noalias_global for backward compatibility.
30332
30333 2010-04-07  Richard Guenther  <rguenther@suse.de>
30334
30335         PR tree-optimization/43270
30336         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
30337         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
30338         * tree-ssa-pre.c (phi_translate_1): Adjust.
30339         (fully_constant_expression): Split out vn_reference handling to ...
30340         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
30341         Fold reads from constant strings.
30342         (vn_reference_lookup): Handle fully constant references.
30343         (vn_reference_lookup_pieces): Likewise.
30344         * Makefile.in (expmed.o-warn): Add -Wno-error.
30345
30346 2010-04-07  Martin Jambor  <mjambor@suse.cz>
30347
30348         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
30349
30350 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
30351
30352         PR driver/41594
30353         * gcc.c: Add -static-libstdc++ to list of recognized options.
30354
30355 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30356
30357         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
30358
30359 2010-04-07  Richard Guenther  <rguenther@suse.de>
30360
30361         PR middle-end/42617
30362         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
30363         bases build simple mem attributes to retain points-to information.
30364
30365 2010-04-07  Richard Guenther  <rguenther@suse.de>
30366
30367         PR middle-end/42617
30368         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
30369         preserve points-to related information.
30370
30371 2010-04-07  Richard Guenther  <rguenther@suse.de>
30372
30373         PR middle-end/42617
30374         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
30375         discard plain indirect references.
30376         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
30377         * tree.c (tree_nop_conversion): Likewise.
30378
30379 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
30380
30381         PR debug/43628
30382         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
30383
30384 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
30385
30386         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
30387         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
30388
30389 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30390
30391         * tree-if-conv.c: Fix indentation and comments.
30392
30393 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30394
30395         * tree-if-conv.c: Sort static functions in topological order.
30396
30397 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30398
30399         * tree-if-conv.c: Fix indentation and comments.
30400
30401 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30402
30403         PR middle-end/43519
30404         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
30405         lang_hooks.types.type_for_size instead of
30406         build_nonstandard_integer_type.
30407         When converting an unsigned type to signed, double its precision.
30408         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
30409         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
30410         (graphite_create_new_loop_guard): When ub + 1 wraps around,
30411         use lb <= ub.
30412
30413 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30414
30415         PR middle-end/43519
30416         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
30417         POINTER_PLUS_EXPR for pointer types.
30418
30419 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30420
30421         PR middle-end/43519
30422         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
30423         * graphite-clast-to-gimple.c: Include langhooks.h.
30424         (max_signed_precision_type): New.
30425         (max_precision_type): Takes two types as arguments.
30426         (precision_for_value): New.
30427         (precision_for_interval): New.
30428         (gcc_type_for_interval): New.
30429         (gcc_type_for_value): New.
30430         (gcc_type_for_clast_term): New.
30431         (gcc_type_for_clast_red): New.
30432         (gcc_type_for_clast_bin): New.
30433         (gcc_type_for_clast_expr): Split up into several functions.
30434         (gcc_type_for_clast_eq): Rewritten.
30435         (compute_bounds_for_level): New.
30436         (compute_type_for_level_1): New.
30437         (compute_type_for_level): New.
30438         (gcc_type_for_cloog_iv): Removed.
30439         (gcc_type_for_iv_of_clast_loop): Rewritten.
30440         (graphite_create_new_loop): Compute the lower and upper bound types
30441         with gcc_type_for_clast_expr.
30442         (graphite_create_new_loop_guard): Same.
30443         (find_cloog_iv_in_expr): Removed.
30444         (compute_cloog_iv_types_1): Removed.
30445         (compute_cloog_iv_types): Removed.
30446         (gloog): Do not call compute_cloog_iv_types.
30447         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
30448         GBB_CLOOG_IV_TYPES.
30449         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
30450         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
30451         (GBB_CLOOG_IV_TYPES): Removed.
30452
30453 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30454
30455         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
30456         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
30457         (detect_commutative_reduction): Same.
30458
30459 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30460
30461         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
30462         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
30463         argument.
30464         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
30465         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
30466         (rewrite_commutative_reductions_out_of_ssa): Same.
30467         * passes.c (execute_function_todo): Call verify_ssa for every pass
30468         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
30469         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
30470         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
30471         with an extra argument.
30472         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
30473         verify_ssa only when the extra argument is true.
30474         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
30475         with an extra argument.
30476         (tree_transform_and_unroll_loop): Same.
30477
30478 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30479
30480         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
30481         for all the passes of the LNO having LOOP_CLOSED_SSA.
30482         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
30483         * tree-loop-distribution.c (pass_loop_distribution): Same.
30484         * tree-pass.h (TODO_verify_loops): Removed.
30485         * tree-ssa-loop.c (pass_tree_loop_init): Same.
30486         (pass_lim): Same.
30487         (pass_tree_unswitch): Same.
30488         (pass_predcom): Same.
30489         (pass_vectorize): Same.
30490         (pass_linear_transform): Same.
30491         (pass_graphite_transforms): Same.
30492         (pass_iv_canon): Same.
30493         (pass_complete_unroll): Same.
30494         (pass_complete_unrolli): Same.
30495         (pass_parallelize_loops): Same.
30496         (pass_loop_prefetch): Same.
30497         (pass_iv_optimize): Same.
30498
30499 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
30500
30501         PR middle-end/32824
30502         * passes.c (init_optimization_passes): Move pass_lim before
30503         pass_copy_prop and pass_dce_loop.
30504
30505 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
30506
30507         PR target/43667
30508         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
30509         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
30510         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
30511         MULTI_* defines for 4 argument vpermil2p* builtins.
30512
30513 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
30514
30515         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
30516         * config/i386/i386.c (x86_maybe_negate_const_int): New.
30517         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
30518         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
30519         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
30520         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
30521         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
30522         Use x86_maybe_negate_const_int to output insn mnemonic.
30523         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
30524         check from instruction predicate.  Update comments.
30525         * config/i386/sync.md (sync_add<mode>): Use
30526         x86_maybe_negate_const_int to output insn mnemonic.
30527
30528 2010-04-06  Jan Hubicka  <jh@suse.cz>
30529
30530         PR tree-optimization/42906
30531         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
30532         IGNORE_SELF argument.  Set visited_control_parents for fully
30533         processed BBs.
30534         (find_obviously_necessary_stmts): Update call of
30535         mark_control_dependent_edges_necessary.
30536         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
30537
30538 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
30539
30540         * config/i386/i386.md: Remove comment about 'e' and 'E'
30541         operand modifier.
30542
30543 2010-04-06  Richard Guenther  <rguenther@suse.de>
30544
30545         PR tree-optimization/43627
30546         * tree-vrp.c (extract_range_from_unary_expr): Widenings
30547         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
30548         not varying.
30549
30550 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
30551
30552         * BASE-VER: Change to 4.6.0.
30553
30554         PR target/43638
30555         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
30556         handling.
30557
30558 2010-04-06  Richard Guenther  <rguenther@suse.de>
30559
30560         PR middle-end/43661
30561         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
30562
30563 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30564
30565         * doc/invoke.texi (Optimize Options): Document that LTO
30566         won't remove object access purely due to incompatible
30567         declarations.
30568
30569 2010-04-04  Matthias Klose  <doko@ubuntu.com>
30570
30571         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
30572         Initialize variable.
30573
30574 2010-04-03  Richard Guenther  <rguenther@suse.de>
30575
30576         PR middle-end/42509
30577         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
30578         require a non-NULL MEM_OFFSET.
30579
30580 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
30581
30582         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
30583         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
30584         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
30585         config/alpha/predicates.md, config/arm/arm.md,
30586         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
30587         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
30588         config/darwin9.h, config/darwin.c, config/darwin.h,
30589         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
30590         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
30591         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
30592         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
30593         config/mips/mips.md, config/mn10300/mn10300.c,
30594         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
30595         config/rs6000/aix.h, config/rs6000/dfp.md,
30596         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
30597         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
30598         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
30599         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
30600         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
30601         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
30602         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
30603         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
30604         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
30605         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
30606         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
30607         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
30608         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
30609         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
30610         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
30611         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
30612         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
30613         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
30614         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
30615         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
30616         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
30617         opt-functions.awk, opth-gen.awk, params.def, passes.c,
30618         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
30619         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
30620         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
30621         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
30622         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
30623         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
30624         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
30625         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
30626         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
30627         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
30628         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
30629         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
30630         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
30631         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
30632
30633 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30634
30635         PR other/43620
30636         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
30637         * aclocal.m4: Regenerate.
30638
30639 2010-04-02  Richard Guenther  <rguenther@suse.de>
30640
30641         PR tree-optimization/43629
30642         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
30643         if we have seen a constant value.
30644
30645 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
30646
30647         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
30648
30649 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
30650
30651         PR target/43469
30652         * arm.c (legitimize_tls_address): Adjust call to
30653         gen_tls_load_dot_plus_four.
30654         (arm_note_pic_base): New function.
30655         (arm_cannot_copy_insn_p): Use it.
30656         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
30657         constraint.
30658
30659 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30660
30661         PR bootstrap/43531
30662
30663         Revert:
30664         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30665
30666         * Makefile.in ($(out_object_file)): Depend on
30667         gt-$(basename $(notdir $(out_file))).h.
30668
30669 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
30670
30671         * config.gcc (lm32-*-rtems*): Add t-lm32.
30672
30673 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
30674
30675         * config.gcc: Add lm32-*-rtems*.
30676         * config/lm32/rtems.h: New file.
30677
30678 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
30679
30680         PR target/42609
30681         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
30682
30683 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
30684
30685         * dwarf2out.c (output_compilation_unit_header): For
30686         -gdwarf-4 use version 4 instead of version 3.
30687         (output_line_info): For version 4 and above emit additional
30688         maximum ops per insn header field.
30689         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
30690
30691         * dwarf2out.c (is_c_family, is_java): Remove.
30692         (lower_bound_default): New function.
30693         (add_bound_info, gen_descr_array_type_die): Use it.
30694
30695 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
30696
30697         PR debug/43325
30698         * dwarf2out.c (gen_variable_die): Allow debug info for variable
30699         re-declaration when it happens in a function.
30700
30701 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
30702
30703         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
30704         (cgraph_remove_function_insertion_hook): Same.
30705         (cgraph_call_function_insertion_hooks): Same.
30706
30707 2010-04-01  Richard Guenther  <rguenther@suse.de>
30708
30709         PR middle-end/43614
30710         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
30711         and TREE_THIS_VOLATILE.
30712         (copy_ref_info): Likewise.
30713         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
30714         * tree.c (build6_stat): Ignore side-effects of all but arg5
30715         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
30716         TARGET_MEM_REF.
30717
30718 2010-04-01  Richard Guenther  <rguenther@suse.de>
30719
30720         PR tree-optimization/43607
30721         * ipa-type-escape.c (check_call): Do not access non-existing
30722         arguments.
30723
30724 2010-04-01  Richard Guenther  <rguenther@suse.de>
30725
30726         PR middle-end/43602
30727         Revert
30728         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
30729                     Jack Howarth  <howarth@bromo.med.uc.edu>
30730
30731         * tree-profile.c (tree_init_ic_make_global_vars): Make static
30732         variables TLS.
30733
30734 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30735
30736         * doc/install.texi (Prerequisites): Document libelf usability on
30737         IRIX 5/6 and Solaris 2.
30738         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
30739         Update GNU as, GNU ld requirements.
30740         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
30741         Document Sun Studio compiler download.
30742         Update and simplify as, ld recommendations.
30743         (Specific, *-*-solaris2.7): Note obsoletion, removal.
30744
30745 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30746
30747         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
30748         with_tune_32 to pentium4.
30749
30750 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
30751
30752         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
30753
30754 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30755
30756         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
30757         obsoletion, removal.
30758         Update IDO URL.
30759         Document GNU as requirement.
30760         Update configure requirements.
30761         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
30762         Recomment IRIX 6.5.18+.
30763         Document IDF/IDL requirement.
30764         Document GNU as requirement.
30765         Document GNU ld bootstrap failure.
30766         Remove freeware.sgi.com reference.
30767
30768 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30769
30770         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
30771         UNIX V4.0, V5.0 obsoletion, removal.
30772         Remove --with-gc=simple reference.
30773         Update VM requirements during bootstrap.
30774         Remove -oldas bootstrap description.
30775         Update binutils reference.
30776         Remove comparison failure note.
30777
30778 2010-03-31  Richard Guenther  <rguenther@suse.de>
30779             Zdenek Dvorak  <ook@ucw.cz>
30780             Sebastian Pop  <sebastian.pop@amd.com>
30781
30782         PR middle-end/43464
30783         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
30784         with multiple arguments.
30785         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
30786
30787 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
30788
30789         * graphite-dependences.c (print_pddr): Call print_pdr with an
30790         extra argument.
30791         * graphite-poly.c (debug_pdr): Add an extra argument for the
30792         verbosity level.
30793         (print_pdr): Same.
30794         (print_pbb_domain): Same.
30795         (print_pbb): Same.
30796         (print_scop_context): Same.
30797         (print_scop): Same.
30798         (print_cloog): Same.
30799         (debug_pbb_domain): Same.
30800         (debug_pbb): Same.
30801         (print_pdrs): Same.
30802         (debug_pdrs): Same.
30803         (debug_scop_context): Same.
30804         (debug_scop): Same.
30805         (debug_cloog): Same.
30806         (print_scop_params): Same.
30807         (debug_scop_params): Same.
30808         (print_iteration_domain): Same.
30809         (print_iteration_domains): Same.
30810         (debug_iteration_domain): Same.
30811         (debug_iteration_domains): Same.
30812         (print_scattering_function): Same.
30813         (print_scattering_functions): Same.
30814         (debug_scattering_function): Same.
30815         (debug_scattering_functions): Same.
30816         * graphite-poly.h (debug_pdr): Update declaration.
30817         (print_pdr): Same.
30818         (print_pbb_domain): Same.
30819         (print_pbb): Same.
30820         (print_scop_context): Same.
30821         (print_scop): Same.
30822         (print_cloog): Same.
30823         (debug_pbb_domain): Same.
30824         (debug_pbb): Same.
30825         (print_pdrs): Same.
30826         (debug_pdrs): Same.
30827         (debug_scop_context): Same.
30828         (debug_scop): Same.
30829         (debug_cloog): Same.
30830         (print_scop_params): Same.
30831         (debug_scop_params): Same.
30832         (print_iteration_domain): Same.
30833         (print_iteration_domains): Same.
30834         (debug_iteration_domain): Same.
30835         (debug_iteration_domains): Same.
30836         (print_scattering_function): Same.
30837         (print_scattering_functions): Same.
30838         (debug_scattering_function): Same.
30839         (debug_scattering_functions): Same.
30840
30841 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
30842
30843         * graphite-poly.c (print_scattering_function_1): New.
30844         (print_scattering_function): Call it.
30845         (print_scop_params): Remove spaces at the end of lines.
30846         (print_cloog): New.
30847         (debug_cloog): New.
30848         * graphite-poly.h (print_cloog): Declared.
30849         (debug_cloog): Declared.
30850
30851 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
30852
30853         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
30854         in loop->header.
30855         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
30856         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
30857         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
30858         to switch between adding the IV bump in loop->latch or in loop->header.
30859
30860 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
30861
30862         * graphite-poly.c (print_scattering_function): Pretty print following
30863         the scoplib format.
30864         (print_pdr): Same.
30865         (print_pbb_domain): Same.
30866         (dump_gbb_cases): Same.
30867         (dump_gbb_conditions): Same.
30868         (print_pdrs): Same.
30869         (print_pbb): Same.
30870         (print_scop_params): Same.
30871         (print_scop_context): Same.
30872         (print_scop): Same.
30873         (print_pbb_body): New.
30874         (lst_indent_to): New.
30875         (print_lst): Start new lines with a #.
30876         * graphite-poly.h (pbb_bb): New.
30877         (pbb_index): Use pbb_bb.
30878         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
30879         disjuncts.
30880         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
30881
30882 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
30883
30884         * dwarf2out.c (size_of_die): For -gdwarf-4 use
30885         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
30886         and 0 instead of 1 for dw_val_class_flag.
30887         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
30888         dw_val_class_range_list, dw_val_class_loc_list,
30889         dw_val_class_lineptr and dw_val_class_macptr, use
30890         DW_FORM_flag_present for dw_val_class_flag and
30891         DW_FORM_exprloc for dw_val_class_loc.
30892         (output_die): For -gdwarf-4 print dw_val_class_loc
30893         size as uleb128 instead of 1 or 2 bytes and don't print
30894         anything for dw_val_class_flag.
30895
30896         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
30897         instead of cselib_lookup following by tweaking locs->setting_insn.
30898
30899         PR bootstrap/43596
30900         * cselib.c (cselib_process_insn): Clear cselib_current_insn
30901         even before returning from label, setjmp call or volatile asm
30902         handling.
30903
30904 2010-03-31  Richard Guenther  <rguenther@suse.de>
30905
30906         PR middle-end/43600
30907         * cgraphunit.c (cgraph_output_in_order): Do not allocate
30908         temporary data on stack.
30909
30910 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30911
30912         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
30913         (PUSHSECTION_ASM_OP): Remove.
30914         (POPSECTION_ASM_OP): Remove.
30915         (PUSHSECTION_FORMAT): Remove.
30916         * config/sol2.h (PUSHSECTION_FORMAT): Define.
30917         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
30918         * config/sol2.c (solaris_output_init_fini): Use it.
30919
30920 2010-03-31  Jie Zhang  <jie@codesourcery.com>
30921
30922         PR 43574
30923         * opt-functions.awk (var_type_struct): Use signed char type
30924         for simple variables.
30925
30926 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30927
30928         * config/sol2.c: Include output.h.
30929         (solaris_assemble_visibility): New function.
30930         * config/t-sol2 (sol2.o): Add output.h dependency.
30931         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
30932         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
30933         Redefine.
30934
30935 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
30936
30937         PR target/43580
30938         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
30939         V2SImode or XFmode on PRE_DEC.
30940
30941         PR debug/43557
30942         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
30943         BLKmode.
30944
30945 2010-03-31  Jie Zhang  <jie@codesourcery.com>
30946
30947         PR 43562
30948         * reload.h (caller_save_initialized_p): Declare.
30949         * toplev.c (backend_init_target): Don't call
30950         init_caller_save but set caller_save_initialized_p to false.
30951         * caller-save.c (caller_save_initialized_p): Define.
30952         (init_caller_save): Check caller_save_initialized_p.
30953         * ira.c (ira): Call init_caller_save if flag_caller_saves.
30954
30955 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30956
30957         PR target/39048
30958         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
30959         and soft-fp/t-softfp to tmake_file.
30960         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
30961         (LIBGCC2_TF_CEXT): Define.
30962         (TF_SIZE): Define.
30963
30964 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
30965
30966         PR debug/42977
30967         * cselib.c (n_useless_values): Document handling of debug locs.
30968         (n_useless_debug_values, n_debug_values): New variables.
30969         (new_elt_loc_list): Don't add to debug values, keep count.
30970         (promote_debug_loc): New.
30971         (cselib_reset_table): Zero new variables.
30972         (entry_and_rtx_equal_p): Promote debug locs.
30973         (discard_useless_locs): Increment n_useless_debug_values for
30974         debug values.
30975         (remove_useless_values): Adjust n_useless_values and n_debug_values
30976         with n_useless_debug_values.
30977         (add_mem_for_addr): Promote debug locs.
30978         (cselib_lookup_mem): Likewise.
30979         (cselib_lookup_addr): Renamed to...
30980         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
30981         (cselib_log_lookup): ... this.  Turn into...
30982         (cselib_lookup_addr): ... new wrapper.
30983         (cselib_lookup_from_insn): New.
30984         (cselib_invalidate_regno): Increment n_useless_debug_values for
30985         debug values.
30986         (cselib_invalidate_mem): Likewise.
30987         (cselib_process_insn): Take n_deleted and n_debug_values into
30988         account to guard remove_useless_value call.
30989         (cselib_finish): Zero n_useless_debug_values.
30990         * cselib.h (cselib_lookup_from_insn): Declare.
30991         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
30992         (sched_analyze_2): Likewise.
30993
30994 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
30995
30996         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
30997         functions.
30998         (adjust_mems): Replace narrowing SUBREG of expression containing
30999         just PLUS, MINUS, MULT and ASHIFT of registers and constants
31000         with operations in the narrower mode.
31001
31002         PR debug/43593
31003         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
31004         regs_invalidated_by_call instead all call_used_reg_set registers.
31005
31006 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
31007
31008         PR middle-end/43430
31009         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
31010         pointer comparisons with types_compatible_p.
31011         * tree-vect-stmts.c (vectorizable_call): Same.
31012         (vectorizable_condition): Same.
31013
31014 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31015
31016         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
31017         stack check if the mask would be zero.
31018
31019 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31020             Jack Howarth  <howarth@bromo.med.uc.edu>
31021
31022         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31023         variables TLS.
31024
31025 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
31026
31027         PR other/25232
31028         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
31029         and __unordtf2.
31030         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
31031         Include ___unordxf2 and ___unordtf2.
31032         * config/i386/libgcc-glibc.ver: Do not define inheritance from
31033         GCC_4.4.0 here.
31034
31035 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
31036
31037         * config/lm32/t-lm32: New file.
31038         * config.gcc: Use the above file when targetting lm32.
31039
31040 2010-03-28  Duncan Sands  <baldrick@free.fr>
31041
31042         * Makefile.in (PLUGIN_HEADERS): Add except.h.
31043
31044 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31045
31046         PR middle-end/43431
31047         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
31048         Improve vectorization cost model diagnostic.
31049
31050 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31051
31052         PR middle-end/43436
31053         * tree-vect-data-refs.c (vect_analyze_data_refs): When
31054         compute_data_dependences_for_loop returns false, early exit
31055         and output an extra diagnostic for the failed data reference
31056         analysis.
31057
31058 2010-03-29  Richard Guenther  <rguenther@suse.de>
31059
31060         PR tree-optimization/43560
31061         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
31062         (can_sm_ref_p): Treat stores to readonly locations as trapping.
31063
31064 2010-03-29  Jie Zhang  <jie@codesourcery.com>
31065
31066         PR 43564
31067         * toplev.c (process_options): Set optimization_default_node
31068         and optimization_current_node.
31069         * opts.c (decode_options): Don't set optimization_default_node
31070         and optimization_current_node.
31071
31072 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
31073
31074         * config/rtems.h: Abandon -qrtems_debug.
31075
31076 2010-03-28  Jan Hubicka  <jh@suse.cz>
31077
31078         PR tree-optimization/43505
31079         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
31080         map should not be copied.
31081
31082 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31083
31084         PR middle-end/41674
31085         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
31086         cdtors, set DECL_PRESERVE_P.
31087         * ipa.c (cgraph_externally_visible_p): Return true if declaration
31088         should be preseved.
31089
31090 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
31091
31092         PR tree-optimization/43528
31093         * stor-layout.c (place_field): Check that constant fits into
31094         unsigned HWI when skipping calculation of MS bitfield layout.
31095
31096 2010-03-27  Jan Hubicka  <jh@suse.cz>
31097
31098         PR middle-end/43391
31099         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
31100         notice_global_symbol work.
31101
31102 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
31103
31104         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
31105         instead of dwarf2out_decl.
31106         (struct var_loc_node): Remove section_label field.
31107         (dwarf2out_function_decl): New function.
31108         (dwarf2out_var_location): Don't set section_label field.
31109         (dwarf2out_begin_function): Don't empty decl_loc_table here.
31110
31111 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
31112
31113         PR tree-optimization/43544
31114         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
31115         First argument for builtin vectorized function hook is now a
31116         tree to be able to distinguish between machine specific and
31117         standard builtins.
31118         * targhooks.c (default_builtin_vectorized_function): Ditto.
31119         * targhooks.h (default_builtin_vectorized_function): Ditto.
31120         * target.h (struct gcc_target): Ditto.
31121         * tree-vect-stmts.c (vectorizable_function): Ditto.
31122         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
31123         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
31124         Ditto.
31125
31126 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
31127
31128         PR c/43381
31129         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
31130         nested binding iff it is a FUNCTION_DECL.
31131         (store_parm_decls_newstyle): Pass nested=true to bind for
31132         FUNCTION_DECLs amongst parameters.
31133
31134 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31135
31136         * var-tracking.c (vt_expand_loc_callback): Don't run
31137         cselib_expand_value_rtx_cb in dummy mode if
31138         cselib_dummy_expand_value_rtx_cb returned false.
31139
31140         * var-tracking.c (emit_note_insn_var_location): For one part
31141         notes with offset 0, don't add EXPR_LIST around the location.
31142         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
31143         add_location_or_const_value_attribute): Adjust for that change.
31144
31145         PR debug/43540
31146         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
31147         into first operand and location into second.
31148         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
31149         dw_cfi_oprnd_loc for DW_CFA_expression.
31150         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
31151         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
31152         assume first argument is regnum and second argument is location.
31153
31154 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31155
31156         PR target/42113
31157         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
31158         of scratch register to DImode.  Split to DImode comparison operator.
31159         Use SImode subreg of scratch register in the multiplication.
31160         (*cmp_sadd_sidi): Ditto.
31161         (*cmp_ssub_si): Ditto.
31162         (*cmp_ssub_sidi): Ditto.
31163
31164 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31165
31166         PR target/43524
31167         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
31168         Remove invalid assert and wrong comment.
31169
31170 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31171
31172         PR debug/43516
31173         * flags.h (final_insns_dump_p): New extern.
31174         * final.c (final_insns_dump_p): New variable.
31175         (rest_of_clean_state): Set it before -fdump-final-insns=
31176         dumping, clear afterwards.
31177         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
31178         MEM_ALIAS_SET on MEMs.
31179
31180 2010-03-26  David S. Miller  <davem@davemloft.net>
31181
31182         * configure.ac: Fix sparc GOTDATA_OP bug check.
31183         * configure: Rebuild.
31184
31185 2010-03-26  Alan Modra  <amodra@gmail.com>
31186
31187         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
31188
31189 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31190
31191         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
31192         TLS_SECTION_ASM_FLAG.
31193
31194 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
31195
31196         PR bootstrap/43511
31197         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
31198         Clear first_function_block_is_cold.
31199
31200         PR c/43385
31201         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
31202         argument if the argument is truth_value_p.
31203
31204 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31205
31206         * config/rs6000/constraints.md: Update copyright year for my changes.
31207
31208         PR target/43484
31209         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
31210         used in reg+reg addressing, swap registers.
31211
31212 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
31213
31214         PR debug/43293
31215         * target.h (struct gcc_target): Add code_end hook.
31216         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
31217         if not yet defined.
31218         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
31219         * toplev.c (compile_file): Call targetm.asm_out.code_end
31220         hook before unwind info/debug info output.
31221         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
31222         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
31223         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31224         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
31225         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31226         * config/i386/i386.c (ix86_file_end): Renamed to...
31227         (ix86_code_end): ... this.  Make static.  Don't call
31228         file_end_indicate_exec_stack.  Emit unwind info using
31229         final_start_function/final_end_function.
31230         (darwin_x86_file_end): Remove.
31231         (TARGET_ASM_CODE_END): Define.
31232         * config/i386/i386.h (TARGET_ASM_FILE_END,
31233         NEED_INDICATE_EXEC_STACK): Don't define.
31234         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
31235         (TARGET_ASM_FILE_END): Define to darwin_file_end.
31236         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
31237         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
31238
31239         PR target/43498
31240         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
31241         at the beginning and final_end_function at the end.
31242         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
31243
31244 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31245
31246         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
31247         and Sun as TLS syntax.
31248         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
31249         * configure: Regenerate.
31250         * config.in: Regenerate.
31251         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
31252         (default_elf_asm_named_section): Use it.
31253         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
31254         (i386_output_dwarf_dtprel): Likewise.
31255         (output_addr_const_extra): Likewise.
31256         (output_pic_addr_const): Lowercase @GOTTPOFF.
31257         (output_addr_const_extra): Likewise.
31258         (output_pic_addr_const): Lowercase @GOTNTPOFF.
31259         (output_addr_const_extra): Likewise.
31260         (output_pic_addr_const): Lowercase @INDNTPOFF.
31261         (output_addr_const_extra): Likewise.
31262         (output_pic_addr_const): Lowercase @NTPOFF.
31263         (output_addr_const_extra): Likewise.
31264         (output_pic_addr_const): Lowercase @TPOFF.
31265         (output_addr_const_extra): Likewise.
31266         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
31267         (*tls_global_dynamic_64): Likewise.
31268         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
31269         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
31270
31271         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
31272         (ASM_OUTPUT_TLS_COMMON): Use it.
31273         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
31274
31275         PR target/38118
31276         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
31277         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
31278         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
31279         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
31280         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
31281         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
31282
31283 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31284
31285         * config/i386/i386.c (override_options): Don't accept
31286         -mtls-dialect=sun any longer.
31287         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
31288         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
31289         (*tls_local_dynamic_base_32_sun): Likewise.
31290         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
31291
31292 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
31293
31294         PR debug/43508
31295         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31296         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
31297
31298         PR debug/43479
31299         * ira.c (adjust_cleared_regs): New function.
31300         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
31301
31302         PR debug/19192
31303         PR debug/43479
31304         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
31305         from gimple_block.
31306         * expr.c (expand_expr_real): Restore previous
31307         curr_insn_source_location and curr_insn_block after
31308         expand_expr_real_1 call.
31309         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
31310         instead of expand_expr_real_1.
31311
31312 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
31313
31314         PR rtl-optimization/43413
31315         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
31316         hard regs too.
31317
31318 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
31319
31320         PR target/43348
31321         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
31322         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
31323
31324 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
31325
31326         * config/i386/i386.c (ix86_target_string): Add -mfma.
31327         Fix a typo in comment.
31328
31329 2010-03-22  Mike Stump  <mikestump@comcast.net>
31330
31331         PR target/23071
31332         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
31333         Don't overly align based upon packed packed fields.
31334
31335 2010-03-22  Jason Merrill  <jason@redhat.com>
31336
31337         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
31338         Use () rather than [], and move before the element type.
31339
31340 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31341
31342         * doc/configfiles.texi (Configuration Files): Removed
31343         fixinc/Makefile*, intl/Makefile.*.
31344         * doc/makefile.texi: Fixed markup. Abstract from version
31345         control system used.
31346         (Makefile): Removed obsolete java/parse.y example.
31347         * doc/sourcebuild.texi: Likewise.
31348         (Top Level): Added config, gnattools, libdecnumber, libgcc,
31349         libgomp, libssp.  Removed fastjar.
31350         (Miscellaneous Docs): Clarify location.
31351         Added COPYING3, COPYING3.LIB.
31352         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
31353
31354 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31355
31356         PR target/38085
31357         * config/i386/i386.c (x86_function_profiler)
31358         [!NO_PROFILE_COUNTERS]: Fix typo.
31359         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
31360         instead of callq.
31361
31362 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
31363             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31364
31365         * doc/sourcebuild.texi (Test Directives): Split into six
31366         subsections, with most of the current text in new subsections
31367         Directives, Selectors, and Final Actions.
31368         (Directives): Split list of test directives into multiple
31369         subsubsections.
31370         (Selectors): Describe use and syntax of selectors.
31371         (Effective-Target Keywords): Describe all existing keywords.
31372         (Add Options): Describe features for dg-add-options.
31373         (Require Support): Describe variants of dg-require-support.
31374         (Final Actions): Describe commands to use in dg-final.
31375
31376 2010-03-22  Michael Matz  <matz@suse.de>
31377
31378         PR middle-end/43475
31379         * recog.c (validate_replace_rtx_group): Replace also in
31380         REG_EQUAL and REG_EQUIV notes.
31381
31382 2010-03-22  Richard Guenther  <rguenther@suse.de>
31383
31384         PR tree-optimization/43390
31385         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
31386         sure vector extracts are type correct.
31387
31388 2010-03-22  Richard Guenther  <rguenther@suse.de>
31389
31390         PR middle-end/40106
31391         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
31392         x * sqrt (x) even when optimizing for size if the target
31393         has native support for sqrt.
31394
31395 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
31396
31397         * varasm.c (make_decl_rtl_for_debug): Also clear
31398         flag_mudflap for the duration of make_decl_rtl call.
31399
31400         PR debug/43443
31401         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
31402         locs from preserved VALUEs.
31403
31404 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31405
31406         PR middle-end/42718
31407         * pa.md (movmemsi): Set align to one if zero.
31408         (movmemdi): Likewise.
31409
31410 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
31411
31412         PR target/42321
31413         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
31414         with their corresponding prologue pushes.
31415
31416 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
31417
31418         PR target/43156
31419         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
31420         at the begining or end.
31421         (spu_expand_epilogue): Likewise.
31422
31423 2010-03-20  Richard Guenther  <rguenther@suse.de>
31424
31425         PR rtl-optimization/43438
31426         * combine.c (make_extraction): Properly zero-/sign-extend an
31427         extraction of the low part of a CONST_INT.  Also handle
31428         CONST_DOUBLE.
31429
31430 2010-03-19  Mike Stump  <mikestump@comcast.net>
31431
31432         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
31433         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
31434         (override_options): Use SUBTARGET32_DEFAULT_CPU.
31435
31436 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
31437
31438         PR c/43211
31439         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
31440         an error.
31441
31442 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
31443
31444         PR rtl-optimization/42258
31445         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
31446         use that may match DEF.
31447
31448         PR target/40697
31449         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
31450         the cost of loading the constant rather than assuming
31451         COSTS_N_INSNS (1).
31452         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
31453         outer code is AND, do the same tests as the andsi3 expander and
31454         return COSTS_N_INSNS (1) if and is cheap.
31455
31456         * optabs.c (avoid_expensive_constant): Fix formatting.
31457
31458 2010-03-19  Michael Matz  <matz@suse.de>
31459
31460         PR c++/43116
31461         * attribs.c (decl_attributes): When rebuilding a function pointer
31462         type use the same qualifiers as the original pointer type.
31463
31464 2010-03-19  Martin Jambor  <mjambor@suse.cz>
31465
31466         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
31467         and is_gimple_ip_invariant_address.
31468
31469 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31470
31471         Revert
31472         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31473
31474         * config/arm/arm.c (arm_override_options): Turn off
31475         flag_dwarf2_cfi_asm for AAPCS variants.
31476
31477 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31478
31479         PR target/43399
31480         * config/arm/arm.c (emit_multi_reg_push): Update comments.
31481         Use PRE_MODIFY instead of PRE_DEC.
31482         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
31483         (vfp_emit_fstmd): Likewise.
31484
31485 2010-03-19  Michael Matz  <matz@suse.de>
31486
31487         PR target/43305
31488         * builtins.c (expand_builtin_interclass_mathfn,
31489         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
31490         if that fails.
31491
31492 2010-03-19  Richard Guenther  <rguenther@suse.de>
31493
31494         PR tree-optimization/43415
31495         * tree-ssa-pre.c (phi_translate): Split out worker to ...
31496         (phi_translate_1): ... this.
31497         (phi_translate): Move all caching here.  Cache all NARY
31498         and REFERENCE translations.
31499
31500 2010-03-19  David S. Miller  <davem@davemloft.net>
31501
31502         With help from Eric Botcazou.
31503         * config/sparc/sparc.c: Include dwarf2out.h.
31504         (emit_pic_helper): Delete.
31505         (pic_helper_symbol_name): Delete.
31506         (pic_helper_emitted_p): Delete.
31507         (pic_helper_needed): New.
31508         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
31509         (get_pc_thunk_name): New.
31510         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
31511         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
31512         Set pic_helper_needed to true.  Don't call emit_pic_helper.
31513         (sparc_expand_prologue): Update load_pic_register call.
31514         (sparc_output_mi_thunk): Likewise.
31515         (sparc_file_end): Emit a hidden comdat symbol for the PIC
31516         thunk if possible.  Output CFI information as needed.
31517
31518 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
31519             Jack Howarth  <howarth@bromo.med.uc.edu>
31520
31521         PR target/36399
31522         * config/i386/i386.h: Fix ABI on darwin x86-32.
31523
31524 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
31525
31526         * tree.h: Declare make_decl_rtl_for_debug.
31527         * varasm.c (make_decl_rtl_for_debug): New.
31528         * dwarf2out.c (rtl_for_decl_location): Call it.
31529         * cfgexpand.c (expand_debug_expr): Call it.
31530
31531 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
31532
31533         PR bootstrap/43399
31534         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
31535         mem_mode.
31536
31537         PR bootstrap/43403
31538         * var-tracking.c (vt_init_cfa_base): Do nothing if
31539         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
31540
31541 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
31542
31543         PR debug/42873
31544         * var-tracking.c (canonicalize_vars_star): New.
31545         (dataflow_post_merge_adjust): Use it.
31546
31547 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
31548
31549         PR debug/43058
31550         * var-tracking.c (non_suitable_const): New function.
31551         (add_uses): For DEBUG_INSNs with constants, don't record any
31552         value, instead just the constant value itself.
31553         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
31554         is not VAR_LOC_UNKNOWN_P, set var to the constant.
31555         (emit_notes_in_bb): Likewise.
31556         (emit_note_insn_var_location): For onepart variables if
31557         cur_loc is a VOIDmode constant, use DECL_MODE.
31558
31559 2010-03-18  Martin Jambor  <mjambor@suse.cz>
31560
31561         PR middle-end/42450
31562         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
31563         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
31564         all non-clones.  Moved call redirection...
31565         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
31566         (cgraph_materialize_all_clones): Dispose of all
31567         combined_args_to_skip bitmaps.
31568         (verify_cgraph_node): Do not check for edges pointing to wrong
31569         nodes in inline clones.
31570         * tree-inline.c (copy_bb): Call
31571         cgraph_redirect_edge_call_stmt_to_callee.
31572         * ipa.c (cgraph_remove_unreachable_nodes): Call
31573         cgraph_node_remove_callees even when there are used clones.
31574
31575 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
31576
31577         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
31578
31579 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
31580
31581         PR target/43383
31582         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
31583         for 32bit.
31584
31585 2010-03-18  Michael Matz  <matz@suse.de>
31586
31587         PR middle-end/43419
31588         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
31589         into sqrt(x) if we need to preserve signed zeros.
31590
31591 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
31592             Eric Botcazou  <ebotcazou@adacore.com>
31593
31594         PR rtl-optimization/43360
31595         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
31596         note if we don't know its invariant status.
31597
31598 2010-03-18  Michael Matz  <matz@suse.de>
31599
31600         PR tree-optimization/43402
31601         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
31602         PHI chains of ssa names registered for update.
31603
31604 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
31605
31606         PR target/42427
31607         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
31608         non-offsettable and pre_modify update addressing.
31609         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
31610         and "2" alternatives "#".
31611         (*movdd_softfloat32): Make all alternatives "#";
31612         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
31613         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
31614         (*movdf_softfloat32): Make all alternatives "#";
31615         (movdi): Use the new DIFD mode iterator to create a common splitter
31616         for movdi, movdf and movdd patterns.
31617
31618 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
31619
31620         * common.opt (dumpdir): Remove redundant tab.
31621
31622 2010-03-17  Martin Jambor  <mjambor@suse.cz>
31623
31624         PR tree-optimization/43347
31625         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
31626         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
31627
31628 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
31629
31630         PR rtl-optimization/42216
31631         * regrename.c (create_new_chain): New function, broken out from...
31632         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
31633         appending a use to an empty chain.
31634         (build_def_use): Remove previous changes that convert OP_INOUT to
31635         OP_OUT operands; instead detect the case where an OP_INOUT operand
31636         uses a previously untracked register and create an empty chain for it.
31637
31638 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31639
31640         * doc/extend.texi (Function Attributes): Rewrite unfinished
31641         sentence in ms_abi documentation.
31642
31643 2010-03-17  Alan Modra  <amodra@gmail.com>
31644
31645         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
31646         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
31647         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
31648         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
31649
31650 2010-03-16  Richard Henderson  <rth@redhat.com>
31651
31652         PR middle-end/43365
31653         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
31654         (lower_try_finally): Save and restore eh_seq around the expansion
31655         of the try-finally.
31656
31657 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
31658
31659         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
31660         statements before splitting block.
31661
31662 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31663
31664         * doc/sourcebuild.texi (Testsuites): Fix markup.
31665         Use pathnames relative to gcc/testsuite.
31666         (Test Directives): Move description of how timeout is determined.
31667         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
31668         (C Tests): Correct gcc.misc-tests directory.
31669         Framework tests now live in gcc.test-framework.
31670
31671 2010-03-16  Richard Guenther  <rguenther@suse.de>
31672
31673         PR middle-end/43379
31674         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
31675         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
31676
31677 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
31678             Alexandre Oliva  <aoliva@redhat.com>
31679
31680         PR tree-optimization/42917
31681         * lambda-code.c (remove_iv): Skip debug statements.
31682         (lambda_loopnest_to_gcc_loopnest): Likewise.
31683         (not_interesting_stmt): Debug statements are not interesting.
31684
31685 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
31686
31687         PR debug/43051
31688         PR debug/43092
31689         * cselib.c (cselib_preserve_constants,
31690         cfa_base_preserved_val): New static variables.
31691         (preserve_only_constants): New function.
31692         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
31693         clear its REG_VALUES.  If cselib_preserve_constants, don't
31694         empty the whole hash table, but preserve there VALUEs with constants,
31695         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
31696         (cselib_preserve_cfa_base_value): New function.
31697         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
31698         (cselib_init): Change argument to int bitfield.  Set
31699         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
31700         is in it.
31701         (cselib_finish): Clear cselib_preserve_constants and
31702         cfa_base_preserved_val.
31703         * cselib.h (enum cselib_record_what): New enum.
31704         (cselib_init): Change argument to int.
31705         (cselib_preserve_cfa_base_value): New prototype.
31706         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
31707         * dse.c (dse_step1): Likewise.
31708         * cfgcleanup.c (thread_jump): Likewise.
31709         * sched-deps.c (sched_analyze): Likewise.
31710         * gcse.c (local_cprop_pass): Likewise.
31711         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
31712         If FN is non-NULL, call the callback always and whenever it returns
31713         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
31714         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
31715         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
31716         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
31717         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
31718         * var-tracking.c: Include recog.h.
31719         (bb_stack_adjust_offset): Remove.
31720         (vt_stack_adjustments): Don't call it, instead just gather the
31721         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
31722         (adjust_stack_reference): Remove.
31723         (compute_cfa_pointer): New function.
31724         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
31725         (struct adjust_mem_data): New type.
31726         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
31727         functions.
31728         (get_address_mode): New function.
31729         (replace_expr_with_values): Use it.
31730         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
31731         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
31732         (adjust_sets): Remove.
31733         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
31734         Use get_address_mode.
31735         (get_adjusted_src): Remove.
31736         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
31737         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
31738         (add_with_sets): Don't call adjust_sets.
31739         (fp_setter, vt_init_cfa_base): New functions.
31740         (vt_initialize): Change return type to bool.  Move most of pool etc.
31741         initialization to the beginning of the function from end.  Pass
31742         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
31743         If !frame_pointer_needed, call vt_stack_adjustment before mos
31744         vector is filled, call vt_init_cfa_base if argp/framep has been
31745         eliminated to sp.  If frame_pointer_needed and argp/framep has
31746         been eliminated to hard frame pointer, set
31747         hard_frame_pointer_adjustment and call vt_init_cfa_base after
31748         encountering fp setter in the prologue.  For MO_ADJUST, call
31749         log_op_type before pusing the op into mos vector, not afterwards.
31750         Call adjust_insn before cselib_process_insn/add_with_sets,
31751         call cancel_changes (0) afterwards.
31752         (variable_tracking_main_1): Adjust for vt_initialize calling
31753         vt_stack_adjustments and returning whether it succeeded or not.
31754
31755 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
31756
31757         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
31758         debug statements.
31759
31760 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
31761
31762         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
31763         has been set.
31764         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
31765         drap_reg has not been set.
31766
31767 2010-03-15  Michael Matz  <matz@suse.de>
31768
31769         PR middle-end/43300
31770         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
31771         use it to expand block copies.
31772         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
31773         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
31774         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
31775
31776 2010-03-15  Richard Guenther  <rguenther@suse.de>
31777
31778         PR tree-optimization/43367
31779         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
31780         elimination check.
31781
31782 2010-03-15  Richard Guenther  <rguenther@suse.de>
31783
31784         PR tree-optimization/43317
31785         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
31786
31787 2010-03-15  Martin Jambor  <mjambor@suse.cz>
31788
31789         PR tree-optimization/43141
31790         * tree-sra.c (create_abstract_origin): New function.
31791         (modify_function): Call create_abstract_origin.
31792
31793 2010-03-15  Chris Demetriou  <cgd@google.com>
31794
31795         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
31796         wasn't copied.
31797
31798 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31799
31800         PR middle-end/43354
31801         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
31802         call insert_out_of_ssa_copy for default definitions.
31803
31804 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31805
31806         * graphite-clast-to-gimple.c (my_long_long): Defined.
31807         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
31808         * graphite-sese-to-poly.c (my_long_long): Defined.
31809         (scop_ivs_can_be_represented): Use it.
31810
31811 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31812
31813         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
31814         graphite-max-bbs-per-function, and loop-block-tile-size.
31815         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
31816         with "maximum".
31817         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
31818
31819 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31820
31821         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
31822         forward declaration.
31823         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
31824         (add_upper_bounds_from_estimated_nit): New.
31825         (build_loop_iteration_domains): Use it.
31826
31827 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31828
31829         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
31830
31831 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31832
31833         PR middle-end/43306
31834         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
31835         should be an INTEGER_CST.  Also handle CASE_CONVERT.
31836
31837 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31838
31839         * graphite.c (graphite_initialize): To bound the number of bbs per
31840         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
31841         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
31842         * doc/invoke.texi: Document it.
31843
31844 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31845
31846         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
31847         * graphite-sese-to-poly.h (build_poly_scop): Same.
31848
31849 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
31850
31851         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
31852         the number of parameters in the scop.  Use as an upper bound
31853         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
31854         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
31855         * doc/invoke.texi: Document it.
31856
31857 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
31858
31859         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
31860         * doc/c-tree.texi: Remove.
31861         * doc/generic.texi: Merge c-tree.texi here.
31862         * doc/gccint.texi (Trees): Remove menu entry.
31863         (c-tree.texi): Remove @include.
31864         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
31865         * doc/languages.texi (Reading RTL): Ditto.
31866
31867 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
31868
31869         PR target/42869
31870         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
31871
31872 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31873
31874         PR middle-end/42431
31875         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
31876         code added to work around reload clobbering CONST insns.
31877
31878 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
31879
31880         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
31881         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
31882         (cselib_preserve_only_values): Remove retain argument, don't
31883         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
31884         * cselib.h (cselib_preserve_only_values): Remove retain argument.
31885         * var-tracking.c (micro_operation): Move insn field before union.
31886         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
31887         (struct variable_tracking_info_def): Remove n_mos field, change
31888         mos into a vector of micro_operations.
31889         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
31890         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
31891         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
31892         changing into a vector.
31893         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
31894         come before all other uops generated by add_stores.
31895         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
31896         argument removal.
31897         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
31898         a vector.  Run just one pass over the bbs instead of separate counting
31899         and computation phase.
31900         (vt_finalize): Free VTI (bb)->mos vector instead of array.
31901
31902         PR debug/43329
31903         * tree-inline.c (remap_decls): Put old_var rather than origin_var
31904         into *nonlocalized_list vector.
31905         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
31906         even if origin is non-NULL.
31907         (gen_variable_die): Likewise.
31908         (process_scope_var): Don't change origin.
31909         (gen_decl_die): Likewise.
31910         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
31911         before adding new edges instead of after it, fix moving over
31912         debug stmts.
31913
31914 2010-03-11  David S. Miller  <davem@davemloft.net>
31915
31916         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
31917         of four.
31918         * configure: Rebuild.
31919
31920 2010-03-11  Martin Jambor  <mjambor@suse.cz>
31921
31922         PR tree-optimization/43257
31923         * tree.c (assign_assembler_name_if_neeeded): New function.
31924         (free_lang_data_in_cgraph): Assembler name assignment moved to the
31925         above new function.
31926         * tree.h (assign_assembler_name_if_neeeded): Declare.
31927         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
31928         the function if needed.
31929
31930 2010-03-11  Chris Demetriou  <cgd@google.com>
31931
31932         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
31933         include/stdint-gcc.h, and include/stdint.h world-readable.
31934
31935 2010-03-11  Richard Guenther  <rguenther@suse.de>
31936
31937         PR tree-optimization/43255
31938         * tree-vrp.c (process_assert_insertions_for): Do not insert
31939         asserts for trivial conditions.
31940
31941 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31942
31943         PR tree-optimization/43280
31944         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
31945         generation.  Move calculation of size out of the if branch.
31946         (find_bswap): Modify compare number generation.
31947
31948 2010-03-11  Richard Guenther  <rguenther@suse.de>
31949
31950         PR lto/43200
31951         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
31952         (input_gimple_stmt): Fixup handled component types during
31953         operand read.  Also fix up decls in ADDR_EXPRs.
31954
31955 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
31956
31957         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
31958         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
31959
31960 2010-03-10  Jan Hubicka  <jh@suse.cz>
31961
31962         PR c/43288
31963         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
31964         * varasm.c (get_variable_section): Don't do that here...
31965         (make_decl_rtl): ... and here.
31966         (do_assemble_alias): Produce decl RTL.
31967         (assemble_alias): Likewise.
31968
31969 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
31970
31971         PR debug/43290
31972         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
31973         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
31974         of fde->vdrap_reg.
31975         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
31976         (based_loc_descr): Only express drap or vdrap regno based expressions
31977         using DW_OP_fbreg when not optimizing.
31978         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
31979         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
31980         REG_CFA_SET_VDRAP note.
31981
31982 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
31983
31984         PR tree-optimization/43236
31985         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
31986         error in calculation of base address in reverse iteration case.
31987         (generate_builtin): Take number of latch executions if the statement
31988         is in the latch.
31989
31990 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
31991
31992         PR middle-end/42859
31993         * tree-eh.c: Include pointer-set.h.
31994         (lower_eh_dispatch): Filter out duplicate case labels and
31995         remove the unneeded edge when the label is unused.  Return
31996         true when some edges are removed.
31997         (execute_lower_eh_dispatch): When any lowering resulted in
31998         removing an edge, also delete unreachable blocks.
31999
32000 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32001
32002         PR bootstrap/43287
32003         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
32004         UNSPEC_MACHOPIC_OFFSET.
32005
32006 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
32007
32008         PR target/43294
32009         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
32010         (m68k_delegitimize_address): New function.
32011
32012 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
32013
32014         PR debug/43299
32015         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
32016
32017         PR debug/43299
32018         * var-tracking.c (adjust_sets): New function.
32019         (count_with_sets, add_with_sets): Use it.
32020         (get_adjusted_src): New inline function.
32021         (add_stores): Use it.
32022
32023         PR debug/43304
32024         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
32025         call cselib_dummy_expand_value_rtx_cb instead of
32026         cselib_expand_value_rtx_cb.
32027
32028         PR debug/43293
32029         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
32030         * config/i386/i386.c: Include debug.h and dwarf2out.h.
32031         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
32032         and .cfi_endproc around the pic thunks.
32033         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
32034         all queued unwind info register saves are saved before the call.
32035         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
32036         considered as sp-=4 for unwind info and the pop as sp+=4 which
32037         also clobbers dest, but doesn't actually restore it.
32038
32039         PR debug/43290
32040         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
32041         RTX_FRAME_RELATED_P.
32042
32043 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32044
32045         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
32046         whitespaces in output template.
32047
32048 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32049
32050         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
32051         out array boundary.
32052
32053 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32054
32055         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
32056         builtins.exp in a separate job.
32057
32058 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32059
32060         * graphite-sese-to-poly.c (add_param_constraints): Use
32061         lower_bound_in_type and upper_bound_in_type.
32062
32063 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32064
32065         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
32066         instead of unsigned_type_node.
32067
32068 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32069             Reza Yazdani  <reza.yazdani@amd.com>
32070
32071         PR middle-end/43065
32072         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
32073         on pointer type parameters.
32074
32075 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32076
32077         PR middle-end/42644
32078         PR middle-end/42130
32079         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
32080         handle conversions from pointer to integers.
32081         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
32082         induction variable, to be able to work with code generated by CLooG.
32083         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
32084         (build_poly_scop): Bail out if we cannot codegen a loop.
32085
32086 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32087
32088         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
32089         code generation with gloog_error.
32090
32091 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32092
32093         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
32094         Call fold_convert on all the returned values.
32095         (expand_scalar_variables_expr): Pass to
32096         expand_scalar_variables_ssa_name the type of the resulting expression.
32097
32098 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32099
32100         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
32101         ppl_min_for_le_pointset.
32102         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
32103         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
32104
32105 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32106
32107         * graphite-dependences.c (map_into_dep_poly): Removed.
32108         (dependence_polyhedron_1): Use combine_context_id_scat.
32109
32110 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32111
32112         * graphite-poly.h (struct poly_scattering): Add layout documentation.
32113         (struct poly_bb): Same.
32114         (combine_context_id_scat): New.
32115
32116 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32117
32118         PR middle-end/42326
32119         * sese.c (name_defined_in_loop_p): Return false for default
32120         definitions.
32121
32122 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32123
32124         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
32125         and clean up the logic.
32126
32127 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32128
32129         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
32130         early return.
32131
32132 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32133
32134         * var-tracking.c (remove_cselib_value_chains): Define only for
32135         ENABLE_CHECKING.
32136         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
32137         delete_slot_part, emit_notes_for_differences_1): Don't call
32138         remove_cselib_value_chains here.
32139         (set_slot_part, emit_notes_for_differences_2): Don't call
32140         add_cselib_value_chains here.
32141         (preserved_values): New vector.
32142         (preserve_value): New function.
32143         (add_uses, add_stores, vt_add_function_parameters): Use it
32144         instead of cselib_preserve_value.
32145         (changed_values_stack): New vector.
32146         (check_changed_vars_0): New function.
32147         (check_changed_vars_1, check_changed_vars_2): Use it.
32148         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
32149         changed_values_stack VALUEs.
32150         (vt_emit_notes): For all preserved_values call
32151         add_cselib_value_chains.  If ENABLE_CHECKING call
32152         remove_cselib_value_chains before verifying value_chains is empty.
32153         Initialize and free changed_values_stack.
32154         (vt_initialize): Initialize preserved_values.
32155         (vt_finalize): Free preserved_values.
32156
32157 2010-03-08  Richard Guenther  <rguenther@suse.de>
32158
32159         PR tree-optimization/43269
32160         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
32161         region detection.
32162
32163 2010-03-08  Martin Jambor  <mjambor@suse.cz>
32164
32165         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
32166         (ipa_is_param_called): Removed.
32167         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
32168         (ipa_print_node_params): Do not print the called flag.
32169         (ipa_write_node_info): Do not stream the called flag.
32170         (ipa_read_node_info): Likewise.
32171
32172 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
32173
32174         PR debug/43176
32175         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
32176         * cselib.c (struct expand_value_data): Add dummy field.
32177         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
32178         dummy to false.
32179         (cselib_dummy_expand_value_rtx_cb): New function.
32180         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
32181         any rtl.
32182         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
32183         * var-tracking.c: Include pointer-set.h.
32184         (variable): Change n_var_parts to char from int.  Add
32185         cur_loc_changed and in_changed_variables fields.
32186         (variable_canonicalize): Remove.
32187         (shared_var_p): New inline function.
32188         (unshare_variable): Maintain cur_loc_changed and
32189         in_changed_variables fields.  If var was in changed_variables,
32190         replace it there with new_var.  Just copy cur_loc instead of
32191         resetting it to something else.
32192         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
32193         (dataflow_set_union): Don't call variable_canonicalize.
32194         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
32195         of their DEBUG_EXPR_TREE_DECLs.
32196         (canonicalize_loc_order_check): Verify that cur_loc is NULL
32197         and in_changed_variables and cur_loc_changed is false.
32198         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
32199         and cur_loc_changed.  Don't update cur_loc here.
32200         (variable_merge_over_src): Don't call variable_canonicalize.
32201         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
32202         removing loc that is equal to cur_loc, clear cur_loc,
32203         set cur_loc_changed and ensure variable_was_changed is called.
32204         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
32205         compare pointers in cur_loc check, if it is equal to loc,
32206         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
32207         (variable_different_p): Remove compare_current_location argument,
32208         don't compare cur_loc.
32209         (dataflow_set_different_1): Adjust variable_different_p caller.
32210         (variable_was_changed): If dv had some var in changed_variables
32211         already, reset in_changed_variables flag for it and propagate
32212         cur_loc_changed over to the new variable.  On empty var
32213         always set cur_loc_changed.  Set in_changed_variables on whatever
32214         var is added to changed_variables.
32215         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
32216         Use shared_var_p.  When removing loc that is equal to cur_loc,
32217         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
32218         end, don't set it to something else, just call variable_was_changed.
32219         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
32220         loc being removed, clear cur_loc and set cur_loc_changed.
32221         Set cur_loc_changed if all locations have been removed.
32222         (struct expand_loc_callback_data): New type.
32223         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
32224         allocated.  Always create SUBREGs if simplify_subreg failed.
32225         Prefer to use cur_loc, when that fails and still in
32226         changed_variables (and seen first time) recompute it.  Set
32227         cur_loc_changed of variables which had to change cur_loc and
32228         compute elcd->cur_loc_changed if any of the subexpressions used
32229         had to change cur_loc.
32230         (vt_expand_loc): Adjust to pass arguments in
32231         expand_loc_callback_data structure.
32232         (vt_expand_loc_dummy): New function.
32233         (emitted_notes): New variable.
32234         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
32235         that weren't used for any other decl in current
32236         emit_notes_for_changes call call vt_expand_loc_dummy to update
32237         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
32238         first loc_chain location if NULL before.  Always use just
32239         cur_loc instead of first loc_chain location.  When cur_loc_changed
32240         is false, when not --enable-checking=rtl just don't emit any note.
32241         When rtl checking, compute the note and assert it is the same
32242         as previous note.  Clear cur_loc_changed and in_changed_variables
32243         at the end before removing from changed_variables.
32244         (check_changed_vars_3): New function.
32245         (emit_notes_for_changes): Traverse changed_vars to call
32246         check_changed_vars_3 on each changed var.
32247         (emit_notes_for_differences_1): Clear cur_loc_changed and
32248         in_changed_variables.  Recompute cur_loc of new_var.
32249         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
32250         (vt_emit_notes): Initialize and destroy emitted_notes.
32251
32252 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
32253
32254         PR rtl-optimization/42220
32255         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
32256         Use verify_reg_tracked to determine if we should use OP_OUT rather
32257         than OP_INOUT.
32258         (build_def_use): If we see an in-out operand for a register that we
32259         know nothing about, treat is an output if possible, fail the block if
32260         not.
32261
32262 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32263
32264         PR debug/42897
32265         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
32266         permanently.
32267
32268 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32269
32270         PR debug/42897
32271         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
32272         uses of relevant DEFs that are dead outside the loop too.
32273
32274 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32275
32276         * var-tracking.c (dataflow_set_merge): Swap src and src2.
32277         Reverted:
32278         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
32279         PR debug/41371
32280         * var-tracking.c (values_to_unmark): New variable.
32281         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32282         values_to_unmark vector.  Moved body to...
32283         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
32284         instead queue it into values_to_unmark vector.
32285         (vt_find_locations): Free values_to_unmark vector.
32286
32287 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
32288
32289         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
32290         (site.exp): Export them when plugins are enabled.
32291
32292 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
32293
32294         PR middle-end/42326
32295         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
32296         that contain scevs.
32297         (chrec_fold_multiply): Same.
32298
32299 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
32300
32301         PR c/43248
32302         * c-decl.c (build_compound_literal): Return early if init is
32303         an error_mark_node.
32304
32305 2010-03-04  Martin Jambor  <mjambor@suse.cz>
32306
32307         PR tree-optimization/43164
32308         PR tree-optimization/43191
32309         * tree-sra.c (type_consists_of_records_p): Reject records with
32310         zero-size bit-fields at the end.
32311
32312 2010-03-04  Mike Stump  <mikestump@comcast.net>
32313
32314         * Makefile.in (TAGS): Remove *.y.
32315
32316 2010-03-04  Richard Guenther  <rguenther@suse.de>
32317
32318         PR tree-optimization/40761
32319         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
32320         in reverse order.
32321         (my_rev_post_order_compute): New function.
32322         (init_pre): Call it.
32323
32324 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
32325
32326         PR middle-end/43209
32327         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
32328         decrease the cost of an IV candidate when the cost is infinite.
32329
32330 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32331
32332         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
32333         Use '3DNow!' for the extension of that name, ensure normal space
32334         after the string.
32335         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
32336
32337 2010-03-03  Jeff Law  <law@redhat.com>
32338
32339         * PR middle-end/32693
32340         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
32341         than gen_rtx_SUBREG.
32342         (extract_bit_field_1): Likewise.
32343
32344 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
32345
32346         * doc/sourcebuild.texi (Test directives): Document that arguments
32347         include-opts and exclude-opts are now optional for dg-skip-if,
32348         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
32349
32350 2010-03-03  Jason Merrill  <jason@redhat.com>
32351
32352         PR c++/12909
32353         * cgraph.h (varpool_node): Add extra_name field.
32354         * varpool.c (varpool_extra_name_alias): New.
32355         (varpool_assemble_decl): Emit extra name aliases.
32356         (varpool_mark_needed_node): Look past an extra name alias.
32357         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
32358         * lto-streamer-in.c (lto_input_tree): Read it.
32359         * lto-streamer-out.c (output_unreferenced_globals): Write it.
32360
32361 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
32362
32363         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
32364         (sparc*-*-solaris2*): ...this.
32365
32366 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
32367
32368         PR debug/43229
32369         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
32370         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
32371         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
32372         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
32373
32374         PR debug/43237
32375         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
32376         fallthrough to default handling, just with want_address 0 instead of 2.
32377         For single element lists, add_AT_loc directly, otherwise create an
32378         artificial variable DIE and stick location list to it.
32379
32380         PR debug/43177
32381         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
32382         (VAL_EXPR_HAS_REVERSE): Define.
32383         (reverse_op): New function.
32384         (add_stores): For reversible operations add an extra MO_VAL_USE.
32385
32386 2010-03-02  Jason Merrill  <jason@redhat.com>
32387
32388         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
32389
32390 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
32391
32392         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
32393         (sparc64-*-linux*): Likewise.
32394         (sparc64-*-solaris2*): Include assembler files before linker ones.
32395         (sparc-*-solaris2*): Simplify and reorder to match previous case.
32396         * config/sparc/gas.h: Delete.
32397         * config/sparc/sol2-64.h: Add copyright notice.
32398         * config/sparc/sol2-gas-bi.h: Likewise.
32399         * config/sparc/sol2-gld.h: Likewise.
32400         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
32401         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
32402         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
32403         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
32404         (sparc_elf_asm_named_section): Rename into...
32405         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
32406
32407 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
32408
32409         * config/alpha/alpha.c (override_options): Fix -mtune error message.
32410
32411 2010-03-02  Jeff Law  <law@redhat.com>
32412
32413         PR middle-end/42431
32414         * reload1.c (rtx_p, substitute_stack): Declare.
32415         (substitute): Record addresses of changed rtxs.
32416         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
32417         Restore the original rtx when complete.
32418         (reload): Free subsitute_stack when complete.
32419
32420 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
32421
32422         * doc/gccint.texi (menu): Add Testsuites as a chapter.
32423         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
32424         new chapter.
32425         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
32426         LTO Testing, gcov Testing, profopt Testing, compat Testing,
32427         Torture Tests): Change from subsection to section.
32428
32429 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
32430             Steven Bosscher  <steven@gcc.gnu.org>
32431
32432         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
32433         instead of bb.
32434
32435 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
32436
32437         PR middle-end/42640
32438         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
32439         the assignment from the new induction variable to the assignment
32440         of the value from the original loop PHI function.
32441
32442 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
32443             Daniel Jacobowitz  <dan@codesourcery.com>
32444
32445         * doc/sourcebuild.texi (Test directives): Clarify options to
32446         dg-skip-if.
32447
32448 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32449
32450         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
32451         Disable cfi directives unless GCC and gas agree on using read-only
32452         .eh_frame sections for 64-bit.
32453         * configure: Regenerate.
32454
32455 2010-03-01  Richard Guenther  <rguenther@suse.de>
32456
32457         PR tree-optimization/43220
32458         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
32459         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
32460
32461 2010-03-01  Richard Guenther  <rguenther@suse.de>
32462             Martin Jambor  <mjambor@suse.cz>
32463
32464         PR middle-end/41250
32465         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
32466         gimplified parameters.
32467
32468 2010-03-01  Christian Bruel  <christian.bruel@st.com>
32469
32470         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
32471
32472 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
32473
32474         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
32475
32476 2010-03-01  Richard Guenther  <rguenther@suse.de>
32477
32478         PR middle-end/43213
32479         * expr.c (expand_assignment): Use the alias-oracle to tell
32480         if the rhs aliases the result decl.
32481
32482 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32483
32484         PR pch/14940
32485         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
32486         to sol_gt_pch_get_address.
32487         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
32488         64-bit, SPARC and x86.
32489         (sol_gt_pch_get_address): New function.
32490
32491 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
32492
32493         * toplev.h (inform_n, error_n): Declare.
32494         * diagnostic.c (inform_n, error_n): New function.
32495
32496 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
32497
32498         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
32499         has no rtl yet when processing local_decls, queue it and recheck
32500         if deferred stack allocation hasn't assigned it rtl.
32501
32502 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
32503
32504         * config/sh/sh.c (unspec_bbr_uid): New.
32505         (gen_block_redirect): Use it instead of INSN_UID.
32506         (gen_far_branch): Likewise.
32507
32508 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
32509
32510         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
32511         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
32512
32513 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32514
32515         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
32516         (Warning Options): -Wno-conversion-null is valid for
32517         Objective-C++ as well.
32518         * doc/tm.texi (Named Address Spaces): Likewise.
32519         * doc/plugins.texi (Plugins): Replace TABs with spaces.
32520         * doc/tree-ssa.texi (Tree SSA): Likewise.
32521
32522 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32523
32524         PR bootstrap/43202
32525         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
32526         by default.  Don't set the default arch for
32527         i[34567]86-*-darwin*|x86_64-*-darwin*.
32528
32529 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32530
32531         PR bootstrap/43202
32532         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
32533         default.  Set the default 32bit/64bit archs with $with_arch
32534         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
32535
32536 2010-02-27  Richard Guenther  <rguenther@suse.de>
32537
32538         PR tree-optimization/43186
32539         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
32540         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
32541         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
32542         unroller iterations.
32543
32544 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32545
32546         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
32547         required and i[34567]86-*-* targets don't support 64bit ISA.
32548
32549 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
32550
32551         PR ada/43096
32552         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
32553         the same alias set.
32554
32555 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
32556
32557         * config.gcc: Set the default arch at least to Prescott for
32558         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
32559         if SSE math is enabled.
32560
32561 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32562
32563         * diagnostic.c (diagnostic_initialize): Update.
32564         (diagnostic_report_diagnostic): Test inhibit_notes_p for
32565         informative notes.
32566         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
32567         (diagnostic_inhibit_notes): New.
32568         * toplev.c (process_options): inhibit notes with -fcompare-debug.
32569
32570 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32571
32572         PR c/20631
32573         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
32574         * doc/standards.texi: Likewise.
32575         * doc/extend.texi: Likewise.
32576         * doc/trouble.texi: Likewise.
32577         * doc/cppopts.texi: Likewise.
32578         * doc/install.texi: Likewise.
32579         * c.opt (std=c90,std=gnu90): New options.
32580         * c-opts.c (c_common_handle_option): Handle them.
32581
32582 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32583
32584         PR c/24577
32585         * c-decl.c (undeclared_variable): Use an informative note.
32586
32587 2010-02-26  Richard Guenther  <rguenther@suse.de>
32588
32589         PR tree-optimization/43186
32590         * gimple.h (gimple_fold): Remove.
32591         * gimple.c (gimple_fold): Remove.  Inline into single user ...
32592         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
32593         Try harder for conditions.
32594
32595 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
32596
32597         PR debug/43190
32598         * function.c (used_types_insert): Don't skip through named pointer
32599         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
32600         and it is different from the main variant's type.
32601
32602 2010-02-26  Nick Clifton  <nickc@redhat.com>
32603
32604         * config/rx/rx.md (sminsi3): Remove bogus alternative.
32605
32606 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
32607
32608         * config.gcc: Support --with-fpmath=sse for x86.
32609
32610         * config/i386/ssemath.h: New.
32611
32612         * doc/install.texi (--with-fpmath=sse): Documented.
32613
32614 2010-02-26  Richard Guenther  <rguenther@suse.de>
32615
32616         PR tree-optimization/43188
32617         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
32618         vector types of over-aligned element type.
32619
32620 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
32621
32622         PR target/43175
32623         * config/i386/i386.c (expand_vec_perm_blend): Use correct
32624         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
32625
32626 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
32627
32628         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
32629
32630 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
32631
32632         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
32633         * var-tracking.c: Include diagnostic.h.
32634         (debug_dv): New function.
32635         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
32636
32637         PR debug/43160
32638         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
32639         (add_value_chain, add_value_chains, remove_value_chain,
32640         remove_value_chains): Handle DEBUG_EXPRs.
32641         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
32642
32643         PR debug/43161
32644         * regcprop.c (struct queued_debug_insn_change): New type.
32645         (struct value_data_entry): Add debug_insn_changes field.
32646         (struct value_data): Add n_debug_insn_changes field.
32647         (debug_insn_changes_pool): New variable.
32648         (free_debug_insn_changes, apply_debug_insn_changes,
32649         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
32650         (kill_value_one_regno): Call free_debug_insn_changes if needed.
32651         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
32652         fields.
32653         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
32654         changes for them.
32655         (copyprop_hardreg_forward_1): Don't call apply_change_group for
32656         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
32657         changes, call cprop_find_used_regs via note_stores.
32658         (copyprop_hardreg_forward): When copying vd from predecessor
32659         which has any queued DEBUG_INSN changes, make sure the pointers are
32660         cleared.  At the end call df_analyze and then if there are any
32661         DEBUG_INSN changes queued at the end of some basic block for still
32662         live registers, apply them.
32663         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
32664
32665 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
32666
32667         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
32668         (arm*-*-*): Ditto.
32669
32670 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
32671
32672         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
32673         targets.  Set the default with_cpu/with_arch from arch/cpu.
32674         Allow x86-64 and native for with_cpu/with_arch.
32675
32676 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
32677
32678         * ebitmap.c: Change calls to verify_popcount with calls to
32679         sbitmap_verify_popcount.
32680         (ebitmap_clear_bit): Fixed map->cacheindex test and
32681         map>cache update when bit clearing results in an empty
32682         element.
32683
32684 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
32685
32686         PR target/43154
32687         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
32688         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
32689         and support both V2DF and V2DI modes.
32690         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
32691         support both V2DF and V2DI modes.
32692         (general): Delete trailing whitespace from a few patterns.
32693
32694         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
32695         V2DF/V2DI interleave high/low builtins.
32696
32697         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
32698         new VSX builtins.
32699
32700         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
32701         interleave high/low functions.
32702
32703 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
32704
32705         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
32706         #pragma extern_prefix.
32707
32708 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
32709
32710         PR debug/43166
32711         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
32712         BLKmode, assert op0 is a MEM and just adjust its mode.
32713
32714         PR debug/43165
32715         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
32716         if bitpos isn't multiple of mode's bitsize.
32717
32718 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32719
32720         * c.opt (-ftemplate-depth=): New.
32721         (-ftemplate-depth-): Deprecate.
32722         * optc-gen.awk: Handle -ftemplate-depth=.
32723         * opth-gen.awk: Likewise.
32724         * c-opts.c (c_common_handle_option): Likewise.
32725         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
32726
32727 2010-02-24  Jason Merrill  <jason@redhat.com>
32728
32729         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
32730
32731 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32732
32733         * cfg.c (alloc_aux_for_block): Remove inline.
32734         (alloc_aux_for_edge): Likewise.
32735
32736 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32737
32738         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
32739
32740 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32741
32742         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
32743         * config/i386/sol2-gas.h: New file.
32744         * config.gcc (i[34567]86-*-solaris2*): Use it.
32745
32746 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32747
32748         PR c/43128
32749         * c-typeck.c (ep_convert_and_check): New.
32750         (build_conditional_expr): Use it.
32751         (build_binary_op): Likewise.
32752
32753 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
32754
32755         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
32756
32757         PR debug/43150
32758         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
32759         bounds even for -O+.
32760         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
32761         expr needs to have DECL_NAME set.
32762
32763 2010-02-24  Nick Clifton  <nickc@redhat.com>
32764
32765         * config/mep/mep.c: Include gimple.h.
32766         (mep_function_uses_sp): Delete unused function.
32767         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
32768         parameters.  Use unsigned integers to count args.  Return a
32769         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
32770
32771 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
32772
32773         PR target/43107
32774         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
32775         greater or equal to nelt instead of 2 * nelt.
32776         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
32777         with nelt - 1.
32778
32779 2010-02-23  Jason Merrill  <jason@redhat.com>
32780
32781         PR debug/42800
32782         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
32783         in cfun->local_decls even if they have register types.
32784
32785         PR c++/42837
32786         * stor-layout.c (place_field): Don't warn about unnecessary
32787         DECL_PACKED if the type is packed.
32788
32789 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
32790
32791         PR target/43139
32792         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
32793         GOTOFF relocs, even when the base reg isn't pic pointer.
32794
32795 2010-02-23  Michael Matz  <matz@suse.de>
32796
32797         PR debug/43077
32798         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
32799         (expand_gimple_basic_block): Generate and use debug temps if there
32800         are debug uses left after the last real use of TERed ssa names.
32801         Unlink debug immediate uses when they are expanded.
32802
32803 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32804
32805         PR 43123
32806         * config/i386/i386.c (override_options): Reorganise to provide
32807         better error messages.
32808
32809 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
32810
32811         PR middle-end/43083
32812         * graphite-scop-detection.c (create_single_exit_edge): Move
32813         the call to find_single_exit_edge to....
32814         (create_sese_edges): ...here.  Don't handle multiple edges
32815         exiting the function.
32816         (build_graphite_scops): Don't handle multiple edges
32817         exiting the function.
32818
32819 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
32820
32821         PR middle-end/43097
32822         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
32823         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
32824
32825 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
32826
32827         PR middle-end/43026
32828         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
32829
32830 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32831
32832         PR c++/43126
32833         * c-typeck.c (convert_arguments): Print declaration location.
32834         * c-common.c (validate_nargs): Rename as
32835         builtin_function_validate_nargs.
32836         (check_builtin_function_arguments): Update.
32837
32838 2010-02-22  Richard Guenther  <rguenther@suse.de>
32839
32840         PR lto/43045
32841         * tree-inline.c (declare_return_variable): Use the type of
32842         the call stmt lhs if available.
32843
32844 2010-02-22  Duncan Sands  <baldrick@free.fr>
32845
32846         * passes.c (register_pass): Always consider all pass lists when
32847         ref_pass_instance_number is zero.
32848
32849 2010-02-22  Richard Guenther  <rguenther@suse.de>
32850
32851         PR tree-optimization/42749
32852         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
32853         parameter.  Do arithmetic in the original type.
32854         (update_accumulator_with_ops): Likewise.
32855         (adjust_accumulator_values): Adjust.
32856
32857 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32858
32859         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
32860         (QI to BLKmode splitter): New splitter.
32861
32862 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
32863
32864         * config/i386/i386.c (initial_ix86_tune_features): Turn on
32865         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
32866
32867 2010-02-22  Richard Guenther  <rguenther@suse.de>
32868
32869         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
32870
32871 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
32872
32873         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
32874         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
32875         ($(T)crti.o, $(T)crtn.o): Remove rules.
32876
32877 2010-02-21  Tobias Burnus  <burnus@net-b.de>
32878
32879         PR fortran/35259
32880         * doc/invoke.texi (-fassociative-math): Document that this
32881         option is automatically enabled for Fortran.
32882
32883 2010-02-20  David S. Miller  <davem@davemloft.net>
32884
32885         * configure.ac: Test if linker and assembler properly support
32886         GOTDATA_OP relocations.
32887         * configure: Rebuild.
32888         * config.in: Likewise.
32889         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
32890         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
32891         (movsi_high_pic): Likewise.
32892         (movdi_lo_sum_pic): Likewise.
32893         (movdi_high_pic): Likewise.
32894         (movsi_pic_gotdata_op): New pattern.
32895         (movdi_pic_gotdata_op): Likewise.
32896         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
32897         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
32898
32899 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
32900
32901         PR target/43067
32902         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
32903         attribute to ssemul.
32904         (xop_mulv2div2di3_high): Ditto.
32905
32906 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32907
32908         PR c++/35669
32909         * c.opt (Wconversion-null): New option.
32910         * doc/invoke.texi (Wconversion-null): Document.
32911
32912 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32913
32914         * common.opt (Wlarger-than-): Add Undocumented.
32915
32916 2010-02-19  Mike Stump  <mikestump@comcast.net>
32917
32918         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
32919
32920 2010-02-19  Jason Merrill  <jason@redhat.com>
32921
32922         PR target/40332
32923         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
32924         * configure: Likewise.
32925
32926 2010-02-20  Alan Modra  <amodra@gmail.com>
32927
32928         PR middle-end/42344
32929         * cgraph.h (cgraph_make_decl_local): Declare.
32930         * cgraph.c (cgraph_make_decl_local): New function.
32931         (cgraph_make_node_local): Use it.
32932         * cgraphunit.c (cgraph_function_versioning): Likewise.
32933         * ipa.c (function_and_variable_visibility): Likewise.
32934
32935 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
32936
32937         PR bootstrap/43121
32938         * except.c (sjlj_emit_function_enter): Don't call
32939         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
32940         directly.
32941         * rtl.h (add_reg_br_prob_note): Remove prototype.
32942
32943 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32944
32945         PR 41779
32946         * c-common.c (conversion_warning): Remove widening conversions
32947         before checking the conversion of integers to reals.
32948
32949 2010-02-19  Mike Stump  <mikestump@comcast.net>
32950
32951         PR middle-end/43125
32952         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
32953
32954         PR objc/43061
32955         * cgraphunit.c (process_function_and_variable_attributes): Check
32956         DECL_PRESERVE_P instead of looking up attribute "used".
32957         * ipa-pure-const.c (check_decl): Likewise.
32958         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
32959         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
32960         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
32961         instead of attribute "used".
32962         * config/sol2-c.c (solaris_pragma_init): Likewise.
32963         (solaris_pragma_fini): Likewise.
32964
32965 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
32966
32967         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
32968         Use XCNEW instead of xcalloc.
32969         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
32970         XNEW instead of xmalloc.
32971         (get_fields): Use XNEWVEC instead of xmalloc.
32972
32973         PR debug/43084
32974         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
32975         populate vars array.
32976         (create_new_general_access): For debug stmts just reset value.
32977         (get_stmt_accesses): For accesses within debug stmts just record them
32978         using add_access_to_acc_sites instead of preventing the peeling or
32979         counting them as accesses.
32980
32981         PR middle-end/42233
32982         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
32983
32984 2010-02-19  Richard Guenther  <rguenther@suse.de>
32985
32986         PR tree-optimization/42916
32987         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
32988         instructions.
32989
32990 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
32991
32992         * configure.ac: Replace all uses of changequote in macro arguments
32993         with proper quoting.
32994
32995 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
32996
32997         PR middle-end/42233
32998         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
32999
33000 2010-02-19  Richard Guenther  <rguenther@suse.de>
33001
33002         PR tree-optimization/42944
33003         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
33004         test for aliasing with errno.
33005
33006 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33007
33008         PR middle-end/42233
33009         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
33010         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
33011         * dojump.c: Include output.h.
33012         (inv): New inline function.
33013         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
33014         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
33015         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
33016         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
33017         argument, pass it down to other calls.
33018         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
33019         add REG_BR_PROB note to the conditional jump.
33020         * cfgexpand.c (add_reg_br_prob_note): Removed.
33021         (expand_gimple_cond): Don't call it, add the probability
33022         as last argument to jumpif_1/jumpifnot_1.
33023         * Makefile.in (dojump.o): Depend on output.h.
33024         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
33025         callers.
33026         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
33027         * stmt.c (do_jump_if_equal): Likewise.
33028         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
33029         * loop-unswitch.c (compare_and_jump_seq): Likewise.
33030         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
33031         Likewise.
33032         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
33033         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
33034         jumpifnot_1 callers.
33035         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
33036         callers.
33037         (store_expr): Adjust jumpifnot caller.
33038         (store_constructor): Adjust jumpif caller.
33039
33040         PR middle-end/42233
33041         * gimplify.c (gimple_boolify): For __builtin_expect call
33042         gimple_boolify also on its first argument.
33043
33044 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
33045
33046         * configure.ac (gnu-unique-object): Wrap regexps using [] in
33047         changequote block.
33048         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
33049         * configure: Regenerated.
33050
33051 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33052
33053         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
33054         lang_hooks.types_compatible_p instead of comptypes.
33055
33056 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33057
33058         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
33059         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
33060         if __prefer_thumb__ is defined.
33061
33062 2010-02-18  Martin Jambor  <mjambor@suse.cz>
33063
33064         PR tree-optimization/43066
33065         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
33066         array with zero-sized element type.
33067
33068 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
33069
33070         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
33071         rtx, allocate struct var_loc_node here and return it to the
33072         caller, and only if it is actually needed.
33073         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
33074         move it earlier and return immediately if it returns NULL.
33075
33076 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
33077
33078         * config/sparc/gas.h: New file.  Restore
33079         TARGET_ASM_NAMED_SECTION to its ELF default.
33080         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
33081         check !HAVE_GNU_AS.
33082         * config/sparc/sparc.c (sparc_elf_asm_named_section):
33083         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
33084         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
33085         after sparc/sysv4.h.
33086
33087 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
33088
33089         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
33090
33091 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
33092
33093         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
33094         patterns from predicated pattern.
33095
33096 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
33097
33098         PR target/43103
33099         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
33100         for insn mnemonic suffix.
33101
33102 2010-02-17  Richard Guenther  <rguenther@suse.de>
33103
33104         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
33105         to loop PHI nodes.
33106
33107 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
33108
33109         PR debug/42918
33110         * caller-save.c (save_call_clobbered_regs): If BB ends with
33111         a DEBUG_INSN, move any notes in between last real insn and the last
33112         DEBUG_INSN after the last DEBUG_INSN.
33113
33114 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
33115
33116         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
33117         Fix return type.  Fix argument type.  Explain meaning of return value.
33118
33119 2010-02-16  Richard Guenther  <rguenther@suse.de>
33120
33121         PR tree-optimization/41043
33122         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
33123         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
33124         statements ...
33125         (vrp_visit_phi_node): ... but only for loop PHI nodes.
33126
33127 2010-02-16  Ira Rosen  <irar@il.ibm.com>
33128
33129         PR tree-optimization/43074
33130         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
33131         * tree-vect-loop.c (vect_analyze_loop_operations): Add
33132         vectorizable cycles in hybrid SLP check.
33133         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
33134
33135 2010-02-16  Richard Guenther  <rguenther@suse.de>
33136
33137         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
33138         (true_dependence): If memrefs_conflict_p computes must-alias
33139         trust it.  Move TBAA check after offset-based disambiguation.
33140         (canon_true_dependence): Likewise.
33141
33142 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
33143
33144         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
33145         * doc/invoke.texi: Document it.
33146         * var-tracking.c: Include toplev.h and params.h.
33147         (vt_find_locations): Return bool indicating success.  Compute
33148         hash sizes unconditionally.  Check new parameter, report.
33149         (variable_tracking_main_1): Check vt_find_locations results and
33150         retry.  Renamed from...
33151         (variable_tracking_main): ... this.  New wrapper to preserve
33152         flag_var_tracking_assignments.
33153         * Makefile.in (var-tracking.o): Adjust dependencies.
33154
33155 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
33156             Jakub Jelinek  <jakub@redhat.com>
33157
33158         PR target/42854
33159         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
33160         if weak_import attribute is present.
33161         * config/darwin.c (machopic_select_section): Likewise.
33162
33163 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
33164
33165         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
33166         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
33167         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
33168         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
33169
33170         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
33171         types.
33172
33173         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33174         Fix argument types.
33175
33176         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
33177         Rewrite text to refer to the names.
33178
33179 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
33180
33181         * config/i386/i386-builtin-types.def
33182         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
33183         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
33184         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
33185         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
33186         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
33187         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
33188         IX86_BUILTIN_VPERMIL2PS256.
33189         (MULTI_ARG_4_DF2_DI_I): Defined.
33190         (MULTI_ARG_4_DF2_DI_I1): Defined.
33191         (MULTI_ARG_4_SF2_SI_I): Defined.
33192         (MULTI_ARG_4_SF2_SI_I1): Defined.
33193         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
33194         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
33195         __builtin_ia32_vpermil2ps256.
33196         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33197         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33198         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
33199         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33200         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33201         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
33202         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
33203         CODE_FOR_xop_vpermil2v8sf3.
33204         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
33205         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
33206         * config/i386/xopintrin.h (_mm_permute2_pd): New.
33207         (_mm256_permute2_pd): New.
33208         (_mm_permute2_ps): New.
33209         (_mm256_permute2_ps): New.
33210
33211 2010-02-15  Nick Clifton  <nickc@redhat.com>
33212
33213         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
33214         boolean parameters.  Use emit_jump_insn when emitting a pop
33215         instruction containing a return insn.
33216         (push): Use 'true' rather than '1' as second parameter to F.
33217         (h8300_expand_prologue): Likewise.
33218         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
33219         (h8300_expand_epilogue): Likewise.
33220
33221 2010-02-15  Richard Guenther  <rguenther@suse.de>
33222
33223         PR middle-end/43068
33224         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
33225         if that is zero.
33226
33227 2010-02-15  Nick Clifton  <nickc@redhat.com>
33228
33229         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
33230         delta.
33231
33232 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
33233
33234         * intl.c (fake_ngettext): New function.
33235         * intl.h (fake_ngettext): Declare.
33236         (ngettext): Define macro.
33237         * collect2.c (notice_translated): New function.
33238         (main): Use notice_translated and ngettext.
33239         * collect2.h (notice_translated): Declare.
33240
33241 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
33242
33243         * reorg.c (delete_computation): Comment fixes.
33244         * caller-save.c (setup_save_areas): Idem.
33245         * sel-sched-dump.c (dump_lv_set): Idem.
33246         * rtl.def: Idem.
33247
33248 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33249
33250         * config/s390/s390.c (s390_sched_init): New function.
33251         (TARGET_SCHED_INIT): Target hook defined.
33252
33253 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
33254             Jack Howarth  <howarth@bromo.med.uc.edu>
33255             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
33256
33257         PR target/42982
33258         Partial revert of unintended change in fix for PR41605.
33259         * config/darwin.h: Fix typo.
33260         * config/darwin9.h: Same.
33261
33262 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
33263
33264         * c-pch.c (pch_init): Clear v.
33265
33266 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33267
33268         PR middle-end/42930
33269         * graphite-scop-detection.c (graphite_can_represent_scev): Call
33270         graphite_can_represent_init for MULT_EXPR.
33271
33272 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33273
33274         PR middle-end/42914
33275         PR middle-end/42530
33276         * graphite-sese-to-poly.c (remove_phi): New.
33277         (translate_scalar_reduction_to_array): Call remove_phi.
33278
33279 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33280
33281         PR middle-end/42771
33282         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
33283         * graphite-clast-to-gimple.h (gloog): Update declaration.
33284         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
33285         * graphite-poly.h (struct poly_bb): Add missing comments.
33286         (struct scop): Add poly_scop_p field.
33287         (POLY_SCOP_P): New.
33288         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
33289         * graphite.c (graphite_transform_loops): Build the polyhedral
33290         representation for each scop before code generation.
33291         * sese.c (rename_variables_in_operand): Removed.
33292         (rename_variables_in_expr): Return the renamed expression.
33293         (rename_sese_parameters): New.
33294         * sese.h (rename_sese_parameters): Declared.
33295
33296 2010-02-11  Richard Guenther  <rguenther@suse.de>
33297
33298         PR tree-optimization/42998
33299         * tree-ssa-pre.c (create_expression_by_pieces): Treat
33300         POINTER_PLUS_EXPR properly.
33301
33302 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33303             Changpeng Fang  <changpeng.fang@amd.com>
33304
33305         PR middle-end/40886
33306         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
33307         the cost of an IV candidate when the IV is used in a test against zero.
33308
33309         * gcc.dg/tree-ssa/ivopts-3.c: New.
33310
33311 2010-02-11  Richard Guenther  <rguenther@suse.de>
33312
33313         PR lto/41664
33314         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
33315         pointer-vs-decl case by swapping refs.  Handle some cases
33316         of pointer-vs-decl disambiguations more conservatively.
33317         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
33318         to false after expanding.
33319
33320 2010-02-11  Richard Guenther  <rguenther@suse.de>
33321
33322         PR driver/43021
33323         * gcc.c (process_command): Handle LTO file@offset case more
33324         appropriately.
33325
33326 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
33327
33328         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
33329         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
33330         of DEBUG_INSNs.
33331         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
33332
33333         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
33334         if MEM's mode size isn't DWARF2_ADDR_SIZE.
33335         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
33336         Optimize eq/ne comparisons when both arguments are known to be
33337         zero-extended.
33338         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
33339         Don't mask operands unnecessarily if they are known to be already
33340         zero-extended.
33341
33342 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
33343
33344         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
33345         instead of loop.
33346
33347 2010-02-10  Richard Guenther  <rguenther@suse.de>
33348
33349         PR tree-optimization/43017
33350         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
33351         for wrapping signed arithmetic.
33352
33353 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
33354
33355         PR debug/43010
33356         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
33357         if no debug info should be emitted for it.
33358
33359 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
33360
33361         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
33362         note when flag_exceptions is set.
33363
33364 2010-02-10  Duncan Sands  <baldrick@free.fr>
33365
33366         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
33367
33368 2010-02-10  Richard Guenther  <rguenther@suse.de>
33369
33370         PR c/43007
33371         * tree.c (get_unwidened): Handle constants.
33372         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
33373
33374 2010-02-10  Martin Jambor  <mjambor@suse.cz>
33375
33376         PR lto/42985
33377         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
33378         check for variable argument counts independently.
33379
33380 2010-02-10  Christian Bruel  <christian.bruel@st.com>
33381
33382         PR target/42841
33383         * config/sh/sh.c (find_barrier): Increase length for non delayed
33384         conditional branches.
33385
33386 2010-02-10  Christian Bruel  <christian.bruel@st.com>
33387
33388         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
33389
33390 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
33391
33392         * builtins.c (set_builtin_user_assembler_name): Also handle
33393         ffs if int is smaller than word.
33394
33395 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
33396
33397         PR middle-end/42973
33398         * ira-conflicts.c (get_dup): Remove.
33399         (process_reg_shuffles): Add new parameter.  Use it as an
33400         additional guard for copy generation.
33401         (add_insn_allocno_copies): Rewrite.
33402
33403 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
33404
33405         * common.opt (fsched2-use-traces): Preserved for backward
33406         compatibility.
33407         * doc/invoke.texi: Remove the documentation about option
33408         -fsched2-use-traces.
33409         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
33410         flag_sched2_use_traces.
33411         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
33412         the backward compatibility flag section.
33413
33414 2010-02-09  Richard Guenther  <rguenther@suse.de>
33415
33416         PR tree-optimization/43008
33417         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
33418         make HEAP variables initialized from global memory if they
33419         are not known builtin functions.
33420         (find_func_aliases): Adjust.
33421
33422 2010-02-09  Richard Guenther  <rguenther@suse.de>
33423
33424         PR tree-optimization/43000
33425         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
33426         arithmetic manually.
33427
33428 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
33429
33430         PR tree-optimization/42931
33431         * tree-loop-linear.c (try_interchange_loops): Don't call
33432         double_int_mul if estimated_loop_iterations failed.
33433
33434 2010-02-08  Martin Jambor  <mjambor@suse.cz>
33435
33436         PR middle-end/42898
33437         * tree-sra.c (build_accesses_from_assign): Do not mark in
33438         should_scalarize_away_bitmap if stmt has volatile ops.
33439         (sra_modify_assign): Do not process assigns piecemeal if if stmt
33440         has volatile ops.
33441
33442 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
33443
33444         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
33445
33446 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
33447
33448         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
33449         before the pattern.
33450
33451 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
33452
33453         PR middle-end/42946
33454         * df-core.c (df_finish_pass): Change type of saved_flags to int.
33455
33456 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
33457
33458         PR middle-end/42988
33459         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
33460         to unknown_dependence.
33461         (graphite_legal_transform_dr): Handle the unknown_dependence.
33462         (graphite_carried_dependence_level_k): Same.
33463
33464 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
33465
33466         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
33467
33468 2010-02-07  Richard Guenther  <rguenther@suse.de>
33469
33470         PR middle-end/42991
33471         * expr.c (get_inner_reference): Always initialize *pbitsize.
33472
33473 2010-02-07  Richard Guenther  <rguenther@suse.de>
33474
33475         PR middle-end/42956
33476         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
33477         new ARRAY_REFs on variable size element or minimal index arrays.
33478         Complete.
33479         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
33480         gimple_fold_indirect_ref.
33481
33482 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
33483
33484         PR target/42957
33485         * arm.c (arm_override_options): Just return if the user has specified
33486         an invalid fpu name.
33487
33488 2010-02-03  Jason Merrill  <jason@redhat.com>
33489
33490         PR c++/42870
33491         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
33492         i386_pe_maybe_record_exported_symbol.
33493
33494 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
33495
33496         PR target/42924
33497         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
33498         (pa_delegitimize_address): New function.
33499
33500 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
33501
33502         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
33503         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
33504
33505 2010-02-05  Richard Guenther  <rguenther@suse.de>
33506
33507         PR lto/42762
33508         * lto-streamer-in.c (get_resolution): Deal with references
33509         to undefined functions.
33510
33511 2010-02-05  Richard Guenther  <rguenther@suse.de>
33512
33513         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
33514         (fold_const_aggregate_ref): Likewise.
33515         (ccp_fold_stmt): Substitute loads.
33516         (maybe_fold_reference): Verify types before substituting.
33517         Unshare properly.
33518         (fold_gimple_assign): Unshare properly.
33519         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
33520
33521 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
33522
33523         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
33524         for rs6000_gen_cell_microcode.
33525
33526 2010-02-04  Richard Guenther  <rguenther@suse.de>
33527
33528         PR rtl-optimization/42952
33529         * dse.c (const_or_frame_p): Remove MEM handling.
33530
33531 2010-02-04  Nick Clifton  <nickc@redhat.com>
33532
33533         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
33534         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
33535         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
33536         (mn10300_asm_output_mi_thunk): New function.
33537         (mn10300_can_output_mu_thunk): New function.
33538         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
33539         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
33540         (FUNCTION_ARG): Delete incorrect comment.
33541
33542 2010-02-03  Jason Merrill  <jason@redhat.com>
33543
33544         PR c++/40138
33545         * fold-const.c (operand_equal_p): Handle erroneous types.
33546
33547 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
33548
33549         * config/h8300/h8300.md (can_delay): Fix attibute condition.
33550
33551 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
33552
33553         PR rtl-optimization/42941
33554         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
33555         of xmalloc.
33556
33557 2010-02-03  Jason Merrill  <jason@redhat.com>
33558
33559         PR c++/35652
33560         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
33561
33562 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
33563
33564         PR debug/42896
33565         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
33566         (cselib_reset_table): Renamed from...
33567         (cselib_reset_table_with_next_value): ... this.
33568         (cselib_get_next_uid): Renamed from...
33569         (cselib_get_next_unknown_value): ... this.
33570         * cselib.c (next_uid): Renamed from...
33571         (next_unknown_value): ... this.
33572         (cselib_clear_table): Adjust.
33573         (cselib_reset_table): Adjust.  Renamed from...
33574         (cselib_reset_table_with_next_value): ... this.
33575         (cselib_get_next_uid): Adjust.  Renamed from...
33576         (cselib_get_next_unknown_value): ... this.
33577         (get_value_hash): Use hash.
33578         (cselib_hash_rtx): Likewise.
33579         (new_cselib_val): Adjust.  Set and dump uid.
33580         (cselib_lookup_mem): Pass next_uid as hash.
33581         (cselib_subst_to_values): Likewise.
33582         (cselib_log_lookup): Dump uid.
33583         (cselib_lookup): Pass next_uid as hash.  Adjust.
33584         (cselib_process_insn): Adjust.
33585         (cselib_init): Initialize next_uid.
33586         (cselib_finish): Adjust.
33587         (dump_cselib_table): Likewise.
33588         * dse.c (canon_address): Dump value uid.
33589         * print-rtl.c (print_rtx): Print value uid.
33590         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
33591         (dvuid): New type.
33592         (dv_uid): New function, sort of renamed from...
33593         (dv_htab_hash): ... this, reimplemented in terms of it and...
33594         (dv_uid2hash): ... this.  New.
33595         (variable_htab_eq): Drop excess assertions.
33596         (tie_break_pointers): Removed.
33597         (canon_value_cmp): Compare uids.
33598         (variable_post_merge_New_vals): Print uids.
33599         (vt_add_function_parameters): Adjust.
33600         (vt_initialize): Reset table.  Adjust.
33601
33602 2010-02-03  Richard Guenther  <rguenther@suse.de>
33603
33604         PR tree-optimization/42944
33605         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
33606         (call_may_clobber_ref_p_1): Likewise.  Properly handle
33607         malloc and calloc clobbering errno.
33608
33609 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
33610
33611         * doc/invoke.texi: Fix name of sched1 dump.
33612
33613         * opts.c (decode_options): Set flag_tree_switch_conversion
33614         only conditionally on optimize >= 2.
33615
33616         * gcse.c: Assorted comment fixes in pass description.
33617
33618 2010-02-03  Anthony Green  <green@moxielogic.com>
33619
33620         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
33621         nop padding in order to maintain alignment of storage location of
33622         target function address.
33623         (moxie_trampoline_init): Store target function address at newly
33624         aligned location.
33625         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
33626         to 32.
33627         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
33628
33629 2010-02-03  Richard Guenther  <rguenther@suse.de>
33630
33631         PR middle-end/42927
33632         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
33633
33634 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33635
33636         * config.gcc: Reenable check for obsolete targets.
33637         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
33638         mips-sgi-irix6.[0-4]*.
33639
33640 2010-02-02  Nick Clifton  <nickc@redhat.com>
33641
33642         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
33643         constant size of 4 as being the same as 0.
33644         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
33645         can take values in the range 0..4.
33646
33647 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
33648
33649         PR java/41991
33650         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
33651         as _darwin10_Unwind_FindEnclosingFunction().
33652         * libgcc-libsystem.ver: New.
33653
33654 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
33655
33656         PR target/41399
33657         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
33658         implicitly set registers.
33659
33660 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
33661
33662         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
33663         (arm_override_options): Allow automatic selection of the thread
33664         pointer register if thumb2.
33665         (legitimize_pic_address): Improve code sequences for Thumb2.
33666         (arm_call_tls_get_addr): Likewise.
33667         (legitimize_tls_address): Likewise.
33668         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
33669         (pic_load_addr_32bit): ... this.  New named pattern.
33670         * thumb2.md (pic_load_addr_thumb2): Delete.
33671         (pic_load_dot_plus_four): Delete.
33672         (tls_load_dot_plus_four): New named pattern.
33673
33674 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33675
33676         PR libgomp/29986
33677         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
33678         Document fix for TLS bug.
33679
33680 2010-01-31  Richard Guenther  <rguenther@suse.de>
33681
33682         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
33683         conservatively correct.
33684
33685 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33686
33687         PR target/42850
33688         Revert:
33689         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33690
33691         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
33692
33693 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33694
33695         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
33696
33697 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
33698
33699         * config.gcc: Adjust order of makefile fragments for mingw targets.
33700
33701 2010-01-31  Richard Guenther  <rguenther@suse.de>
33702
33703         PR middle-end/42898
33704         * gimplify.c (gimplify_init_constructor): For volatile LHS
33705         initialize a temporary.
33706
33707 2010-01-31  Matthias Klose  <doko@ubuntu.com>
33708
33709         * configure.ac: Fix __stack_chk_fail check for cross builds configured
33710         --with-headers
33711         * configure: Regenerate.
33712
33713 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
33714
33715         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
33716         the same alias set and their sizes different constantness.
33717         (aliasing_component_refs_p): Revert 2009-10-24 change.
33718
33719 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33720
33721         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
33722         unused.
33723
33724 2010-01-29  Richard Guenther  <rguenther@suse.de>
33725
33726         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
33727         Assert we successfully updated the call.
33728
33729 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
33730
33731         PR rtl-optimization/42889
33732         * df.h (df_set_bb_dirty_nonlr): New prototype.
33733         * df-core.c (df_set_bb_dirty_nonlr): New function.
33734         * df-scan.c (df_insn_rescan): Call it instead of
33735         df_set_bb_dirty for DEBUG_INSNs.
33736
33737 2010-01-29  Richard Guenther  <rguenther@suse.de>
33738
33739         PR middle-end/37448
33740         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
33741         quadratic behavior in most cases.
33742
33743 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
33744
33745         PR target/42891
33746         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
33747         in the call to gen_x86_movsicc_0_m1.
33748
33749 2010-01-28  Richard Guenther  <rguenther@suse.de>
33750
33751         PR tree-optimization/42871
33752         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
33753
33754 2010-01-28  Richard Guenther  <rguenther@suse.de>
33755
33756         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
33757         into call arguments.
33758
33759 2010-01-28  Richard Guenther  <rguenther@suse.de>
33760
33761         PR middle-end/42883
33762         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
33763         the forwarder if the destination is an EH landing pad.
33764
33765 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
33766
33767         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
33768         block list passed to gimple_duplicate_sese_tail.
33769         (parallelize_loops): Avoid parallelization when the function
33770         has_nonlocal_label.
33771         Avoid parallelization when the preheader is IRREDUCIBLE.
33772         Try to optimize when estimated_loop_iterations_int is unresolved.
33773         Add the loop's location to the dump file.
33774         * tree-cfg.c (add_phi_args_after_redirect): Remove.
33775         (gimple_duplicate_sese_tail): Remove the check for the latch.
33776         Redirect nexits to the exit block.
33777         Remove handling of the incoming edges to the latch.
33778         Redirect the backedge from the copied latch to the exit bb.
33779
33780 2010-01-28  Michael Matz  <matz@suse.de>
33781
33782         PR target/42881
33783         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
33784         Wrap force_reg into a sequence, emit it before user.
33785
33786 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
33787
33788         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
33789         (arm_rev): New.
33790         (arm_legacy_rev): Likewise.
33791         (thumb_legacy_rev): Likewise.
33792
33793 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
33794
33795         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
33796         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
33797         on MEM's address failed, try avoid_constant_pool_reference and
33798         recurse if it returned something different.
33799         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
33800         address, try avoid_constant_pool_reference and recurse if it
33801         returned something different.
33802         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
33803         address and avoid_constant_pool_reference returned something
33804         different, don't set have_address.
33805
33806 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
33807
33808         PR debug/42861
33809         * var-tracking.c (val_store): Add modified argument, obey it.
33810         Adjust callers.
33811         (count_uses): Move down logging of main.
33812         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
33813         don't need resolution.
33814         (emit_notes_in_bb): Likewise.
33815
33816 2010-01-27  Richard Guenther  <rguenther@suse.de>
33817
33818         PR middle-end/42878
33819         * tree-inline.c (remap_decl): Delay remapping of SSA name
33820         default definitions until we need them.
33821
33822 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
33823
33824         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
33825         (rs6000_delegitimize_address): New function.
33826
33827         * config/s390/s390.c (s390_delegitimize_address): Call
33828         delegitimize_mem_from_attrs.
33829
33830         PR middle-end/42874
33831         * tree-inline.c (cannot_copy_type_1): Removed.
33832         (copy_forbidden): Don't forbid copying of functions containing
33833         records/unions with variable length fields.
33834
33835 2010-01-27  Christian Bruel  <christian.bruel@st.com>
33836
33837         Revert:
33838         PR target/42841
33839         * config/sh/sh.c (find_barrier): Increase length for non delayed
33840         conditional branches.
33841
33842 2010-01-27  Matthias Klose  <doko@ubuntu.com>
33843
33844         * configure.ac (gnu-unique-object): Fix ldd version check.
33845         * configure: Regenerate.
33846
33847 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33848
33849         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
33850         HAVE_GNU_AS value.
33851         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
33852         Test for HAVE_GNU_AS value.
33853
33854 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33855
33856         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
33857         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
33858         INT64_TYPE): Define.
33859         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
33860         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
33861         INT_LEAST64_TYPE): Define.
33862         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
33863         UINT_LEAST64_TYPE): Define.
33864         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
33865         INT_FAST64_TYPE): Define.
33866         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
33867         UINT_FAST64_TYPE): Define.
33868         (INTMAX_TYPE, UINTMAX_TYPE): Define.
33869         (INTPTR_TYPE, UINTPTR_TYPE): Define.
33870         (SIG_ATOMIC_TYPE): Define.
33871
33872 2010-01-26  Richard Guenther  <rguenther@suse.de>
33873
33874         * df-scan.c (df_scan_set_bb_info): Remove assert.
33875         (df_insn_rescan_debug_internal): Merge asserts.
33876         (df_install_ref): Likewise.
33877         (df_mark_reg): Use bitmap_set_range.
33878         (df_hard_reg_used_p): Remove assert.
33879         (df_hard_reg_used_count): Likewise.
33880
33881 2010-01-26  Richard Guenther  <rguenther@suse.de>
33882
33883         PR rtl-optimization/42685
33884         * web.c (web_main): Ignore DEBUG_INSNs.
33885
33886 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
33887
33888         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
33889
33890         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
33891         Fix types of fndecl and arglist parameters.
33892
33893 2010-01-26  Richard Guenther  <rguenther@suse.de>
33894
33895         PR middle-end/42806
33896         * tree-eh.c (unsplit_eh): Skip debug insns.
33897
33898 2010-01-26  Richard Guenther  <rguenther@suse.de>
33899
33900         PR tree-optimization/42250
33901         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
33902
33903 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
33904
33905         PR fortran/42866
33906         * omp-low.c (expand_omp_sections): Only use single_pred if
33907         l2_bb is single_pred_p.
33908
33909 2010-01-25  Christian Bruel  <christian.bruel@st.com>
33910
33911         PR target/42841
33912         * config/sh/sh.c (find_barrier): Increase length for non delayed
33913         conditional branches.
33914         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
33915
33916 2010-01-24  David S. Miller  <davem@davemloft.net>
33917
33918         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
33919         define if not using GAS.
33920         * config/sparc/sparc.c (sparc_elf_asm_named_section):
33921         Likewise.  Delete SECTION_MERGE code, which is only applicable
33922         when using GAS.
33923
33924 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
33925
33926         PR c++/42748
33927         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
33928         mangling of va_list in system headers.
33929
33930 2010-01-23  Toon Moene  <toon@moene.org>
33931
33932         * tree-predcom.c (combine_chains): Return NULL, not false.
33933
33934 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
33935
33936         * tree-loop-distribution.c (distribute_loop): Fix declaration and
33937         initialization of variable res to agree with return type.
33938
33939 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
33940
33941         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
33942         * tree-sra.c: Add include of expr.h.
33943
33944 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
33945
33946         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
33947         insert the debug stmt on the single non-EH edge from the stmt.
33948
33949 2010-01-22  Richard Henderson  <rth@redhat.com>
33950
33951         PR tree-opt/42833
33952         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
33953         the RHS until after generate_subtree_copies has insertted its
33954         code before the current statement.
33955
33956 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
33957
33958         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
33959
33960         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
33961
33962 2010-01-21  Martin Jambor  <mjambor@suse.cz>
33963
33964         PR tree-optimization/42585
33965         * tree-sra.c (struct access): New field grp_total_scalarization.
33966         (dump_access): Dump the new field.
33967         (should_scalarize_away_bitmap): New variable.
33968         (cannot_scalarize_away_bitmap): Likewise.
33969         (sra_initialize): Allocate new bitmaps.
33970         (sra_deinitialize): Free new bitmaps.
33971         (create_access_1): New function.
33972         (create_access): Parts moved to create_access_1.
33973         (type_consists_of_records_p): New function.
33974         (completely_scalarize_record): Likewise.
33975         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
33976         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
33977         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
33978         access.
33979         (analyze_all_variable_accesses): Completely scalarize small eligible
33980         records.
33981
33982 2010-01-21  Martin Jambor  <mjambor@suse.cz>
33983
33984         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
33985
33986 2010-01-21  Andrew Haley  <aph@redhat.com>
33987
33988         * gcc.c (process_command): Move lang_specific_driver before
33989         setting cc_libexec_prefix.
33990
33991 2010-01-21  Richard Guenther  <rguenther@suse.de>
33992
33993         PR middle-end/19988
33994         * fold-const.c (negate_expr_p): Pretend only negative
33995         real constants are easily negatable.
33996
33997 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
33998             Jason Merrill  <jason@redhat.com>
33999
34000         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
34001         (TYPE_TRANSPARENT_AGGR): this, for union and record.
34002         * calls.c (initialize argument_information): Handle it.
34003         * c-common.c (handle_transparent_union_attribute): Use new name.
34004         * c-decl.c (finish_struct): Ditto.
34005         * c-typeck.c (type_lists_compatible_p): Ditto.
34006         (convert_for_assignment): Use new name and also handle record.
34007         * function.c (aggregate_value_p): Handle it.
34008         (pass_by_reference): Ditto.
34009         (assign_parm_data_types): Ditto.
34010         * print-tree.c (print_node): Ditto.
34011         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
34012         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
34013         * tree.c (first_field): New fn.
34014
34015 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
34016
34017         PR target/42818
34018         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
34019         even when linking statically, for now.
34020
34021 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34022
34023         PR debug/42715
34024         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
34025         without a cselib val.
34026         (count_uses): Accept MO_VAL_SET with no val on stores.
34027         (add_stores): Likewise.
34028
34029 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34030
34031         * var-tracking.c (check_value_val): Add a compile time assertion.
34032         (dv_is_decl_p): Simplify.
34033         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
34034         gcc_assert if ENABLE_CHECKING.
34035
34036 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34037
34038         PR debug/42782
34039         * var-tracking.c: Include tree-flow.h.
34040         (mem_dies_at_call): New.
34041         (dataflow_set_preserve_mem_locs): Use it.
34042         (dataflow_set_remove_mem_locs): Likewise.
34043         (dump_var): Renamed from dump_variable.  Adjust all callers.
34044         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
34045         * Makefile.in (var-tracking.o): Adjust deps.
34046
34047 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
34048
34049         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
34050
34051 2010-01-20  Richard Guenther  <rguenther@suse.de>
34052
34053         PR tree-optimization/42717
34054         * tree-ssa-dce.c (get_live_post_dom): Remove.
34055         (forward_edge_to_pdom): Take an arbitrary edge to copy
34056         degenerate PHI args from.
34057         (remove_dead_stmt): Use the first post-dominator even if it
34058         does not contain live statements as redirection destination.
34059
34060 2010-01-20  Richard Guenther  <rguenther@suse.de>
34061
34062         * tree-inline.c (estimate_num_insns): Handle EH builtins.
34063
34064 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34065
34066         * sel-sched.c (create_speculation_check): Remove set but not used
34067         variable twin.
34068         (try_transformation_cache): Remove set but not used variable ds.
34069         (calculate_privileged_insns): Remove set but not used variables
34070         cur_insn and min_spec_insn.
34071         (find_best_expr): Remove set but not used variable avail_n.
34072         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
34073         variable e.
34074         * cgraphunit.c (assemble_thunk): Remove set but not used variable
34075         false_label.
34076         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
34077         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
34078         new_scop_exit_edge.
34079
34080 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
34081
34082         PR bootstrap/42786
34083         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
34084         cpu types.  Add support for *-sse3 cpu types.
34085         (x86_64-*-*): Ditto.
34086
34087 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34088
34089         PR middle-end/42803
34090         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
34091         argument, call initializer_constant_valid_p_1 instead of
34092         initializer_constant_valid_p, pass CACHE to it, return NULL
34093         immediately if first call returns NULL.
34094         (initializer_constant_valid_p_1): New function.
34095         (initializer_constant_valid_p): Use it.
34096
34097 2010-01-20  Thomas Quinot  <quinot@adacore.com>
34098
34099         * tree.def (PLACEHOLDER_EXPR): Fix comment.
34100
34101 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34102
34103         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
34104         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
34105         (loc_list_from_tree): Don't handle unsigned division.  Handle
34106         signed modulo using DW_OP_{over,over,div,mul,minus}.
34107         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
34108         modulo instead of signed.
34109
34110 2010-01-20  DJ Delorie  <dj@redhat.com>
34111
34112         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
34113         (Fpa): Pass it
34114         (h8300_emit_stack_adjustment): Propogate it.
34115         (push): Pass it.
34116         (h8300_expand_prologue): Likewise.
34117         (h8300_expand_epilogue): Likewise.
34118
34119 2010-01-19  Michael Matz  <matz@suse.de>
34120
34121         PR tree-optimization/41783
34122         * tree-data-ref.c (toplevel): Include flags.h.
34123         (dump_data_dependence_relation):  Also dump the inputs if the
34124         result will be unknown.
34125         (split_constant_offset_1): Look through some conversions.
34126         * tree-predcom.c (determine_roots_comp): Restart a new chain if
34127         the offset from last element is too large.
34128         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
34129         (reassociate_to_the_same_stmt): Handle vector registers.
34130         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
34131         (e.g. conversions).
34132         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
34133         wide_prolog_niters argument, emit widening instructions.
34134         (vect_do_peeling_for_alignment): Adjust caller, use widened
34135         variant of the iteration cound.
34136         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
34137
34138 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34139
34140         PR target/38697
34141         * config/arm/neon-testgen.m (emit_automatics): New parameter
34142         features. Adjust for Fixed_return_reg feature.
34143         (test_intrinsic): Call emit_automatics with new feature.
34144         * config/arm/neon.ml: Update copyright years.
34145         (features): New Fixed_return_reg feature.
34146         (ops): Update feature for Vget_low.
34147
34148 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
34149
34150         PR tree-optimization/42719
34151         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
34152         stmt uses.
34153
34154         PR debug/42728
34155         * fwprop.c (all_uses_available_at): Return false if def_set dest
34156         is a REG that is used in def_insn.
34157
34158 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
34159
34160         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
34161
34162         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
34163         Add argument names.
34164
34165         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
34166
34167         * target.h (struct gcc_target) <secondary_reload>: Change type
34168         of last argument to secondary_reload_info *.
34169
34170 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
34171
34172         PR target/42774
34173         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
34174         memory references with unaligned offsets.  Remove CQImode handling.
34175         (unaligned_memory_operand): Return 1 for memory references with
34176         unaligned offsets.  Remove CQImode handling.
34177
34178 2010-01-18  Richard Guenther  <rguenther@suse.de>
34179
34180         PR middle-end/39954
34181         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
34182         builtin calls.
34183
34184 2010-01-18  Richard Guenther  <rguenther@suse.de>
34185
34186         PR tree-optimization/42781
34187         * tree-ssa-structalias.c (find_what_var_points_to): Skip
34188         restrict processing only if the original variable was artificial.
34189
34190 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
34191
34192         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
34193         find number of popped argument bytes.
34194
34195         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
34196         Fix the text that describes the return value for invalid insns.
34197
34198         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
34199
34200         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
34201         Clarify what 'cost of the -dependence' is.  Fix quoting.
34202
34203         * toplev.c (default_get_pch_validity): Rename argument to "sz".
34204         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
34205
34206 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
34207
34208         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34209         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
34210
34211 2010-01-17  Richard Guenther  <rguenther@suse.de>
34212
34213         PR middle-end/42248
34214         * function.c (split_complex_args): Take a VEC to modify.
34215         (assign_parms_augmented_arg_list): Build a VEC instead of
34216         a chain of PARM_DECLs.
34217         (assign_parms_unsplit_complex): Take a VEC of arguments.
34218         Do not fixup unmodified parms.
34219         (assign_parms): Deal with the VEC.
34220         (gimplify_parameters): Likewise.
34221
34222 2010-01-17  Richard Guenther  <rguenther@suse.de>
34223
34224         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
34225         node existence check.
34226         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
34227         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
34228         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
34229         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
34230         (gimple_execute_on_growing_pred): Likewise.
34231
34232 2010-01-17  Richard Guenther  <rguenther@suse.de>
34233
34234         PR tree-optimization/42773
34235         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
34236         (compute_antic_aux): Likewise.
34237         (compute_partial_antic_aux): Likewise.
34238
34239 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
34240
34241         PR debug/42767
34242         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
34243         and US_TRUNCATE.
34244
34245 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
34246
34247         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
34248         appearance.
34249
34250         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
34251         Fix markup for strict argument.
34252
34253         (TARGET_SCHED_REORDER2): Fix argument types.
34254
34255         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
34256         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
34257
34258         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
34259         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
34260
34261         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
34262         Add argument name.
34263
34264         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
34265         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
34266         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
34267         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
34268         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
34269
34270         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
34271
34272         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
34273
34274         (TARGET_ASM_RELOC_RW_MASK): Add return type.
34275         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
34276
34277         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
34278
34279         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
34280         Use prototype.
34281
34282         (TARGET_ASM_NAMED_SECTION): Fix argument list.
34283
34284         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
34285         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
34286
34287         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
34288
34289         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
34290
34291         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
34292         referring to it.  Fix language.
34293
34294         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
34295
34296         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
34297
34298         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
34299
34300         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
34301
34302         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
34303         '@var{stream}.  Remove stray 'and'.
34304
34305         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
34306
34307         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
34308
34309         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
34310
34311         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
34312         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
34313
34314         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
34315         Fix description of return value.
34316         Rename argument "sz" to "len."
34317
34318         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
34319         Clarify meaning of 'true' return value.
34320
34321         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
34322
34323         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
34324         rep_mode versus mode_rep.
34325
34326         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
34327
34328         (TARGET_BUILTIN_DECL): Fix name.
34329
34330         (TARGET_COMMUTATIVE_P): Fix type of first argument.
34331
34332         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
34333
34334         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
34335
34336         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
34337
34338         (TARGET_RELAXED_ORDERING): Use @deftypevr.
34339
34340         (TARGET_GET_DRAP_RTX): Note that this is a hook.
34341         Clarify language.
34342
34343         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
34344         Rename argument tm_fn to md_fn.
34345
34346         (TARGET_OPTION_PRINT): Fix argument list.
34347
34348 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
34349
34350         PR target/42664
34351         * config/i386/i386.c (ix86_fixup_binary_operands):
34352         Revert FMA4 fixup of operands.
34353
34354 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34355
34356         PR other/42525
34357         * Makefile.in (write_entries_to_file, install-plugin):
34358         Use \012 instead of \n with tr.
34359
34360 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
34361
34362         * configure.ac (HAVE_AS_REF): New C macro.
34363         * configure: Regenerate.
34364         * config.in: Likewise.
34365         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
34366         if HAVE_AS_REF.
34367         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
34368         if HAVE_AS_REF.
34369
34370 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
34371
34372         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
34373
34374         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
34375
34376         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
34377
34378         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
34379
34380         (TARGET_IN_SMALL_DATA_P): Fix argument type.
34381
34382         (TARGET_BINDS_LOCAL_P): Fix argument type.
34383
34384         (TARGET_ASM_FILE_END): Use prototype.
34385
34386         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
34387
34388         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
34389
34390         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
34391
34392         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
34393
34394         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
34395         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
34396
34397         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
34398         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
34399
34400         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
34401         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
34402         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
34403         (TARGET_ADDR_SPACE_CONVERT): Likewise.
34404
34405         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
34406
34407         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
34408
34409         (TARGET_INIT_BUILTINS): Use prototype.
34410
34411         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
34412         Put 'const char *' in braces.  Fix parameter types.
34413         (TARGET_INVALID_CONVERSION): Fix parameter types.
34414         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
34415         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
34416
34417         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
34418         Fix argument type.
34419
34420         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
34421
34422         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
34423
34424 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
34425
34426         * doc/tm.texi (TARGET_HELP): Fix return type.
34427
34428         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
34429         in braces.  Fix argument types.
34430
34431         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
34432
34433         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
34434
34435         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
34436
34437         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
34438         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
34439
34440         (TARGET_MANGLE_TYPE): Fix argument types.
34441
34442         (TARGET_IRA_COVER_CLASSES): Use prototype.
34443
34444         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
34445
34446         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
34447
34448         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
34449
34450         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
34451
34452         (TARGET_CALLEE_COPIES): Fix argument types.
34453
34454         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
34455
34456         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
34457
34458         (TARGET_FUNCTION_VALUE): Fix argument types.
34459
34460         (TARGET_RETURN_IN_MSB): Fix argument type.
34461
34462         (TARGET_RETURN_IN_MEMORY): Fix argument types.
34463
34464         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
34465
34466         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
34467
34468         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
34469         agree with return type.
34470
34471         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
34472
34473 2010-01-15  Jing Yu  <jingyu@google.com>
34474
34475         PR rtl-optimization/42691
34476         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
34477         a pseudo to a constant and are merged, and adjust comments.
34478
34479 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
34480
34481         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
34482
34483 2010-01-15  Richard Guenther  <rguenther@suse.de>
34484
34485         PR middle-end/42739
34486         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
34487         labels of computed or non-local gotos to the destination.
34488         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
34489         landing pad label is the first label.
34490
34491 2010-01-15  Richard Guenther  <rguenther@suse.de>
34492
34493         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
34494
34495 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34496
34497         PR target/42747
34498         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
34499         to allow generation of the xssqrtdp instruction on power7.
34500         (sqrtdf2_fpr): Ditto.
34501
34502 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
34503
34504         PR middle-end/42674
34505         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
34506         functions with noreturn attribute.
34507
34508         PR c++/42608
34509         * varasm.c (declare_weak): Add weak attribute to decl if it
34510         doesn't have one already.
34511         (assemble_external): Only add decls to weak_decls if they also
34512         have weak attribute.
34513
34514 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
34515
34516         * var-tracking.c (var_reg_delete): Don't delete the association
34517         between REGs and values or one-part variables if the register
34518         isn't clobbered.
34519
34520 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
34521
34522         PR debug/42657
34523         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
34524         because its first operand is a non-localized variable.
34525
34526 2010-01-14  Martin Jambor  <mjambor@suse.cz>
34527
34528         PR tree-optimization/42706
34529         * tree-sra.c (encountered_recursive_call): New variable.
34530         (encountered_unchangable_recursive_call): Likewise.
34531         (sra_initialize): Initialize both new variables.
34532         (callsite_has_enough_arguments_p): New function.
34533         (scan_function): Call decl and flags check only for IPA-SRA, check
34534         whether there is a recursive call and whether it has enough arguments.
34535         (all_callers_have_enough_arguments_p): New function.
34536         (convert_callers): Look for recursive calls only when
34537         encountered_recursive_call is set.
34538         (ipa_early_sra): Bail out either if
34539         !all_callers_have_enough_arguments_p or
34540         encountered_unchangable_recursive_call.
34541
34542 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34543
34544         * sel-sched.c: Add 2010 to copyright years.
34545         * sel-sched-ir.c: Likewise.
34546         * sel-sched-ir.h: Likewise.
34547
34548 2010-01-14  Martin Jambor  <mjambor@suse.cz>
34549
34550         PR tree-optimization/42714
34551         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
34552         constructors specially.
34553
34554 2010-01-14  Andi Kleen  <ak@linux.intel.com>
34555
34556         * config/i386/drivers-i386.c (detect_caches_intel):
34557         Add l2sizekb parameter and fill in.
34558         (host_detect_local_cpu): Add l2sizekb, fill in.
34559         Add Atom small cache heuristic.
34560
34561 2010-01-14  Andi Kleen  <ak@linux.intel.com>
34562
34563         * config/i386/drivers-i386.c (detect_caches_cpuid4):
34564         Add level3 parameter and fill in.
34565         (detect_caches_intel): Handle level3 cache.
34566
34567 2010-01-14  Andi Kleen  <ak@linux.intel.com>
34568
34569         * config/i386/drivers-i386.c (host_detect_local_cpu):
34570         Fix core duo detection.
34571
34572 2010-01-14  Andi Kleen  <ak@linux.intel.com>
34573
34574         * config/i386/drivers-i386.c (host_detect_local_cpu):
34575         Fix Atom detection.
34576
34577 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34578
34579         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
34580         (rs6000_variable_issue_1): this.  Use...
34581         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
34582
34583 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34584
34585         * sel-sched-ir.c (sel_restore_other_notes): Rename to
34586         sel_restore_notes.  Update all callers.  Call reemit_notes
34587         for all insns.
34588
34589 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34590
34591         PR rtl-optimization/42246
34592         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
34593         loops.
34594
34595 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34596
34597         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
34598         all successors is the same as number of successors in current region.
34599
34600 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34601
34602         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
34603         to rename is not separable.  Otherwise check that its LHS is not NULL.
34604
34605 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34606
34607         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
34608
34609 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34610
34611         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
34612         available registers when failed to discover LHS register class.
34613         Fix indentation.  Update comment.
34614
34615 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34616             Alexander Monakov  <amonakov@ispras.ru>
34617
34618         PR rtl-optimization/42389
34619         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
34620         to can_issue_more.
34621         (advance_state_on_fence): Likewise.
34622         (sel_target_adjust_priority): Print debug output only when
34623         sched_verbose >= 4, not 2.
34624         (get_expr_cost): Do not issue all unique insns on the next cycle.
34625         (fill_insns): Initialize can_issue_more from the value saved
34626         with the fence.
34627         * sel-sched-ir.c (flist_add): New parameter issue_more.
34628         Init FENCE_ISSUE_MORE with it.
34629         (merge_fences): Likewise.
34630         (init_fences): Update call to flist_add.
34631         (add_to_fences, add_clean_fence_to_fences)
34632         (add_dirty_fence_to_fences): Likewise.
34633         (move_fence_to_fences): Update call to merge_fences.
34634         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
34635         sched groups.
34636         * sel-sched-ir.h (struct _fence): New field issue_more.
34637         (FENCE_ISSUE_MORE): New accessor macro.
34638
34639 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34640
34641         PR rtl-optimization/42388
34642         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
34643         that have no predecessors nor successors.  Do not call move_bb_info
34644         for empty blocks outside of current region.
34645
34646 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34647
34648         PR rtl-optimization/42294
34649         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
34650         * sel-sched.c (move_exprs_to_boundary): Transitively add all
34651         originators' originators.
34652
34653 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
34654
34655         PR rtl-optimization/39453
34656         PR rtl-optimization/42246
34657         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
34658         for pipelining_p.
34659         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
34660
34661 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34662             Alexander Monakov  <amonakov@ispras.ru>
34663
34664         PR middle-end/42245
34665         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
34666         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
34667         argument.  Update all callers.
34668         (tidy_control_flow): ... and here.  Recompute topological order
34669         of basic blocks in region if necessary.
34670         (sel_redirect_edge_and_branch): Change return type.  Return true
34671         if topological order might have been invalidated.
34672         (purge_empty_blocks): Export and move from...
34673         * sel-sched.c (purge_empty_blocks): ... here.
34674         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
34675         (maybe_tidy_empty_bb): Delete prototype.
34676         (purge_empty_blocks): Declare.
34677
34678 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
34679
34680         PR rtl-optimization/42249
34681         * sel-sched.c (try_replace_dest_reg): When chosen register
34682         and original register is the same, do not bail out early, but
34683         still check all original insns for validity of replacing destination
34684         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
34685         in this case.
34686
34687 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
34688
34689         PR c/42721
34690         Port from no-undefined-overflow branch:
34691         2009-03-09  Richard Guenther  <rguenther@suse.de>
34692
34693         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
34694
34695 2010-01-14  Richard Guenther  <rguenther@suse.de>
34696
34697         PR lto/42665
34698         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
34699
34700 2010-01-14  Ira Rosen  <irar@il.ibm.com>
34701
34702         PR tree-optimization/42709
34703         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
34704         as scalar type in creation of constant vector operand.
34705
34706 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34707
34708         PR testsuite/42414
34709         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
34710         (check-parallel-%): Match `testsuite' directory component only
34711         at the end.
34712
34713 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
34714
34715         PR translation/39521
34716         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
34717         strings with _().
34718
34719 2010-01-13  Richard Guenther  <rguenther@suse.de>
34720
34721         PR tree-optimization/42730
34722         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
34723         offset zero.
34724
34725 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
34726
34727         PR target/pr42542
34728         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
34729         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
34730         them signed.
34731
34732 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
34733
34734         * config/bfin/libgcc-bfin.ver: Regenerate based on current
34735         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
34736         ___umulsi3_highpart.
34737
34738         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
34739         rather than schedule_insns if the pass is enabled.
34740
34741 2010-01-13  Martin Jambor  <mjambor@suse.cz>
34742
34743         PR tree-optimization/42704
34744         * tree-sra.c (sra_modify_assign): Do not delete assignments to
34745         SSA_NAMEs.
34746
34747 2010-01-13  Martin Jambor  <mjambor@suse.cz>
34748
34749         PR tree-optimization/42703
34750         * tree-sra.c (analyze_access_subtree): Check that we can build a
34751         reference to the original data within the aggregate.
34752
34753 2010-01-13  Richard Guenther  <rguenther@suse.de>
34754
34755         PR tree-optimization/42705
34756         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
34757
34758 2010-01-13  Richard Guenther  <rguenther@suse.de>
34759
34760         PR middle-end/42716
34761         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
34762
34763 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
34764
34765         PR debug/41371
34766         * var-tracking.c (values_to_unmark): New variable.
34767         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
34768         values_to_unmark vector.  Moved body to...
34769         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
34770         instead queue it into values_to_unmark vector.
34771         (vt_find_locations): Free values_to_unmark vector.
34772
34773 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
34774
34775         * config/s390/s390.c (override_options): Set
34776         default of max-pending-list-length to 256
34777
34778 2010-01-13  Richard Guenther  <rguenther@suse.de>
34779
34780         PR lto/42678
34781         * tree-pass.h (PROP_gimple_lcx): New.
34782         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
34783         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
34784         before the final cleanup_eh.
34785         (dump_properties): Dump PROP_gimple_lcx.
34786         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
34787         (tree_lower_complex_O0): Remove.
34788         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
34789         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
34790         tree_lower_complex, schedule TODO_update_ssa.
34791         * lto-streamer-out.c (output_function): Stream the functions
34792         properties.
34793         * lto-streamer-in.c (input_function): Likewise.
34794         (lto_read_body): Do not override them here.
34795
34796 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
34797
34798         PR c/42708
34799         * c-typeck.c (build_c_cast): Fold value cast to union type before
34800         wrapping it in a CONSTRUCTOR.
34801
34802 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
34803
34804         PR rtl-optimization/42699
34805         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
34806         involved.
34807
34808 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34809
34810         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
34811         SUBTARGET_WARN_UNUSED_SPEC): Move ...
34812         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
34813         SUBTARGET_WARN_UNUSED_SPEC): ... here
34814         * config/mips/iris5.h (LIBGCC_SPEC): Define.
34815
34816 2010-01-12  Julian Brown  <julian@codesourcery.com>
34817
34818         * config/arm/neon-schedgen.ml (Utils): Don't try to
34819         open missing module.
34820         (find_with_result): New.
34821
34822 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
34823
34824         PR debug/42662
34825         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
34826         sharing when canonicalizing ({lt,ge}u (plus a b) b).
34827
34828         PR tree-optimization/42645
34829         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
34830         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
34831         decl_map, set processing_debug_stmt to -1 and return name without
34832         any remapping.
34833
34834 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
34835
34836         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
34837         binutils version, and reword target configuration description.
34838
34839 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
34840
34841         * config/avr/avr.h (LINKER_NAME): Remove.
34842
34843 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
34844
34845         PR target/42416
34846         * config/rs6000/rs6000.c (rs6000_override_options): On targets
34847         that support VSX, warn for -mno-altivec if vsx is not disabled,
34848         and disable vsx.
34849
34850 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
34851             Shujing Zhao  <pearly.zhao@oracle.com>
34852
34853         PR translation/42469
34854         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
34855         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
34856         character between option name and help text.
34857         * c.opt (imultilib): Likewise.
34858
34859 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
34860
34861         * lto-streamer-out.c (output_unreferenced_globals): Output static
34862         variables.
34863
34864 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
34865
34866         PR rtl-optimization/42621
34867         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
34868         optimizing for size.
34869         (duplicate_computed_gotos): Remove now-redundant check.
34870
34871 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
34872
34873         PR target/37454
34874         * configure.ac: Save and restore LDFLAGS and LIBS
34875         * configure: Regenerate.
34876
34877 2010-01-10  Richard Guenther  <rguenther@suse.de>
34878
34879         PR middle-end/42667
34880         * builtins.c (fold_builtin_strlen): Add type argument and
34881         convert the resulting length to it.
34882         (fold_builtin_1): Adjust.
34883
34884 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
34885
34886         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
34887         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
34888         1 insn.
34889         (num_insns_constant_wide): Adjust for that change.
34890
34891 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34892
34893         PR debug/42631
34894         * web.c (union_defs): Add used argument, to combine uses of
34895         uninitialized regs.
34896         (entry_register): Adjust type and tests of used argument.
34897         (web_main): Widen used for new use.  Pass it to union_defs.
34898         * df.h (union_defs): Adjust prototype.
34899
34900 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34901
34902         PR debug/42630
34903         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
34904         uses in new incoming argument.  Free body.
34905         (reset_debug_uses_in_loop): New.
34906         (analyze_insn_to_expand_var): Call the latter if the former found
34907         anything.  Fix whitespace.  Reject invalid dest overlaps before
34908         going through all insns in the loop.
34909
34910 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34911
34912         PR debug/42629
34913         * haifa-sched.c (dying_use_p): Debug insns don't count.
34914
34915 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34916
34917         PR middle-end/42363
34918         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
34919         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
34920         (verify_gimple_call): Reject LHS in noreturn calls.
34921
34922 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34923
34924         PR debug/42604
34925         PR debug/42395
34926         * tree-vect-loop-manip.c (adjust_info): New type.
34927         (adjust_vec): New pointer to vector.
34928         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
34929         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
34930         (slpeel_update_phis_for_duplicate_loop): Use them.
34931         (slpeel_update_phi_nodes_for_guard1): Likewise.
34932         (slpeel_update_phi_nodes_for_guard2): Likewise.
34933         (slpeel_tree_peel_loop_to_edge): Likewise.
34934         (vect_update_ivs_after_vectorizer): Likewise.
34935
34936 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34937
34938         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
34939         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
34940
34941 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
34942
34943         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
34944         bogus uninitialized warning.
34945
34946 2010-01-09  Richard Guenther  <rguenther@suse.de>
34947
34948         PR middle-end/42512
34949         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
34950         the evolution is compatible with the initial condition.
34951
34952 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
34953
34954         * gcc.c (process_command): Update copyright notice dates.
34955         * gcov.c (print_version): Likewise.
34956         * gcov-dump.c (print_version): Likewise.
34957         * mips-tfile.c (main): Likewise.
34958         * mips-tdump.c (main): Likewise.
34959
34960 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
34961
34962         PR target/41885
34963         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
34964         (rotlhi3): Delete.
34965         (rotlhi3_8): Delete.
34966         (rotlsi3): Delete.
34967         (rotlsi3_8): Delete.
34968         (rotlsi3_16): Delete.
34969         (rotlsi3_24): Delete.
34970         (rotl<mode>3): New.
34971         (*rotw<mode>3): New.
34972         (*rotb<mode>3): New.
34973         * config/avr/avr.c (avr_rotate_bytes): New function.
34974         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
34975
34976 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
34977
34978         PR target/37454
34979         * configure.ac: Modify -rdynamic check.
34980         * configure: Regenerate.
34981
34982 2010-01-08  DJ Delorie  <dj@redhat.com>
34983
34984         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
34985         register popping order.
34986
34987 2010-01-08  Richard Guenther  <rguenther@suse.de>
34988
34989         PR lto/42528
34990         * c.opt (fsigned-char): Also let LTO handle this option.
34991         (funsigned-char): Likewise.
34992
34993 2010-01-07  Richard Guenther  <rguenther@suse.de>
34994
34995         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
34996         (gimple_op): Likewise.
34997         (gimple_op_ptr): Likewise.
34998         (gimple_assign_set_lhs): Remove gcc_assert.
34999         (gimple_assign_set_rhs1): Likewise.
35000         (gimple_assign_set_rhs2): Likewise.
35001         (gimple_call_set_lhs): Likewise.
35002         (gimple_call_set_fn): Likewise.
35003         (gimple_call_set_fndecl): Likewise.
35004         (gimple_call_fndecl): Likewise.
35005         (gimple_call_return_type): Likewise.
35006         (gimple_call_set_chain): Likewise.
35007         (gimple_call_num_args): Likewise.
35008         (gimple_call_set_arg): Likewise.
35009         (gimple_cond_set_code): Likewise.
35010         (gimple_cond_set_lhs): Likewise.
35011         (gimple_cond_set_rhs): Likewise.
35012         (gimple_cond_set_true_label): Likewise.
35013         (gimple_cond_set_false_label): Likewise.
35014         (gimple_label_set_label): Likewise.
35015         (gimple_goto_set_dest): Likewise.
35016         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
35017         (gimple_debug_bind_get_value): Likewise.
35018         (gimple_debug_bind_get_value_ptr): Likewise.
35019         (gimple_debug_bind_set_var): Likewise.
35020         (gimple_debug_bind_set_value): Likewise.
35021         (gimple_debug_bind_reset_value): Likewise.
35022         (gimple_debug_bind_has_value_p): Likewise.
35023         (gimple_return_retval_ptr): Remove gcc_assert.
35024         (gimple_return_retval): Likewise.
35025         (gimple_return_set_retval): Likewise.
35026         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
35027         (safe_referenced_var_iterator): Remove.
35028         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
35029         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
35030         (fill_referenced_var_vec): Remove.
35031         (first_readonly_imm_use): Remove redundant gcc_assert.
35032         (phi_arg_index_from_use): Combine gcc_asserts.
35033         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
35034         (first_imm_use_stmt): Remove redundant gcc_assert.
35035         * tree-cfg.c (verify_gimple_call): Verify function and chain
35036         operands.  Verify arguments.
35037         (verify_types_in_gimple_stmt): Verify condition code and labels.
35038
35039 2010-01-07  Richard Guenther  <rguenther@suse.de>
35040
35041         PR tree-optimization/42641
35042         * sese.c (rename_map_elt_info): Use the SSA name version, do
35043         not hash pointers.
35044
35045 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
35046
35047         PR tree-optimization/42625
35048         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
35049         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
35050
35051 2010-01-07  Duncan Sands  <baldrick@free.fr>
35052
35053         * Makefile.in (PLUGIN_HEADERS): Add version.h.
35054
35055 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
35056
35057         PR target/42511
35058         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
35059         note itself is not function_invariant_p.
35060
35061 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
35062
35063         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
35064         Do not add the DF_NOTE problem.
35065         * store-motion.c (execute_rtl_store_motion): Likewise.
35066
35067 2010-01-07  Martin Jambor  <mjambor@suse.cz>
35068
35069         PR tree-optimization/42157
35070         * tree-sra.c (compare_access_positions): Stabilize sort if both
35071         accesses have integer types, return zero immediately if they are the
35072         same.
35073
35074 2010-01-06  Richard Henderson  <rth@redhat.com>
35075
35076         PR middle-end/41883
35077         * haifa-sched.c (add_to_note_list): Merge into ...
35078         (concat_note_lists): ... here, and ...
35079         (unlink_other_notes, rm_other_notes): Merge into...
35080         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
35081         NOTE_INSN_EPILOGUE_BEG.
35082
35083 2010-01-06  Richard Guenther  <rguenther@suse.de>
35084
35085         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
35086         not inline regular functions into always-inline functions.
35087
35088 2010-01-06  Nick Clifton  <nickc@redhat.com>
35089
35090         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
35091         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
35092         used together.
35093         (OVERRIDE_OPTIONS): Delete.
35094         (OPTIMIZATION_OPTIONS): Define.
35095         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
35096         * config/rx/rx.c (rx_handle_option): Issue an error message if
35097         -mcpu=rx200 and -fpu are used together.
35098         (rx_set_optimization_options): New function.  Issue an error
35099         message if an optimization attribute attempts to reset the FPU/
35100         math optimization pairing.
35101         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
35102         * config/rx/rx.opt: Set the default to 32-bit doubles.
35103         * config/rx/t-rx: Add multilibs for -nofpu option.
35104         * doc/invoke.texi: Update documentation of RX options.
35105
35106 2010-01-06  Richard Guenther  <rguenther@suse.de>
35107
35108         * tree-ssa-pre.c (name_to_id): New global.
35109         (alloc_expression_id): Simplify SSA name handling.
35110         (lookup_expression_id): Likewise.
35111         (init_pre): Zero name_to_id.
35112         (fini_pre): Free it.
35113
35114 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
35115
35116         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
35117
35118 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
35119
35120         PR target/42542
35121         * config/i386/sse.md (smaxv2di3): New.
35122         (umaxv2di3): Likewise.
35123         (sminv2di3): Likewise.
35124         (uminv2di3): Likewise.
35125
35126 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
35127
35128         PR target/42564
35129         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
35130         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
35131         (legitimize_tls_address): Likewise.
35132         (sparc_tls_referenced_p): Likewise.
35133         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
35134         and adjust calls to legitimize_pic_address.
35135         (legitimate_constant_p) Use sparc_tls_referenced_p.
35136         (legitimate_pic_operand_p): Likewise.
35137         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
35138         (sparc_tls_symbol_ref_1): Delete.
35139         (sparc_tls_referenced_p): Make static, recognize specific patterns.
35140         (legitimize_tls_address): Make static, handle CONST patterns.
35141         (legitimize_pic_address): Make static, remove unused parameter and
35142         adjust recursive calls.
35143         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
35144         and adjust call to legitimize_pic_address.
35145         (sparc_output_mi_thunk): Likewise.
35146
35147 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
35148             H.J. Lu  <hongjiu.lu@intel.com>
35149
35150         PR target/42542
35151         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
35152         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
35153         operands to make them signed.
35154
35155         Revert:
35156         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35157
35158         PR target/42542
35159         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
35160         GTU to GT for V4SI and V2DI.
35161
35162         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
35163         (umin<mode>3): Removed.
35164         (uminv8hi3): New.
35165         (uminv4si3): Likewise.
35166
35167 2010-01-05  Martin Jambor  <mjambor@suse.cz>
35168
35169         PR tree-optimization/42462
35170         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
35171         current_function_decl to helper functions and macros.
35172
35173 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35174
35175         PR bootstrap/41771
35176         * flags.h: Don't include real.h.
35177         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
35178         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
35179         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
35180         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
35181         * dominance.c: Update copyright.
35182         * gimple.c (walk_gimple_op): Remove inline.
35183         * tree-ssa-reassoc.c: Include real.h.
35184         * Makefile.in (FLAGS_H): Remove $(REAL_H).
35185         (tree-ssa-reassoc.o): Depend on $(REAL_H).
35186
35187 2010-01-05  Nick Clifton  <nickc@redhat.com>
35188
35189         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
35190         register to push into the stack frame when the accumulator has to
35191         be saved during interrupts.
35192
35193 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
35194
35195         * doc/invoke.texi: Remove the documentation about option
35196         -Wunreachable-code.
35197         * common.opt (Wunreachable-code):  Preserved for backward
35198         compatibility.
35199         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
35200         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
35201         the backward compatibility flag section.
35202
35203 2010-01-05  Richard Guenther  <rguenther@suse.de>
35204
35205         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
35206
35207 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
35208
35209         PR other/42611
35210         * cfgexpand.c (expand_one_var): Diagnose too large variables.
35211
35212         PR tree-optimization/42508
35213         * tree-sra.c (convert_callers): Check for recursive call
35214         by comparing cgraph nodes instead of decls.
35215         (modify_function): Call ipa_modify_formal_parameters also
35216         on all same_body aliases.
35217
35218         * cgraphunit.c (cgraph_materialize_all_clones): Compare
35219         cgraph nodes when checking for same_body aliases.
35220
35221 2010-01-05  Richard Guenther  <rguenther@suse.de>
35222
35223         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
35224         allocation and lookup.
35225         (get_or_alloc_expr_for_constant): Likewise.
35226         (phi_translate): Sink allocation.
35227
35228 2010-01-04  Richard Guenther  <rguenther@suse.de>
35229
35230         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
35231         a new entry only if needed.
35232         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
35233         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
35234         hashtable lookup.
35235         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
35236         the result array.
35237         (phi_translate): Handle CONSTANTs early.
35238
35239 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35240
35241         PR tree-optimization/42398
35242         * tree-sra.c (struct access): Removed flag grp_different_types.
35243         (dump_access): Do not dump the removed flag.
35244         (sort_and_splice_var_accesses): Do not set the removed flag.
35245         (sra_modify_expr): Check for type compatibility directly.
35246
35247 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35248
35249         PR tree-optimization/42366
35250         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
35251         edges with variable number of parameters.
35252         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
35253         flag instead of asserting it.
35254         (ipa_read_node_info): Read uses_analysis_done flag.
35255
35256 2010-01-04  Richard Guenther  <rguenther@suse.de>
35257
35258         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
35259         iterative_hash_* as intended.
35260         (vn_reference_compute_hash): Likewise.  Simplify hashing
35261         SSA names.
35262         (vn_reference_lookup_2): Likewise.
35263         (vn_nary_op_compute_hash): Likewise.
35264         (vn_phi_compute_hash): Likewise.
35265         (expressions_equal_p): Remove strange code.
35266         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
35267         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
35268         (bitmap_insert_into_set_1): Take value-id as parameter.
35269         (add_to_value): Pass it.
35270         (bitmap_insert_into_set): Likewise.
35271         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
35272
35273 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
35274
35275         PR driver/42442
35276         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
35277         (do_self_spec): For switches with SWITCH_IGNORE set set also
35278         SWITCH_IGNORE_PERMANENTLY.
35279         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
35280         of SWITCH_IGNORE.
35281
35282 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
35283
35284         * lto-streamer-out.c (output_unreferenced_globals): Output the full
35285         tree of an unreferenced global var.
35286
35287 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35288
35289         PR target/42542
35290         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
35291         GTU to GT for V4SI and V2DI.
35292
35293         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
35294         (umin<mode>3): Removed.
35295         (uminv8hi3): New.
35296         (uminv4si3): Likewise.
35297
35298 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35299
35300         PR lto/42581
35301         * collect2.c (main): Turn on trace in collect2 if -v is passed
35302         to gcc with LTO.
35303
35304 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
35305
35306         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
35307         description of expression operand.
35308
35309 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
35310
35311         * configure.ac: Add install-html to target_list for Make-hooks.
35312         * configure: Regenerate.
35313         * fortran/Make-lang.in (F95_HTMLFILES): New.
35314         (fortran.html): Use it.
35315         (fortran.install-html): New.
35316         * Makefile.in (install-html): Add lang.install-html.
35317         * java/Make-lang.in (JAVA_HTMLFILES): New.
35318         (java.html): Use it.
35319         (java.install-html): New.
35320         * objc/Make-lang.in (objc.install-html): New.
35321         * objcp/Make-lang.in (obj-c++.install-html): New.
35322         * cp/Make-lang.in (c++.install-html): New.
35323         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
35324         * lto/Make-lang.in (lto.install-html): New.
35325
35326 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
35327
35328         PR lto/42520
35329         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
35330
35331 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
35332
35333         PR rtl-optimization/41862
35334         * store-motion.c (store_killed_in_insn, compute_store_table,
35335         remove_reachable_equiv_notes, replace_store_insn,
35336         build_store_vectors): Ignore all DEBUG_INSNs.
35337
35338 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
35339
35340         PR lto/41564
35341         * common.opt: Add dumpdir.
35342
35343         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
35344         isn't specified.
35345         (option_map): Add --dumpdir.
35346
35347         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
35348
35349         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
35350
35351         * opts.c (decode_options): Try dump_dir_name first if
35352         dump_base_name isn't an absolute path.
35353         (common_handle_option): Handle OPT_dumpdir.
35354
35355         * toplev.c (dump_dir_name): New.
35356         (print_switch_values): Also ignore -dumpdir.
35357
35358         * toplev.h (dump_dir_name): New.
35359
35360 2010-01-03  Richard Guenther  <rguenther@suse.de>
35361
35362         PR tree-optimization/42589
35363         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
35364         double-word expansion of bswap32.
35365
35366 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
35367
35368         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
35369         with BLOCK_FOR_INSN.
35370         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
35371         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
35372         noce_process_if_block): Likewise.
35373         * gcse.c (compute_local_properties, insert_expr_in_table,
35374         insert_set_in_table, canon_list_insert, find_avail_set,
35375         pre_insert_copy_insn): Likewise.
35376
35377         * basic-block.h (BLOCK_NUM): Move from here...
35378         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
35379
35380 2010-01-03  Richard Guenther  <rguenther@suse.de>
35381
35382         PR tree-optimization/42438
35383         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
35384         contains_may_not_return_call flag.
35385         (BB_MAY_NOTRETURN): New.
35386         (valid_in_sets): Trapping nary operations are not valid
35387         in blocks that may not return.
35388         (insert_into_preds_of_block): Remove check for trapping expressions.
35389         (compute_avail): Compute also BB_MAY_NOTRETURN.
35390
35391 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
35392
35393         * doc/invoke.texi: Add 2010 to copyright years.
35394
35395 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
35396
35397         * config/sparc/sparc.c: Fix formatting nits.
35398
35399 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
35400             Alexander Monakov  <amonakov@ispras.ru>
35401
35402         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
35403
35404 2010-01-02  Richard Guenther  <rguenther@suse.de>
35405
35406         PR middle-end/42577
35407         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
35408         (simplify_switch_using_ranges): Mark to be removed edges
35409         as non-executable.
35410
35411 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35412
35413         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35414
35415         * collect2.c (scan_libraries): Add missing argument in call to
35416         scan_prog_file.
35417
35418 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
35419
35420         PR target/42448
35421         * config/alpha/predicates.md (aligned_memory_operand): Return false
35422         for CQImode.
35423         (unaligned_memory_operand): Return true for CQImode.
35424         * config/alpha/alpha.c (get_aligned_mem): Assert that location
35425         doesn not cross aligned SImode word boundary.
35426
35427 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
35428
35429         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
35430         Remove.
35431         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
35432         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
35433
35434 2010-01-02  Richard Guenther  <rguenther@suse.de>
35435
35436         PR lto/41597
35437         * toplev.c (compile_file): Emit LTO marker properly.  Change
35438         it to __gnu_lto_v1.
35439         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
35440
35441 2010-01-01  Richard Guenther  <rguenther@suse.de>
35442
35443         PR debug/42455
35444         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
35445
35446 2010-01-01  Richard Guenther  <rguenther@suse.de>
35447
35448         PR c/42570
35449         * c-decl.c (grokdeclarator): For zero-size arrays force
35450         structural equality checks as layout_type does.
35451
35452 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
35453
35454         * builtins.c: Update copyright to 2010.
35455
35456 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
35457
35458         PR lto/42531
35459         * lto-streamer-out.c (produce_asm): Revert the last change.
35460         (copy_function): Likewise.
35461
35462         * lto-streamer.c (lto_get_section_name): Skip any leading
35463         asterisk in name.
35464
35465 2010-01-01  Richard Guenther  <rguenther@suse.de>
35466
35467         PR middle-end/42559
35468         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
35469         for LABEL_DECLs.
35470
35471 \f
35472 Copyright (C) 2010 Free Software Foundation, Inc.
35473
35474 Copying and distribution of this file, with or without modification,
35475 are permitted in any medium without royalty provided the copyright
35476 notice and this notice are preserved.