OSDN Git Service

* config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
2
3         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
6         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7         (mn10300_preferred_reload_class,
8         mn10300_preferred_output_reload_class): New functions.
9
10 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11
12         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New
13         macros.
14         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
15         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
16         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
17
18 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
19
20         * builtins.c (std_gimplify_va_arg_expr): Use
21         targetm.calls.function_arg_boundary.
22         * function.c (assign_parms, locate_and_pad_parm): Likewise.
23         * calls.c (struct arg_data): Update comment.
24         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
25         * target.def (function_arg_boundary): Define.
26         * targhooks.h (default_function_arg_boundary): Declare.
27         * targhooks.c (default_function_arg_boundary): Define.
28         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
29         TARGET_FUNCTION_ARG_BOUNDARY.
30         (FUNCTION_ARG_BOUNDARY): Delete.
31         (TARGET_FUNCTION_ARG_BOUNDARY): New.
32         * doc/tm.texi: Regenerate.
33         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
34         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
35         * config/arc/arc.c (arc_function_arg_boundary): Define.
36         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
37         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
38         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
39         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
40         (arm_function_arg_boundary): Define.
41         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
42         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
43         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
44         * config/frv/frv.c (frv_function_arg_boundary): Make static.
45         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
46         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
47         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
48         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
49         (ix86_compat_function_arg_boundary): Take and return unsigned int.
50         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
51         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
52         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
53         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
54         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
55         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
56         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
57         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
58         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
59         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
60         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
61         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
62         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
63         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
64         * config/mips/mips.c (mips_function_arg_boundary): Make static.
65         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
66         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
67         * config/pa/pa.c (pa_function_arg_boundary): Define.
68         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
69         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
70         * config/picochip/picochip-protos.h
71         (picochip_get_function_arg_boundary): Delete.
72         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
73         Rename to...
74         (picochip_function_arg_boundary): ...this.  Make static.
75         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
76         (picochip_arg_advance): Adjust.
77         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
78         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
79         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
80         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
81         (rs6000_function_arg_boundary): ...this.  Make static.
82         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
83         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
84         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
85         * config/rx/rx.c (rx_function_arg_boundary): Define.
86         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
87         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
88         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
89         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
90         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
91         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
92         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
93         (xtensa_function_arg_boundary): ...this.  Make static.
94         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
95
96 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
97
98         * expr.c (alignment_for_piecewise_move): New function.
99         (widest_int_mode_for_size): New function.
100         (move_by_pieces, move_by_pieces_ninsns): Call them.
101         (can_store_by_pieces, store_by_pieces_1): Likewise.
102
103 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
104
105         * gcc.c (char_p): Define.  Define a VEC of it.
106         (n_linker_options, n_assembler_options, n_preprocessor_options):
107         Delete.
108         (linker_options, assembler_options, preprocessor_options): Convert
109         to a VEC.
110         (add_preprocessor_option): Adjust.
111         (add_assembler_option): Adjust.
112         (add_linker_option): Adjust.
113         (do_specs_vec): New function.
114         (do_spec_1): Call it.  Adjust for new types.
115
116 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
117
118         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update
119         dependencies.
120         (sreal.o, statistics.o, stringpool.o): Likewise.
121
122 2010-11-16  Richard Guenther  <rguenther@suse.de>
123
124         PR tree-optimization/44545
125         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
126         statements are not reassociatable.
127         (reassociate_bb): Likewise.
128
129 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
130
131         * bitmap.c: Delete unnecessary includes.
132         * ebitmap.c: Likewise.
133         * et-forest.c: Likewise.
134         * sreal.c: Likewise.
135         * statistics.c: Likewise.
136         * stringpool.c: Likewise.
137         * double-int.c: Add comment for inclusion of tm.h.
138
139 2010-11-16  Richard Guenther  <rguenther@suse.de>
140
141         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
142         (visit_nary_op): ... this.
143         (visit_binary_op): Remove.
144         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
145
146 2010-11-16  Richard Guenther  <rguenther@suse.de>
147
148         PR middle-end/45172
149         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate
150         edges.
151
152 2010-11-16  Nick Clifton  <nickc@redhat.com>
153
154         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
155         record is packed.
156
157 2010-11-15  Richard Henderson  <rth@redhat.com>
158
159         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
160         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR,
161         DOT_PROD_EXPR.
162
163 2010-11-15  Richard Henderson  <rth@redhat.com>
164
165         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
166         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
167         fma rtx_code.
168
169 2010-11-15  Richard Henderson  <rth@redhat.com>
170
171         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
172         and *mulsubsf4 respectively.  Use fma rtx_code.
173
174 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
175
176         * gcc.c: Include "vec.h".
177         (argbuf): Make into a VEC.
178         (argbuf_length, argbuf_index): Remove.
179         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
180         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
181         compare_debug_dump_opt_spec_function: Use VEC interfaces on
182         argbuf.
183         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
184         (gcc.o): Depend on $(VEC_H).
185
186 2010-11-15  Richard Henderson  <rth@redhat.com>
187
188         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
189         via FMA if unsafe math.
190         (insert_var_expansion_initialization): Handle FMA.
191         (combine_var_copies_in_loop_exit): Likewise.
192
193 2010-11-15  Richard Henderson  <rth@redhat.com>
194
195         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
196         * config/ia64/ia64.opt: Remove mfused-madd.
197         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
198         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
199         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
200         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
201         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
202         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
203         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
204         (fmav2sf4): Rename from fpma; use FMA code.
205         (fmsv2sf4): Rename from fpms; use FMA code.
206         (fnmav2sf4): Rename from *fpnma; use FMA code.
207         * config/ia64/ia64.md (MODE_SDF): New iterator.
208         (suffix): New mode attribute.
209         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
210         (fmssf4): Rename from *fmssf4.
211         (fnmasf4): Rename from *nfmasf4.
212         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
213         (*nmadddf4, *nmadddf4_truncsf): Remove.
214         (fmsdf4): Rename from *fmsdf4.
215         (fnmadf4): Rename from *nfmadf4.
216         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
217         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
218         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
219         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
220         (fmsxf4): Rename from *fmsxf4.
221         (fnmaxf4): Rename from *nfmaxf4.
222         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
223         (*fnmaxf_trunc_<MODE_SDF>): New.
224
225 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
226
227         PR tree-optimization/46461
228         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
229         a gimple val.
230
231 2010-11-15  Ian Lance Taylor  <iant@google.com>
232
233         * godump.c: New file.
234         * common.opt (fdump-go-spec=): New option.
235         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
236         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
237         (TYPE_SYMTAB_IS_DIE): Define.
238         (struct tree_type): Change GTY for symtab field to use
239         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
240         to pick the union field.
241         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
242         (dump_go_spec_init): Declare.
243         * toplev.c (process_options): Handle flag_dump_go_spec.
244         * debug.c: Include "tree.h".
245         (do_nothing_debug_hooks): Set tree_type_symtab_field.
246         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
247         * dbxout.c (dbx_debug_hooks): Likewise.
248         (xcoff_debug_hooks): Likewise.
249         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
250         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
251         SDB_DEBUGGING_INFO is not defined.
252         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
253         (Overall Options): Document -fdump-go-spec.
254         * Makefile.in (OBJS-common): Add godump.o.
255         (debug.o): Add dependency on $(TREE_H).
256         (godump.o): New target.
257         (GTFILES): Add $(srcdir)/godump.c.
258
259 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
260
261         PR debug/46095
262         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
263         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
264         style < 0, add REG_FRAME_RELATED_EXPR.
265
266         PR debug/46387
267         * rtl.h (vt_equate_reg_base_value): New prototype.
268         * alias.c (vt_equate_reg_base_value): New function.
269         * var-tracking.c (vt_init_cfa_base): Use it.
270
271 2010-11-15  Jan Hubicka  <jh@suse.cz>
272             Diego Novillo  <dnovillo@google.com>
273
274         PR lto/41528
275         * doc/lto.texi: Add.
276         * doc/gccint.texi: Add reference to lto.texi.
277         * doc/invoke.texi: Update user documentation for LTO.
278         Move internal flags to lto.texi
279
280 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
281
282         * c-typeck.c (build_unary_op): Use
283         objc_build_incr_expr_for_property_ref to build the pre/post
284         increment/decrement of an Objective-C property ref, and skip the
285         lvalue_or_else check in that case.
286
287 2010-11-15  Martin Jambor  <mjambor@suse.cz>
288
289         PR tree-optimization/46349
290         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
291         (contains_vce_or_bfcref_p): Likewise.
292         (sra_modify_assign): Use them.
293
294 2010-11-15  Richard Guenther  <rguenther@suse.de>
295
296         PR tree-optimization/46467
297         * tree-ssa-structalias.c (do_structure_copy): Properly treat
298         variables without subvars.
299
300 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
301
302         * config/picochip/picochip.c (file header): Picochip name change.
303         * config/picochip/picochip.md (file header): Likewise.
304         * config/picochip/predicates.md (file header): Likewise.
305         * config/picochip/dfa_space.md (file header): Likewise.
306         * config/picochip/dfa_speed.md (file header): Likewise.
307         * config/picochip/picochip.h(file header): Likewise.
308         * config/picochip/constraints.md (file header): Likewise.
309         * config/picochip/picochip-protos.h (file header): Likewise.
310         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
311         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
312         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
313         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
314         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
315         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
316         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
317         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
318         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
319         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
320         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
321         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
322         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
323         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
324
325 2010-11-15  Richard Guenther  <rguenther@suse.de>
326
327         PR bootstrap/46474
328         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
329
330 2010-11-15  Nick Clifton  <nickc@redhat.com>
331
332         * config/stormy16/stormy16.c (direct_return): Do not generate a
333         direct return for interrupt handlers.
334
335 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
336
337         * Makefile.in (tm.texi): Replace with rule for:
338         ($(srcdir)/doc/tm.texi).
339         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
340         $(srcdir)/doc/tm.texi .
341         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
342         tm.texi .
343
344         PR target/46427
345         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
346
347         PR bootstrap/45444
348         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
349         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
350
351         PR target/46432
352         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
353
354 2010-11-15  Richard Guenther  <rguenther@suse.de>
355
356         PR lto/44150
357         * lto-opts.c (lto_write_options): Write -fexceptions even if
358         not set by the user.
359
360 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
361
362         PR c/46462
363         * c-decl.c (declspecs_add_type): Make variables with error types
364         integers.
365         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
366         do not start a declaration before an Objective-C foreach.
367         (c_parser_declaration_or_fndef): Improve recovery after unknown
368         type name.
369         (c_parser_for_statement): Hoist entrance of "foreach context"
370         before ifs, add corresponding reset where it was missing.  Do
371         not set objc_could_be_foreach_context for C.
372
373 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
374
375         PR tree-optimization/45722
376         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
377         this is a reference to a component.
378         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
379         (ipa_note_param_call): Adjust comment.
380
381 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
382
383         * config/mips/mips.c (machine_function): Remove
384         initialized_mips16_gp_pseudo_p.
385         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
386         detect whether a pseudo has already been created.  Unconditionally
387         create a new one if not.
388         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
389         expanding to rtl.  Create a new pseudo otherwise, if allowed.
390
391 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
392
393         PR target/43440
394         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
395         * tm.texi: Regenerated.
396         * output.h (decode_reg_name_and_count): Declare.
397         * varasm.c (decode_reg_name_and_count): New function.
398         (decode_reg_name): Reimplement using decode_reg_name_and_count.
399         * reginfo.c (fix_register): Use decode_reg_name_and_count and
400         iterate over all regs used.
401         * stmt.c (expand_asm_operands): Likewise.
402         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
403         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
404         multiple machine registers.
405
406 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
407
408         * stor-layout.c (place_union_field): Do not put location information
409         on offset expressions.
410         (place_field): Likewise.
411         (finalize_record_size): Likewise on size expressions.
412         (finalize_type_size): Likewise.
413         (layout_type): Likewise.
414
415 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
416
417         PR debug/42889
418         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
419         * df-core.c (df_set_bb_dirty_nonrl): Remove.
420         * df.h (df_set_bb_dirty_nonlr): Likewise.
421
422 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
423
424         * config/mips/mips.md (call_internal): Pass curr_insn to
425         mips_split_call.
426         (call_internal_direct): Ditto.
427         (call_value_internal): Ditto.
428         (call_value_internal_direct): Ditto.
429         (call_value_multiple_internal): Ditto.
430         * config/mips/mips.c (mips_split_call): Do not copy
431         CALL_INSN_FUNCTION_USAGE here.
432
433 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
434
435         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
436         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
437         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
438         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
439         (TUNE_LOONGSON_3A): Define.
440         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
441         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
442         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
443         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
444         (mips_rtx_cost_data): Add Loongson-3A.
445
446 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
447
448         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
449         switches.
450
451 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
452
453         * dwarf2out.c (macinfo_entry): New struct.
454         (output_comp_unit): Emit the section start label here and flag that we
455         will emit an info section.
456         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
457         emitting directly.
458         (dwarf2out_end_source_file): Likewise.
459         (dwarf2out_define): Likewise.
460         (dwarf2out_undef): Likewise.
461         (output_macinfo): New.
462         (dwarf2out_init): Do not emit debug section switches here, allocate a
463         vec for macinfo, when required.
464         (dwarf2out_finish): First switch to debug_abbrev_section here.
465         debug_line_section,  debug_macinfo_section, Likewise.  
466         Check that the pubtypes table has at least one unpruned entry before
467         trying to emit it.
468
469 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
470
471         PR c/20385
472         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
473         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
474         token lookahead.
475         (c_parser_compound_statement_nostart, c_parser_label,
476         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
477         (c_parser_declaration_or_fndef): Detect the case now matched by
478         c_parser_next_tokens_start_declaration, give error and correct it.
479
480 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
481
482         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
483         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
484         with typespec_kind.
485         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
486         (shadow_tag_warned, check_compound_literal_type): Adjust
487         uses of tag_defined_p.
488         (declspecs_add_type): Set typespec_kind.
489         * c-parser.c (c_parser_declaration_or_fndef,
490         c_parser_declspecs, c_parser_struct_declaration,
491         c_parser_parameter_declaration, c_parser_type_name,
492         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
493         of type_seen_p.
494         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
495         tag_defined_p, pass ctsk_firstref through.
496
497 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
498
499         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
500         (struct format_wanted_type): Replace field "name" with "kind", add
501         "format_start" and "format_length".
502         (check_format_info_main): Fill in new fields.  Fill in
503         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
504         after the final NUL outside the while loop.  Do not include
505         width and precision modifiers in the format_start/format_length
506         of the main format.
507         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
508         arguments.  Compute WANTED_TYPE first so that format_type_warning
509         can be called for missing arguments.  Adjust calls to
510         format_type_warning.
511         (format_type_warning): Fetch as much information as possible
512         from format_wanted_type.  Adjust printing now that every
513         warning has a "descr", as well as for missing argument warnings
514         and to include % sign for format specifiers.
515
516 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
517
518         PR rtl-optimization/46204
519         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
520         Update all callers.  Do not recompute topological order.  Adjust
521         fallthrough edges following a degenerate conditional jump.
522
523 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
524
525         * opts-common.c (control_warning_option): New.
526         * opts.c (set_default_handlers): New.
527         (decode_options): Use set_default_handlers and
528         control_warning_option.
529         (common_handle_option): Update call to enable_warning_as_error.
530         (enable_warning_as_error): Take gcc_options parameters.  Use
531         control_warning_option.
532         * opts.h (set_default_handlers, control_warning_option): Declare.
533
534 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
535
536         * Makefile.in (OPTS_H): Define.
537         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
538         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
539         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
540         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
541         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
542         * gcc.c (driver_handle_option): Take location_t parameter.
543         (process_command, do_self_spec): Update calls to
544         read_cmdline_option.
545         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
546         * langhooks.c (lhd_handle_option): Take location_t parameter.
547         * langhooks.h (handle_option): Take location_t parameter.
548         * lto-opts.c (lto_reissue_options): Update call to set_option.
549         * opts-common.c (handle_option): Make static.  Take location_t
550         parameter and pass it to other functions.
551         (handle_generated_option): Take location_t parameter and pass it
552         to other functions.
553         (read_cmdline_option): Take location_t parameter and pass it to
554         other functions.  Use warning_at and error_at.
555         (set_option): Take location_t parameter and pass it to other
556         functions.
557         * opts.c (common_handle_option): Take location_t parameter and
558         pass it to other functions.
559         (enable_warning_as_error): Make static.  Take location_t parameter
560         and pass it to other functions.
561         (lang_handle_option): Take location_t parameter and pass it to
562         other functions.
563         (target_handle_option): Take location_t parameter.
564         (read_cmdline_options, maybe_default_option,
565         maybe_default_options, default_options_optimization,
566         decode_options): Take location_t parameter and pass it to other
567         functions.
568         * opts.h: Include input.h.
569         (struct cl_option_handler_func, decode_options, set_option,
570         handle_generated_option, read_cmdline_option): Take location_t
571         parameters.
572         (handle_option, enable_warning_as_error): Remove.
573         * toplev.c (toplev_main): Update call to decode_options.
574
575 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
576
577         * graphite-cloog-util.c (oppose_constraint,
578         cloog_matrix_to_ppl_constraint,
579         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
580         CLooG isl uses unsigned integers.  This triggered a warning.
581
582 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
583
584         PR target/46438
585         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
586         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
587         (xtensa_function_arg_1): De-constify cum.
588         (xtensa_expand_prologue): Use add_reg_note.
589
590         PR target/46435
591         * config/cris/cris.c (saved_regs_mentioned): Delete.
592         (cris_reload_address_legitimized): Cast itype to enum reload_type.
593         Remove unused variable op0p.
594         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
595         (cris_emit_movem_store): Use add_reg_note.
596
597         PR bootstrap/46456
598         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
599
600 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
601
602         * function.c (expand_function_end): Set the locator of the prologue on
603         the stack checking insns.
604
605 2010-11-12  Richard Henderson  <rth@redhat.com>
606
607         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
608         * config/xtensa/xtensa.opt (mfused-madd): Remove.
609         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
610         MASK_FUSED_MADD.
611         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
612         (fnmasf4): Rename from mulsubsf3; use fma.
613
614 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
615             Richard Henderson  <rth@redhat.com>
616
617         PR target/46428
618         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
619         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
620         comparison.
621
622 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
623
624         * opts-common.c (decode_cmdline_option): Initialize separate_args.
625
626 2010-11-12  Jan Hubicka  <jh@suse.cz>
627
628         * doc/invoke.texi (early-inlining-insns): Update default.
629         * params.def (early-inlining-insns): Default to 10.
630
631 2010-11-12  Olivier Hainque  <hainque@adacore.com>
632
633         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
634
635 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
636
637         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
638         (SUPPORTS_INIT_PRIORITY): Define.
639
640 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
641
642         PR target/46430
643         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
644         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
645         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
646         (avr_device_to_devicelib): Likewise.
647         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
648         into block.
649         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
650         (zero_extendhidi2, zero_extendsidi2): Likewise.
651         * config/avr/avr.c (avr_num_arg_regs): Constify type.
652         (avr_return_addr_rtx): De-constify tem.
653         (avr_rotate_bytes): Move declarations to start of block.
654         Don't use variable length array.
655         Put nested if/else into block.
656
657         PR rtl-optimization/46433
658         * var-tracking.c: Include tm_p.h .
659
660         PR bootstrap/44756
661         PR build/44767
662         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
663         should be unsigned.
664         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
665         * doc/tm.texi: Regenerate.
666
667         PR target/46412
668         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
669         * config/bfin/bfin.c: Include sel-sched.h .
670         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
671         (expand_interrupt_handler_prologue): Remove unused variable insn.
672         (bfin_load_pic_reg): Likewise.
673         (bfin_rtx_costs): Make code / outer_code variables of type
674         enum rtx_code, copied from re-named parameters.
675         (bfin_local_alignment): Change align argument and return type
676         to unsigned.
677         (bfin_adjust_cost): Remove unused variable insn_type.
678         Declare variables at start of block.
679         (struct loop_info): Rename to...
680         (struct loop_info_d).
681         (workaround_rts_anomaly): Change type of icode to int.
682         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
683         with int-typed variable.
684         (note_np_check_stores): Likewise.
685         (trapping_loads_p): Remove unused variable pat.
686         (bfin_expand_binop_builtin): Use expand_normal.
687         (bfin_expand_unop_builtin): Likewise.
688         (bfin_expand_builtin): Likewise.
689         Set tmode before use.
690
691         PR middle-end/44769
692         * final.c (split_double): Don't use BITS_PER_WORD directly in
693         shift count.
694
695         PR target/46431
696         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
697         assignment.
698
699         PR target/46450
700         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
701         Use add_reg_note.
702         (xstormy16_function_arg): Dereference cum.
703         (xstormy16_expand_builtin): Use expand_normal.
704         Change type of omode to enum machine_mode.
705         (combine_bnp): Rename and to and_insn.
706
707         PR target/46437
708         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
709         localreg.
710
711 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
712
713         PR debug/46375
714         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
715
716 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
717
718         PR lto/46376
719         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
720
721 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
722
723         PR c/44782
724         * common.opt (fmax-errors=): New option.
725         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
726         * diagnostic.h (struct diagnostic_context): Add max_errors field.
727         * diagnostic.c (diagnostic_initialize): Initialize it.
728         (diagnostic_action_after_output): Exit if more than max_errors
729         have been output.
730         * doc/invoke.texi (Warning Options): Add -fmax-errors.
731         (-fmax-errors): Document.
732
733 2010-11-11  Richard Henderson  <rth@redhat.com>
734
735         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
736
737 2010-11-11  Richard Henderson  <rth@redhat.com>
738
739         * config/fused-madd.opt: New file.
740         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
741         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
742         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
743         * config/i386/i386.opt (mfused-madd): Remove.
744         * config/i386/sse.md (split_fma): Remove.
745         (split_fms, split_fnma, split_fnms): Remove.
746
747 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
748
749         PR target/46088
750         * config/i386/i386.md (*ashl<mode>3_cconly,
751         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
752         change nonimmediate_operand predicate to register_operand.
753
754 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
755
756         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
757
758 2010-11-11  Jan Hubicka  <jh@suse.cz>
759
760         * opts.c (finish_options): Do not error on -flto-partition alone.
761
762         * doc/invoke.texi (-fwhopr): Merge into -flto section.
763         (-flto-partition): Document none.
764         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
765         * lto-wrapper.c: Update comment.
766         (run_gcc): Update LTO option parsing.
767         * opts.c (finish_options): add support -flto-partition=none
768         (common_handle_option): Remove fwhopr.
769         * common.opt: Turn fwhopr into flto.
770         * collect2.c (main): Update option handling.
771         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
772         * ipa-split.c (execute_split_functions): Remove flag_whopr.
773         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
774         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
775         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
776
777 2010-11-11  Jan Hubicka  <jh@suse.cz>
778
779         PR tree-optimize/40436
780         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
781         (eliminated_by_inlining_prob): ... this one; return 50% probability for
782         SRA.
783         (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob;
784         estimate static function size for 2 instructions.
785
786 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
787
788         PR target/44749
789         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
790         declare.  Change type of argument four to type int.
791         (mep_secondary_input_reload_class): Returns enum reg_class.
792         (mep_secondary_output_reload_class): Likewise.
793         (mep_function_value): Change types of arguments to cont_tree.
794         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
795         argument four to type int.
796         (mep_secondary_input_reload_class): Returns enum reg_class.
797         (mep_secondary_output_reload_class): Likewise.
798         (mep_function_value): Change types of arguments to cont_tree.
799         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
800         mep_regno_reg_class to enum reg_class.
801
802 2010-11-11  Richard Henderson  <rth@redhat.com>
803
804         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
805         that the target has the exact fma operation that we matched.
806
807 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
808
809         * reginfo.c (fix_register): Avoid inserting English word in
810         diagnostic sentence.  Use %qs for quoting and %'.
811
812 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
813
814         * config/i386/driver-i386.c (host_detect_local_cpu): Support
815         Intel processor family 6, model 0x2c.
816
817 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
818
819         * opts.c (warning_as_error_callback,
820         register_warning_as_error_callback): Remove.
821         (enable_warning_as_error): Don't use warning_as_error_callback.
822         * opts.h (register_warning_as_error_callback): Remove.
823
824 2010-11-11  Richard Henderson  <rth@redhat.com>
825
826         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
827         in between the MULT and the PLUS/MINUS.
828
829 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
830
831         PR middle-end/46388
832         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
833         BLKmode mode for it.
834         (expand_expr_real_1): Similarly for op0.
835
836 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
837
838         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
839         Document optional target selector.
840
841 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
842
843         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
844         assembling high and low parts of size if not using 32-bit HWINT; else
845         use DECL_SIZE_UNITS, not DECL_SIZE.
846
847 2010-11-11  Martin Jambor  <mjambor@suse.cz>
848
849         PR tree-optimization/46383
850         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
851         offsets.
852         (compute_complex_ancestor_jump_func): Likewise.
853         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
854
855 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
856
857         PR debug/46150
858         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
859         true if expr1->hash != expr2->hash.
860
861 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
862
863         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
864         diagnostics with lowercase letters.
865         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
866         lowercase letters.
867         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
868         diagnostic.
869         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
870         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
871         lowercase letters.
872         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
873         Remove trailing ' ' from diagnostic.
874         * config/avr/avr.c (print_operand_address): Start diagnostic with
875         a lowercase letter and remove trailing '.'.
876         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
877         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
878         with lowercase letters.  Use %' in diagnostics.  Remove trailing
879         '.' from diagnostics.
880         (bfin_handle_longcall_attribute): Use %' in diagnostic.
881         * config/cris/cris.c (cris_split_movdx,
882         cris_expand_pic_call_address): Start diagnostics with lowercase
883         letters.
884         (cris_asm_output_label_ref): Use %' in diagnostic.
885         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
886         letter.
887         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
888         lowercase letter.
889         * config/darwin-c.c (version_as_macro): Start diagnostic with a
890         lowercase letter.
891         * config/darwin-driver.c (darwin_default_min_version): Use %' in
892         diagnostic.
893         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
894         diagnostic.
895         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
896         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
897         diagnostics.
898         * config/i386/i386.c (ix86_option_override_internal): Write
899         diagnostic as a single sentence without trailing '.'.  Use %' in
900         diagnostics.
901         (ix86_function_sseregparm, classify_argument): Start diagnostics
902         with lowercase letters.
903         (ix86_expand_prologue): Use %' in diagnostic.
904         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
905         diagnostic.
906         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
907         lowercase letter.
908         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
909         diagnostic.
910         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
911         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
912         '`' in help text.
913         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
914         lowercase letter.
915         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
916         lowercase letters.
917         * config/microblaze/microblaze.c (microblaze_handle_option):
918         Remove trailing '.' from diagnostic.
919         (print_operand): Start diagnostic with a lowercase letter.
920         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
921         lowercase letters.  Avoid '`' in diagnostics.
922         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
923         lowercase letters.  Avoid '`' in diagnostics.
924         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
925         lowercase letters.  Avoid '`' in diagnostics.
926         * config/picochip/picochip.c (picochip_option_override,
927         picochip_emit_save_register, picochip_function_arg,
928         picochip_output_label, picochip_output_internal_label,
929         picochip_asm_output_opcode, picochip_output_cbranch,
930         picochip_output_compare, picochip_output_branch,
931         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
932         diagnostics. Start diagnostics with lowercase letters.  Use %' in
933         diagnostics.
934         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
935         "SPE" capitalization.  Start diagnostic with a lowercase letter.
936         (rs6000_handle_option): Start diagnostics with lowercase letters.
937         (def_builtin): Remove trailing '.' from diagnostic.
938         (rs6000_savres_routine_name): Start diagnostic with a lowercase
939         letter.
940         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
941         diagnostic.
942         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
943         lowercase letter.
944         * config/s390/s390.c (s390_option_override) Start diagnostics with
945         lowercase letters.  Use %' in diagnostic.
946         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
947         lowercase letters.
948         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
949         diagnostic.
950         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
951         diagnostic.
952         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
953         diagnostic.
954         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
955         * config/spu/spu.c (spu_option_override): Start diagnostics with
956         lowercase letters.  Use %qs for quoting in diagnostics.
957         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
958         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
959         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
960         from diagnostic.
961         * convert.c (convert_to_integer, convert_to_vector): Use %' in
962         diagnostics.
963         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
964         letter and use "cannot" spelling.
965         * expmed.c (extract_fixed_bit_field): Start diagnostic with
966         lowercase letter and format as a single sentence without '.'.
967         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
968         Use %' in diagnostics.
969         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
970         Use %' in diagnostics.
971         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
972         Use %' in diagnostics.
973         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
974         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
975         with lowercase letters and remove tailing '.' and '\n'.
976         * lto-cgraph.c (input_profile_summary): Start diagnostic with
977         lowercase letter and remove trailing '.'.
978         (input_cgraph): Start diagnostics with lowercase letters and
979         remove trailing '\n'.
980         * opts.c (finish_options, common_handle_option): Start diagnostics
981         with lowercase letters and remove trailing '.'.  Fix typo in
982         diagnostic.
983         * passes.c (position_pass): Start diagnostic with lowercase
984         letter. 
985         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
986         register_callback, try_init_one_plugin): Start diagnostics with
987         lowercase letters.
988         * reload1.c (spill_failure): Use %' in diagnostic.
989         (gen_reload): Start diagnostic with a lowercase letter.
990         * stor-layout.c (place_field): Start diagnostic with a lowercase
991         letter.
992         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
993         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
994         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
995         Start diagnostics with lowercase letters, remove trailing '.' and
996         use %' in diagnostics.
997         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
998         (verify_ssa): Don't split diagnostic across two error calls.
999         Spell out "number" and use %' in diagnostic.
1000         * value-prof.c (visit_hist, check_counter): Start diagnostics with
1001         lowercase letters.
1002
1003 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
1004
1005         PR middle-end/46419
1006         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1007         (_mm_cvtpu16_ps): Ditto.
1008
1009 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1010
1011         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1012         warn_larger_than, larger_than_size, warn_frame_larger_than,
1013         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1014         default_visibility, flag_tls_default): New Variable declarations.
1015         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1016         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1017         (v): Declare as Common and document here.
1018         * flags.h (default_visibility, flag_generate_lto,
1019         warn_larger_than, larger_than_size, warn_frame_larger_than,
1020         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1021         flag_shlib, flag_excess_precision_cmdline): Remove.
1022         (set_Wstrict_aliasing): Update prototype.
1023         * gcc.c (verbose_flag): Remove.
1024         (driver_handle_option): Add diagnostic_context parameter.  Don't
1025         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
1026         incrementing it.
1027         * opts-common.c (handle_option): Pass dc to handler.
1028         * opts.c (warn_larger_than, larger_than_size,
1029         warn_frame_larger_than, frame_larger_than_size,
1030         default_visibility): Remove.
1031         (common_handle_option): Add diagnostic_context parameter.
1032         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1033         gcc_options parameters.
1034         (lang_handle_option, target_handle_option, read_cmdline_options,
1035         decode_options): Add diagnostic_context parameters.
1036         (finish_options): Access option state through opts pointer where
1037         possible.
1038         (common_handle_option): Access option state through opts pointer
1039         where possible.  Do not set local static variable verbose.  Do not
1040         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1041         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1042         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1043         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1044         OPT_fwhopr_.  Do not explicitly set .opt file variables for
1045         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
1046         (set_Wstrict_aliasing): Add gcc_options parameter.
1047         * opts.h (struct cl_option_handler_func): Add diagnostic_context
1048         parameter to handler.
1049         (decode_options): Add diagnostic_context parameter.
1050         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1051         asm_file_name, flag_generate_lto, flag_gen_aux_info,
1052         aux_info_file_name, flag_shlib, flag_tls_default,
1053         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1054         (toplev_main): Pass global_dc to decode_options.
1055         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1056         aux_info_file_name, asm_file_name): Remove.
1057         * tree.h (flag_tls_default): Remove.
1058
1059 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1060
1061         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1062         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1063
1064 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1065
1066         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1067         (x86_64-*-*): Likewise.
1068         * config/i386/cpuid.h: Define TBM bit.
1069         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1070         and set has_tbm.
1071         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1072         isa_flag for TBM.
1073         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1074         (OPTION_MASK_ISA_TBM_UNSET): New.
1075         (ix86_handle_option): Handle -mtbm.
1076         (isa_opts): Add -mtbm.
1077         (enum pta_flags): Add PTA_TBM.
1078         (ix86_option_override_internal): Add TBM support.
1079         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
1080         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
1081         (IX86_BUILTIN_BEXTRI64): Likewise.
1082         (bdesc_args): Add TBM intrinsics.
1083         (ix86_expand_builtin): Add TBM specific case.
1084         * config/i386/i386.h (TARGET_TBM): New for TBM.
1085         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
1086         (tbm_bextri_<mode>): Likewise.
1087         (*tbm_blcfill_<mode>): Likewise.
1088         (*tbm_blci_<mode>): Likewise.
1089         (*tbm_blcic_<mode>): Likewise.
1090         (*tbm_blcmsk_<mode>): Likewise.
1091         (*tbm_blcs_<mode>): Likewise.
1092         (*tbm_blsfill_<mode>): Likewise.
1093         (*tbm_blsic_<mode>): Likewise.
1094         (*tbm_t1mskc_<mode>): Likewise.
1095         (*tbm_tzmsk_<mode>): Likewise.
1096         * config/i386/i386.opt: Add -mtbm.
1097         * config/i386/tbmintrin.h (__bextri_u32): New.
1098         (__blcfill_u32): Likewise.
1099         (__blci_u32): Likewise.
1100         (__blcic_u32): Likewise.
1101         (__blcmsk_u32): Likewise.
1102         (__blcs_u32): Likewise.
1103         (__blsfill_u32): Likewise.
1104         (__blsic_u32): Likewise.
1105         (__t1mskc_u32): Likewise.
1106         (__tzmsk_u32): Likewise.
1107         (__bextri_u64): Likewise.
1108         (__blcfill_u64): Likewise.
1109         (__blci_u64): Likewise.
1110         (__blcic_u64): Likewise.
1111         (__blcmsk_u64): Likewise.
1112         (__blcs_u64): Likewise.
1113         (__blsfill_u64): Likewise.
1114         (__blsic_u64): Likewise.
1115         (__t1mskc_u64): Likewise.
1116         (__tzmsk_u64): Likewise.
1117         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
1118         * doc/invoke.texi: Document -mtbm.
1119         * doc/extend.texi: Document TBM built-in functions.
1120
1121 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1122
1123         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
1124         (x86_64-*-*): Likewise.
1125         * config/i386/cpuid.h: Define BMI bit.
1126         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1127         and set has_bmi.
1128         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1129         isa_flag for BMI.
1130         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
1131         (OPTION_MASK_ISA_BMI_UNSET): New.
1132         (ix86_handle_option): Handle -mbmi.
1133         (isa_opts): Add -mbmi.
1134         (enum pta_flags): Add PTA_BMI.
1135         (ix86_option_override_internal): Add BMI support.
1136         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
1137         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
1138         (IX86_BUILTIN_BEXTR64): Likewise.
1139         (IX86_BUILTIN_CTZS): Likewise.
1140         (bdesc_args): Add BMI intrinsics.
1141         (ix86_expand_args_builtin): Add BMI specific cases.
1142         * config/i386/i386.h (TARGET_BMI): New for BMI.
1143         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1144         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
1145         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
1146         (UNSPEC_TZCNT): Likewise.
1147         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
1148         (bmi_andn_<mode>): New for BMI.
1149         (bmi_bextr_<mode>): Likewise.
1150         (bmi_blsi_<mode>): Likewise.
1151         (bmi_blsmsk_<mode>): Likewise.
1152         (bmi_blsr_<mode>): Likewise.
1153         * config/i386/i386.opt: Add -mbmi.
1154         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
1155         * config/i386/bmiintrin.h (__lzcnt_u16): New.
1156         (__tzcnt_u16): Likewise.
1157         (__andn_u32): Likewise.
1158         (__bextr_u32): Likewise.
1159         (__blsi_u32): Likewise.
1160         (__blsmsk_u32): Likewise.
1161         (__blsr_u32): Likewise.
1162         (__lzcnt_u32): Likewise.
1163         (__tzcnt_u32): Likewise.
1164         (__andn_u64): Likewise.
1165         (__bextr_u64): Likewise.
1166         (__blsi_u64): Likewise.
1167         (__blsmsk_u64): Likewise.
1168         (__blsr_u64): Likewise.
1169         (__lzcnt_u64): Likewise.
1170         (__tzcnt_u64): Likewise.
1171         * doc/invoke.texi: Document -mbmi and -mno-bmi.
1172         * doc/extend.texi: Document BMI built-in functions.
1173
1174 2010-11-10  Jan Hubicka  <jh@suse.cz>
1175
1176         PR tree-optimize/46228
1177         * doc/invoke.texi (comdat-sharing-probability): Document.
1178         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1179         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1180
1181 2010-11-10  Jan Hubicka  <jh@suse.cz>
1182
1183         PR tree-optimize/46228
1184         * cgraph.c (cgraph_propagate_frequency): Fix typo.
1185
1186 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
1187
1188         PR tree-optimization/46414
1189         * tree-inline.c (estimate_move_cost): Check preferred vector
1190         mode for vector type.
1191
1192 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1193
1194         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1195
1196 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
1197
1198         PR tree-optimization/45971
1199         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1200         for phi nodes analyzable by scev.
1201
1202 2010-11-10  Richard Guenther  <rguenther@suse.de>
1203
1204         PR tree-optimization/44964
1205         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1206
1207 2010-11-10  Martin Jambor  <mjambor@suse.cz>
1208
1209         PR tree-optimization/46351
1210         PR tree-optimization/46377
1211         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1212         aggregate bit-fields.
1213
1214 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1215
1216         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1217         * doc/tm.texi: Regenerate.
1218         * opts-common.c (tm.h): Don't include.
1219         (target_option_translations): Remove.
1220         (decode_cmdline_options_to_array): Don't handle translating options.
1221         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1222         * config/darwin-driver.c: Don't condition includes on
1223         CROSS_DIRECTORY_STRUCTURE.
1224         (darwin_default_min_version): Make static.
1225         (darwin_driver_init): New.  Call darwin_default_min_version if not
1226         CROSS_DIRECTORY_STRUCTURE.
1227         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1228         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1229         (ASM_SPEC): Add %{static}.
1230         (darwin_default_min_version): Don't declare.
1231         (darwin_driver_init): Declare.
1232         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1233         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1234         * config/darwin.opt (all_load, allowable_client,
1235         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1236         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1237         exported_symbols_list, filelist, findirect-virtual-calls,
1238         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1239         framework, fterminated-vtables, gfull, gused, image_base, init,
1240         install_name, multi_module, multiply_defined,
1241         multiply_defined_unused, no_dead_strip_inits_and_terms,
1242         seg_addr_table, seg_addr_table_filename, segaddr,
1243         segs_read_only_addr, segs_read_write_addr, single_module,
1244         umbrella, unexported_symbols_list, weak_reference_mismatches,
1245         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1246         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1247         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1248         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1249         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1250         (ASM_SPEC): Add %{static}.
1251         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1252         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1253         (DRIVER_SELF_SPECS): Handle options formerly in
1254         TARGET_OPTION_TRANSLATE_TABLE.
1255         * config/mep/mep.opt (mfar): New.
1256         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1257         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
1258         TARGET_OPTION_TRANSLATE_TABLE.
1259         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1260         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1261         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1262         ffix-and-continue, findirect-data): New.
1263         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1264         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1265         (mnofpu): Define mask and use Report here.
1266
1267 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1268
1269         * config/s390/s390.c (s390_emit_prologue): Report the stack
1270         size if -fstack-usage is used.
1271
1272 2010-11-10  Richard Guenther  <rguenther@suse.de>
1273
1274         PR tree-optimization/46398
1275         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
1276
1277 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
1278
1279         PR target/44760
1280         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
1281         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
1282         GP_REG_OR_PSEUDO_STRICT_P.
1283         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
1284         unexpected alternative.
1285         (*movsf_internal): Likewise.
1286         (indirect_jump): Replace call to non-existant function with call to
1287         internal_error.
1288         (tablejump): Likewise.
1289         * config/iq2000/iq2000.c: Include df.h .
1290         (iq2000_function_arg_advance): Use CONST_CAST2.
1291         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
1292         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
1293         a non-zero function address.
1294         (iq2000_initial_elimination_offset): Add gcc_unreachable for
1295         unexpected value of FROM.
1296         (symbolic_expression_p): Delete.
1297         (iq2000_function_value): Constify func.
1298         (expand_one_builtin): Use expand_normal.
1299         (iq2000_print_operand): Don't print VALUE if calculating it failed.
1300
1301         PR rtl-optimization/44764
1302         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
1303
1304         PR target/46407
1305         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
1306         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
1307         with ATTRIBUTE_UNUSED.
1308         (valid_psw_flag): Constify parameter which.
1309         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
1310
1311         PR target/46415
1312         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
1313         (mmix_dbx_register_number): Likewise.
1314         * config/mmix/mmix.c: Include df.h .
1315         (mmix_local_alignment): Change argument basic_align and return type
1316         to unsigned.
1317         (mmix_dbx_register_number): Change argument and return type to
1318         unsigned.
1319         (mmix_expand_prologue): Use add_reg_note.
1320
1321         PR target/46417
1322         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
1323         (spu_split_store): Use aform.
1324         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
1325
1326 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1327
1328         PR/46268
1329         * doc/gty.texi (GTY Options): Clarify that variable_size produces
1330         allocators taking size in bytes, compare with length option.  Add
1331         size calculation example.
1332         (Invoking the garbage collector): Ensure that sentences are
1333         followed by two spaces.  Describe that pointer fields must be
1334         initialized at ggc_collect call.
1335         (Troubleshooting): New section.
1336
1337 2010-11-09  Jan Hubicka  <jh@suse.cz>
1338
1339         PR tree-optimization/40436
1340         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
1341         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
1342         normal instructions; be sure bultin is not implemented in this file;
1343         compute non-zero return cost.
1344         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
1345         * tree-inline.h (eni_weights_d): Add return cost.
1346
1347 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
1348
1349         * c-parser.c (c_parser_struct_declaration): Handle declaration
1350         specifiers followed by CPP_CLOSE_BRACE.
1351
1352 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1353
1354         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
1355         split occurs before reload, and we allocate memory at the time of
1356         the split, not during expansion.  Add attributes.
1357         (floatsi<mode>2_lfiwax_mem): Ditto.
1358         (floatunssi<mode>2_lfiwzx): Ditto.
1359         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1360         (floatsidf2): Ditto.
1361         (floatunssisf2): Ditto.
1362         (floatunssidf2): Ditto.
1363         (fix_trunc<mode>si2): Ditto.
1364         (fix_trunc<mode>si2_stfiwx): Ditto.
1365         (fix_trunc<mode>si2_internal): Ditto.
1366         (fix_trunc<mode>si2): Ditto.
1367         (fix_trunc<mode>di2): Ditto.
1368         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1369         (floatsisf2): Ditto.
1370         (floatdidf2_mem): Ditto.
1371         (floatunsdidf2_mem): Ditto.
1372         (floatunsdidf2): Ditto.
1373         (floatdisf2_internal1): Ditto.
1374         (floatdisf2_mem): Ditto.
1375         (floatunsdisf2_mem): Ditto.
1376         (floatsi<mode>2_lfiwax_mem2): Delete.
1377         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1378         (fix_trunc<mode>si2_mem): Ditto.
1379         (fixuns_trunc<mode>si2_mem): Ditto.
1380         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
1381         type operations to reduce copying the values to multiple memory slots.
1382         (roundu32<mode>2_fprs): Ditto.
1383
1384         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
1385         PRE_INC, PRE_DEC, PRE_MODIFY.
1386         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
1387
1388         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
1389         Delete prototype.
1390
1391 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1392
1393         PR target/43808
1394         * cfgexpand.c (partition_stack_vars): Call
1395         update_alias_info_with_stack_vars unconditionally.
1396         (update_alias_info_with_stack_vars): Allow unused
1397         unreferenced vars when not optimizing.
1398
1399 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
1400
1401         PR tree-optimization/46036
1402         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
1403         add_to_dst_predicate_list.
1404
1405 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1406
1407         PR debug/46171
1408         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
1409         earlier.
1410         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
1411         argument, call dead_debug_reset when adding REG_UNUSED note.
1412         (dead_debug_reset): New function.
1413         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
1414         df_create_unused_note callers.
1415
1416 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
1417
1418         * config/fr30/fr30.c: Include "df.h".
1419
1420 2010-11-09  Richard Guenther  <rguenther@suse.de>
1421
1422         PR tree-optimization/46355
1423         * tree-loop-distribution.c (tree_loop_distribution): Do not
1424         distribute loops without a single exit.
1425
1426 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1427
1428         PR rtl-optimization/46237
1429         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
1430         saved hard regs if they might get partially clobbered.
1431
1432 2010-11-09  Paul Koning  <ni1d@arrl.net>
1433
1434         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
1435
1436 2010-11-09  Richard Guenther  <rguenther@suse.de>
1437
1438         PR tree-optimization/46177
1439         * tree-loop-distribution.c (prop_phis): Remove.
1440         (generate_builtin): Re-use the old loop exit edge to avoid
1441         needing to update PHI nodes.
1442
1443 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
1444
1445         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
1446         type of args_size to unsigned HOST_WIDE_INT.
1447
1448         PR target/44755
1449         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
1450         * config/t-pnt16-warn: New file.
1451         * config/picochip/picochip.c (picochip_emit_stack_allocate):
1452         Use add_reg_note.
1453         (picochip_emit_save_register): Likewise.
1454         (picochip_emit_restore_register): Remove variable insn.
1455         (picochip_legitimize_address): Don't use C++ style comments.
1456         (picochip_legitimize_reload_address): Likewise.
1457         (reorder_var_tracking_notes): Remove variable vliw_start.
1458         (picochip_reorg): Cast first arguemnt to emit_note_after to
1459         enum insn_note.
1460         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
1461         (picochip_expand_builtin_3op): Likewise.
1462         (picochip_expand_builtin_2opvoid): Likewise.
1463         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
1464         (picochip_expand_array_testport): Likewise.
1465         (picochip_init_builtins): Remove unused variables.
1466         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
1467         to unsigned long, and output it as such.
1468         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1469         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
1470         (schedType): Cast result of picochip_schedule_type to
1471         enum attr_schedType.
1472
1473         PR target/44759
1474         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
1475         conditional to type of S.
1476         (mn10300_function_arg): Remove unused variable align.
1477         (mn10300_arg_partial_bytes): Likewise.
1478         * config/mn10300/mn10300.md (attribute cpu): Cast value to
1479         enum attr_cpu.
1480
1481 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
1482
1483         PR bootstrap/46392
1484         * gengtype-parse.c (type): Call get_input_file_name to get file name.
1485
1486 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1487
1488         * tree.h (contains_placeholder_p): Fix comment.
1489         (type_contains_placeholder_p): Adjust comment.
1490         * tree.c (contains_placeholder_p): Fix comment.
1491         (type_contains_placeholder_1): Do not recurse on pointed-to types and
1492         adjust comment.
1493         (type_contains_placeholder_p): Add comment.
1494
1495 2010-11-09  Paul Koning  <ni1d@arrl.net>
1496
1497         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
1498         output of byte values.
1499
1500 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1501
1502         PR middle-end/46360
1503         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
1504         not in SSA mode.
1505
1506 2010-11-09  Richard Guenther  <rguenther@suse.de>
1507
1508         PR middle-end/46221
1509         * varasm.c (compute_visible_aliases): New function.
1510         (remove_unreachable_alias_pairs): Aliases make a target available
1511         even though we reclaimed the cgraph node.
1512         (finish_aliases_1): Likewise.
1513         * Makefile.in (varasm.o): Add pointer-set.h dependency.
1514
1515 2010-11-09  Nick Clifton  <nickc@redhat.com>
1516
1517         * config/mn10300/mn10300-modes.def: New file.
1518
1519 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
1520             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1521
1522         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
1523         (plugin_files, get_file_basename, get_file_realbasename)
1524         (get_file_langdir, error_at_line, gt_files, this_file)
1525         (system_h_file, read_input_list, create_field_all)
1526         (get_file_srcdir_relative_path, get_file_basename)
1527         (get_file_langdir, get_file_gtfilename)
1528         (get_output_file_with_visibility, get_output_file_name)
1529         (struct flist, put_mangled_filename, walk_type)
1530         (put_mangled_filename, finish_root_table, write_roots): Use
1531         input_file-s.
1532         (lang_dir_names, num_lang_dirs): Remove static.
1533         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
1534         (main): Use input_file-s.
1535
1536         * gengtype.h: (struct input_file_st, input_file): New type.
1537         (struct fileloc): Use it.
1538         (gt_files, num_gt_files, this_file, system_h_file)
1539         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
1540         (get_input_file_name): New function.
1541         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
1542         use input_file.
1543         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
1544         (get_output_file_name): Ditto.
1545
1546         * gengtype-lex.l (yybegin): Use input_file.
1547
1548         * gengtype-parse.c (parse_error): Use input_file.
1549
1550 2010-11-08  Xinliang David Li  <davidxl@google.com>
1551
1552         PR tree-optimization/46316
1553         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
1554         * double-int.h (double_int_mul_with_sign): New function.
1555         * double-int.c (double_int_mul_with_sign): New function.
1556
1557 2010-11-08  Paul Koning  <ni1d@arrl.net>
1558
1559         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
1560
1561 2010-11-08  Paul Koning  <ni1d@arrl.net>
1562
1563         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
1564
1565 2010-11-08  Paul Koning  <ni1d@arrl.net>
1566
1567         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
1568         to 8 bits.
1569
1570 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1571
1572         PR target/46378
1573         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1574         turn on ISA 2.04 rounding instructions for power5.
1575
1576         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
1577         not ISA 2.02.
1578
1579         PR target/45585
1580         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
1581         in FPR registers.
1582         (movdi_low_st): Ditto.
1583
1584 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1585             Richard Henderson  <rth@redhat.com>
1586
1587         PR target/44758
1588         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
1589         (attribute acc_group): Cast value to enum attr_acc_group.
1590         (*movdi_nodouble+6): Use gen_int_mode.
1591         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
1592         if RTX_CODE is defined or not.
1593         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
1594         struct frv_io.
1595         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
1596         (frv_frame_access, frv_expand_prologue): Remove unused variables.
1597         (frv_expand_block_clear): Likewise.
1598         (frv_trampoline_init): Use LCT_NORMAL.
1599         (struct frv_packet_group): New struct, broken out of type of
1600         frv_packet.
1601         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
1602         use cast in loop counter increment.
1603         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
1604         assigning to io->type.
1605         (bdesc_set): Use rtx_code UNKNOWN in initializer.
1606         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
1607         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
1608         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
1609         (frv_read_argument): Use expand_normal.
1610
1611         PR target/44757
1612         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
1613         lm32_legitimate_constant_p.
1614         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
1615         * config/lm32/lm32.c (gen_int_relational): Make new block for
1616         LE / LT / LEU / LTU case.  Declare variables at start of block.
1617         (lm32_block_move_inline): Use XALLOCAVEC.
1618
1619 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1620
1621         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
1622
1623 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1624
1625         * gengtype (get_output_file_for_structure): Ensure type is union
1626         or struct.
1627         (write_splay_tree_allocator_def): Use
1628         get_output_file_with_visibility.
1629
1630 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1631
1632         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
1633         to defined values in case of an error.
1634         (s390_option_override): Skip further processing if the -march
1635         parameter wasn't recognized.
1636
1637 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1638
1639         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
1640         assert that REG is a hard register number before using it as an index.
1641
1642         PR bootstrap/46358
1643         * config/i386/i386.c (ix86_expand_split_stack_prologue):
1644         Avoid warnings when HOST_WIDE_INT is 32 bit.
1645
1646 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1647
1648         PR target/46208
1649         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
1650         (sparc_promote_prototypes): Likewise.
1651         (sparc_promote_function_mode): Promote in 32-bit mode as well.
1652         (sparc_return_in_memory): Remove superfluous parentheses.
1653         (sparc_struct_value_rtx): Fix long lines.
1654         (sparc_function_value_1): Promote in 32-bit mode as well.
1655
1656 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
1657
1658         PR rtl-optimization/45352
1659         * sel-sched.c (find_best_expr): Do not set pneed_stall when
1660         the variable_issue hook is not implemented.
1661         (fill_insns): Remove dead variable stall_iterations.
1662         (init_seqno_1): Force EBB start for resetting sched cycles on any
1663         successor blocks of the rescheduled region.
1664         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
1665         (reset_sched_cycles_in_current_ebb): Add debug printing.
1666         New variable issued_insns.  Advance state when we have issued
1667         issue_rate insns.
1668
1669 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1670
1671         * gengtype (main): Get here's position using POS_HERE macro for
1672         do*typedef calls.
1673
1674 2010-11-07  Ian Lance Taylor  <iant@google.com>
1675
1676         PR target/46089
1677         * config/i386/i386.c (split_stack_fn_large): New static variable.
1678         (ix86_expand_split_stack_prologue): Handle large model.
1679
1680 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
1681
1682         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
1683         all possible addressing modes.
1684
1685 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
1686
1687         PR tree-optimization/46346
1688         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
1689
1690 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1691
1692         * config/mips/mips.c: Revert previous patch.
1693         * config/mips/mips.md: Likewise.
1694
1695 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1696
1697         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
1698         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
1699         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
1700         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
1701         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
1702         to use FMA.
1703         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
1704         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
1705         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
1706         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
1707
1708 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
1709
1710         PR c/43384
1711         * c-decl.c (lookup_label): Labels can only be referenced in a
1712         function's scope.
1713         (store_parm_decls_oldstyle): Skip erroneous parameters.
1714
1715 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
1716
1717         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1718         LIBCALL_VALUE): Remove macros.
1719         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1720         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1721         (fr30_function_value_regno_p, fr30_function_value,
1722         fr30_libcall_value): New functions.
1723
1724 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
1725
1726         PR middle-end/46314
1727         * target.def (generate_internal_label): New asm_out hook.
1728         * output.h (default_generate_internal_label): Declare.
1729         * varasm.c (default_generate_internal_label): Define.
1730
1731 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1732
1733         PR target/44981
1734         * doc/extend.tex (format): Document NSString extension.
1735         (format_arg): Likewise.
1736         (Darwin Format Checks): New section.
1737         * doc/tm.texi: Document string object hooks (generated).
1738         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
1739         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1740         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1741         * target.def (objc_construct_string_object): Rename, amend
1742         documentation.
1743         (string_object_ref_type_p): New hook.
1744         (check_string_object_format_arg): New hook.
1745         * c-parser.c (c_parser_attributes): Allow objective-c class names as
1746         attribute identifiers.
1747         * config/darwin-c.c (darwin_cfstring_ref_p): New.
1748         (darwin_check_cfstring_format_arg): New.
1749         (darwin_additional_format_types): New.
1750         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
1751         (darwin_check_cfstring_format_arg): New.
1752         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
1753         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1754         (TARGET_N_FORMAT_TYPES): New.
1755         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1756
1757 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1758             Pascal Obry  <obry@adacore.com>
1759
1760         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
1761         in 64-bit mode and 17 otherwise.
1762
1763 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1764
1765         PR debug/45939
1766         * var-tracking.c (emit_note_insn_var_location): Make sure that
1767         call related var location notes come before the normal ones.
1768
1769 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1770
1771         PR target/46326
1772         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
1773         in the last change.
1774
1775 2010-11-05  Ian Lance Taylor  <iant@google.com>
1776
1777         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
1778
1779 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1780
1781         PR c/44772
1782         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
1783         pointer_set_contains if DECL_NAME is NULL.
1784
1785 2010-11-05  Ian Lance Taylor  <iant@google.com>
1786
1787         PR target/46084
1788         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
1789         request enough additional space for alignment, and force alignment.
1790
1791 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
1792
1793         * config/i386/i386.c (legitimate_pic_address_disp_p):
1794         Handle UNSPEC_PCREL.
1795         (ix86_legitimate_address_p): Likewise.
1796         (legitimize_pic_address): Likewise.
1797         (output_pic_addr_const): Likewise.
1798         (ix86_delegitimize_address): Likewise.
1799         (ix86_find_base_term): Likewise.
1800         (memory_address_length): Likewise.
1801         (x86_output_mi_thunk): Handle special case x64
1802         for non local binding.
1803         * config/i386/i386.md (UNSPEC_PCREL): New.
1804         * config/i386/winnt.c (i386_pe_binds_local_p):
1805         Allow weak symbol for x64 windows with non-local binding.
1806
1807 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1808
1809         PR target/45670
1810         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
1811         instead of EXPAND_NORMAL for base expansion.
1812
1813 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
1814
1815         * config.gcc: Support --with-fpmath=avx for x86.
1816         * config/i386/avxmath.h: New.
1817         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
1818
1819 2010-11-05  Ian Lance Taylor  <iant@google.com>
1820
1821         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
1822         * gengtype.c (walk_type): Don't recognize descbits option.
1823
1824 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
1825
1826         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
1827         WORD_SWITCH_TAKES_ARG): Remove.
1828         * doc/options.texi (Args): Document.
1829         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
1830         * doc/tm.texi: Regenerate.
1831         * opt-functions.awk (switch_flags): Handle Args.
1832         * opts-common.c: Update comment on tm.h include.
1833         (decode_cmdline_option): Handle options with multiple arguments.
1834         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
1835         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
1836         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1837         CL_COMMON): Update values.
1838         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
1839         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
1840         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
1841         sectobjectsymbols, sectorder, segcreate, segprot): New.
1842
1843 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1844             Uros Bizjak  <ubizjak@gmail.com>
1845
1846         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
1847         256bit AVX register is used.
1848         (ix86_expand_vector_move_misalign): Likewise.
1849         (ix86_expand_vector_move): Replace use_avx256_p with
1850         VALID_AVX256_REG_MODE.
1851
1852 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
1853
1854          PR target/44750
1855         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
1856         change.  Set $@-warn.o to -Wno-error.
1857
1858         PR bootstrap/44756
1859         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
1860         comparing it to a signed value.
1861
1862         PR middle-end/44766
1863         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
1864         PR bootstrap/44770
1865         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
1866         to i.
1867
1868         PR target/44754
1869         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
1870         (m32c_function_arg).  Add comma between arguments two and three.
1871         (m32c_promote_prototypes): Remove declaration.
1872         (current_function_special_page_vector): Likewise.
1873         (m32c_regno_reg_class): Change return type to enum reg_class.
1874         (m32c_pushm_popm): Use add_reg_note.
1875         (m32c_push_rounding): Change return type to unsigned int.
1876         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
1877         enum reload_type.
1878         (m32c_insert_attributes): Constify variable name.
1879         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
1880         (m32c_prepare_shift): Remove variable lref.
1881         (m32c_expand_movcc): Remove variable cmp.
1882         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
1883         (m32c_compare_redundant): Remove variable op2.
1884         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
1885         (m32c_pragma_memregs): Assign the number to target_memregs.
1886         (m32c_pragma_address): Remove variable var_str.
1887         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
1888         enum reg_class.
1889         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
1890         * config/m32c/bitops.md (andsi3): Add default case to switch.
1891         (iorsi3, xorsi3): Likewise.
1892         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
1893         * config/m32c/jump.md (call, call_value): Likewise.
1894         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
1895         (m32c_regno_reg_class): Likewise.
1896         (current_function_special_page_vector): Declare.
1897
1898 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
1899
1900         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
1901
1902         PR tree-optimization/46099
1903         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
1904         if it is NULL and uid wasn't found in the hash table.  Just fold the
1905         result if it is NULL otherwise.  Insert other potentially needed
1906         stmts right before current stmt instead of on the entry edge.
1907         (struct elv_data): Add gsi and reset fields.
1908         (eliminate_local_variables_1): Adjust caller.  If take_address_of
1909         failed for debug stmt, set dta->reset and return.
1910         (eliminate_local_variables_stmt): Change STMT argument for GSI,
1911         pass GSI through to the callback, handle resetting of debug stmts.
1912         (eliminate_local_variables): Adjust caller.  Process debug stmts
1913         in second phase.
1914
1915         PR middle-end/43690
1916         * gimplify.c (gimplify_asm_expr): If a "m" input is a
1917         {pre,post}{in,de}crement, fail.
1918
1919         PR debug/46307
1920         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
1921         * tree-pretty-print.c (dump_generic_node): Likewise.
1922         (op_code_prio): Likewise.
1923         * cfgexpand.c (expand_debug_expr): Likewise.
1924
1925 2010-11-04  Paul Koning  <ni1d@arrl.net>
1926
1927         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
1928         constraints.
1929
1930 2010-11-04  Chao-ying Fu  <fu@mips.com>
1931
1932         * configure.ac: Test assembler support for DSP Rev1 mult.
1933         * configure: Regenerate.
1934         * config.in: Regenerate.
1935         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
1936         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
1937         (CODE_FOR_mips_multu): New define.
1938         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
1939         dspr2_32 to dsp_32.
1940         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
1941         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
1942         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
1943         New define_expand patterns.
1944         * config/mips/constraints.md (ka): Update the constraint to test
1945         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
1946         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
1947         mips_multu): Delete.
1948         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
1949         Change target constraint to "ka".
1950         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
1951         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
1952         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1953         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
1954         Emit the accumulator destination when ISA_HAS_DSP_MULT.
1955         (<u>maddsidi4): Likewise.
1956         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
1957         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
1958
1959 2010-11-04  Paul Koning  <ni1d@arrl.net>
1960
1961         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
1962
1963 2010-11-04  Paul Koning  <ni1d@arrl.net>
1964
1965         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
1966
1967 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
1968
1969         Fixed using the Objective-C 2.0 dot-syntax with class names.
1970         * c-parser.c (c_parser_next_token_starts_declspecs): In
1971         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
1972         (c_parser_next_token_starts_declaration): Same.
1973         (c_parser_postfix_expression): Parse the Objective-C 2.0
1974         dot-syntax with a class name.
1975
1976 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
1977
1978         * final.c (compute_alignments): Compute/free loop info all the time.
1979         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
1980         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
1981         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
1982         * config/rs6000/rs6000.c (cfgloop.h): Include.
1983         (can_override_loop_align): New.
1984         (rs6000_option_override_internal): Set it.
1985         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
1986         (rs6000_loop_align): New function.
1987         (rs6000_loop_align_max_skip): Likewise.
1988
1989 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1990
1991         PR driver/45703
1992         * collect2.c (main): Print --help output to stdout.  Do not
1993         exit right away, so ld --help is appended.  Add empty lines
1994         to separate output suitably.
1995
1996 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
1997
1998         PR tree-optimization/46233
1999         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2000         after calling analyze_function, not before.
2001
2002         PR target/46234
2003         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2004         instead of build_va_arg_indirect_ref.
2005         * config/spu/spu.c (spu_va_start): Likewise.
2006         * config/s390/s390.c (s390_va_start): Likewise.
2007
2008 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
2009
2010         PR middle-end/46292
2011         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2012         if the innermode is not vector mode, determine the mode of a subreg
2013         by using mode_for_size of inner_size.
2014
2015 2010-11-04  Richard Guenther  <rguenther@suse.de>
2016
2017         PR rtl-optimization/46183
2018         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2019         (execute_rtl_pre): Likewise.
2020         (execute_rtl_hoist): Likewise.
2021
2022 2010-11-04  Richard Guenther  <rguenther@suse.de>
2023
2024         PR tree-optimization/46068
2025         * ipa-split.c (consider_split): Remove gcc_unreachable.
2026
2027 2010-11-04  Richard Guenther  <rguenther@suse.de>
2028
2029         * tree-nested.c (build_addr): Use build_fold_addr_expr.
2030
2031 2010-11-04  Richard Guenther  <rguenther@suse.de>
2032
2033         PR tree-optimization/45991
2034         * gimplify.c (force_gimple_operand_1): Use the provded test
2035         function in the initial test.
2036
2037 2010-11-04  Jeff Law  <law@redhat.com>
2038
2039         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2040         of readonly memory equivalances for const/pure calls.
2041
2042 2010-11-04  Richard Guenther  <rguenther@suse.de>
2043
2044         PR tree-optimization/45733
2045         * tree-vect-stmts.c (reverse_vec_elements): Honor the
2046         permute builtins function return type.
2047
2048 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
2049
2050         PR middle-end/44765
2051         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2052         as an index, check it is not INVALID_REGNUM.
2053
2054         PR bootstrap/44756
2055         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2056         unsignedp.
2057         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2058
2059         PR bootstrap/44756
2060         * function.c (thread_prologue_and_epilogue_insns): Add
2061         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2062
2063         PR bootstrap/44756
2064         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2065
2066         PR target/44750
2067         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2068         (pdp11_preferred_reload_class): Rename class to rclass.
2069         (pdp11_preferred_output_reload_class): Likewise.
2070         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2071         ALL_COMPILERFLAGS .
2072         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2073
2074         PR bootstrap/44756
2075         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2076         iteration variables to enum machine_mode.
2077
2078         PR target/44751
2079         * config/h8300/h8300.c: Include df.h.
2080         (push, pop): Use add_reg_note.
2081         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
2082         (compute_a_shift_cc): Likewise.
2083         (expand_a_shift): Argument code has type enum rtx_code.
2084         (struct shift_insn): Member cc_valid has type enum attr_cc.
2085         (struct shift_info) <cc_inline, cc_special>: Likewise.
2086         enum attr_cc.
2087         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
2088         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2089
2090 2010-11-04  Ira Rosen  <irar@il.ibm.com>
2091
2092         PR tree-optimization/46213
2093         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
2094         MINUS_EXPR only if the first operand is reduction operand.
2095
2096 2010-11-04  Richard Guenther  <rguenther@suse.de>
2097             Richard Henderson  <rth@redhat.com>
2098
2099         * tree.def (FMA_EXPR): New tree code.
2100         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
2101         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
2102         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
2103         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
2104         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2105         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
2106         (execute_optimize_widening_mul): Call it.  Reorganize to allow
2107         dead stmt removal.  Move TODO flags ...
2108         (pass_optimize_widening_mul): ... here.
2109         * flag-types.h (enum fp_contract_mode): New enum.
2110         * common.opt (flag_fp_contract_mode): New variable.
2111         (-ffp-contract): New option.
2112         * opts.c (common_handle_option): Handle it.
2113         * doc/invoke.texi (-ffp-contract): Document.
2114         * tree.h (fold_fma): Declare.
2115         * builtins.c (fold_fma): New function.
2116         (fold_builtin_fma): Likewise.
2117         (fold_builtin_3): Call it for fma.
2118         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
2119         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
2120         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
2121         New expanders.
2122         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
2123         named patterns.
2124         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
2125         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
2126         (fms_optab, fnma_optab, fnms_optab): New defines.
2127         * gimplify.c (gimplify_expr): Handle binary truth expressions
2128         explicitly.  Handle FMA_EXPR.
2129         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
2130         operations.
2131
2132 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2133             Richard Guenther  <rguenther@suse.de>
2134
2135         * passes.c (init_optimization_passes): Move veclower after SSA.
2136         * tree-vect-generic.c (uniform_vector_p): New function.
2137         (expand_vector_operations_1): Handle conversion.
2138         (pass_lower_vector): Update SSA form.
2139
2140 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
2141
2142         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
2143         plugin capabilities.
2144         * configure: Regenerate.
2145
2146 2010-11-03  Xinliang David Li  <davidxl@google.com>
2147
2148         PR target/46200
2149         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
2150         Adjust cbase if the use stmt is after iv update.
2151
2152 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2153
2154         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2155
2156 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2157
2158         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
2159         comment.  Pass true to the last argument of output_stack_adjust.
2160
2161 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2162
2163         PR target/46295
2164         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
2165         if 256bit AVX register is used.
2166
2167 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2168
2169         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
2170         xsmindp/xsmaxdp on VSX for single precision min/max.
2171         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
2172         (vsx_sminsf3): Ditto.
2173
2174 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2175
2176         * combine.c (try_combine): Fix formatting issues, improve comments and
2177         fix a pasto.
2178
2179 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2180
2181         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2182         of the result before building binary expressions.
2183
2184 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2185
2186         PR rtl-optimization/45865
2187         * Makefile.in (df-problems.o): Revert revision 164552.
2188         * basic-block.h (enum bb_flags): Likewise.
2189         * cfgcleanup.c (block_was_dirty): Likewise.
2190         (try_forward_edges): Likewise.
2191         (try_crossjump_bb): Likewise.
2192         (try_head_merge_bb): Likewise.
2193         (try_optimize_cfg): Likewise.
2194         (cleanup_cfg): Likewise.
2195         * df-core.c (df_set_bb_dirty): Likewise.
2196         * df-problems.c: Likewise.
2197         (df_simulate_find_uses): Likewise.
2198         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2199         (find_memory, find_memory_store): Likewise.
2200         (can_move_insns_across): Likewise.
2201         * df.h (can_move_insns_across): Likewise.
2202         * ifcvt.c (find_memory): Likewise.
2203         (dead_or_predicable): Likewise.
2204
2205 2010-11-03  Richard Guenther  <rguenther@suse.de>
2206
2207         PR middle-end/46288
2208         * predict.c (strip_predict_hints): Simply DCE builtin expect if
2209         the result is unused.
2210
2211 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2212
2213         PR tree-optimization/46009
2214         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2215         cond_if_else_store_replacement if bb1 and bb2 have the same
2216         single successor.
2217         (cond_store_replacement): Use gimple_assign_single_p, don't
2218         check if rhs is SSA_NAME or invariant.  Call release_defs for
2219         assign.
2220         (cond_if_else_store_replacement): New function.
2221
2222 2010-11-03  Richard Guenther  <rguenther@suse.de>
2223
2224         * opts.c (finish_options): Properly check for all WHOPR
2225         flags before complaining about -flto-partition.
2226
2227 2010-11-04  Alan Modra  <amodra@gmail.com>
2228
2229         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2230         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2231         TARGET_SECURE_PLT.
2232         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2233         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2234         on input, "r" on output.
2235
2236 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
2237
2238         Implemented -fobjc-std=objc1 flag.
2239         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2240         option.
2241         * doc/standards.texi (Standards): Updated the section on
2242         Objective-C; mention support for Objective-C 2.0 features and the
2243         new -fstd-objc=objc1 flag to disable them.
2244
2245 2010-11-03  Richard Guenther  <rguenther@suse.de>
2246
2247         PR middle-end/46241
2248         * dwarf2out.c (scope_die_for): Properly detect global scope.
2249
2250 2010-11-03  Richard Guenther  <rguenther@suse.de>
2251
2252         PR tree-optimization/46190
2253         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2254         Properly compute peel iterations.
2255
2256 2010-11-03  Richard Guenther  <rguenther@suse.de>
2257
2258         PR tree-optimization/46286
2259         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2260         re-allocated vector data.
2261
2262 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2263
2264         PR target/46285
2265         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2266         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2267         is completed.
2268
2269 2010-11-03  Richard Guenther  <rguenther@suse.de>
2270
2271         PR tree-optimization/46217
2272         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2273         flag matches.
2274         (execute_update_addresses_taken): Likewise.
2275
2276 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2277
2278         PR bootstrap/44335
2279         * targhooks.c (targhook_words_big_endian): New function.
2280         (targhook_float_words_big_endian): Likewise.
2281         * targhooks.h (targhook_words_big_endian): Declare.
2282         (targhook_float_words_big_endian): Likewise.
2283         * target.def (words_big_endian, float_words_big_endian): New hooks.
2284
2285 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR tree-optimization/46165
2288         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
2289         a normal call into noreturn call.
2290
2291 2010-11-03  Richard Guenther  <rguenther@suse.de>
2292
2293         PR middle-end/46251
2294         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
2295         not INDIRECT_REFs.
2296
2297 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2298
2299         PR tree-optimization/46107
2300         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
2301         if cfg_hook_duplicate_loop_to_header_edge failed.
2302
2303 2010-11-03  Ian Lance Taylor  <iant@google.com>
2304
2305         PR lto/46273
2306         * config.gcc: Don't set lto_binary_reader.
2307         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2308         (Configuration): Mention --disable-lto.  Remove --with-libelf
2309         paragraph.
2310
2311 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2312
2313         PR debug/46252
2314         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
2315         prev_real_insn.
2316         * gcse.c (insert_insn_end_basic_block): Likewise.
2317
2318         PR rtl-optimization/46034
2319         PR rtl-optimization/46212
2320         PR rtl-optimization/46248
2321         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
2322         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
2323         before i0dest -> i0src substitution and pass 1 instead of 0 as last
2324         argument to subst on i2pat.
2325
2326 2010-11-02  Ian Lance Taylor  <iant@google.com>
2327
2328         * configure.ac: Use AC_SYS_LARGEFILE.
2329         * configure: Rebuild.
2330         * config.in: Rebuild.
2331
2332 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2333
2334         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
2335         fold_convert.
2336         * c-typeck.c (build_function_call_vec): Likewise.
2337         * cfgexpand.c (expand_debug_expr): Likewise.
2338         * cgraphunit.c (assemble_thunk): Likewise.
2339         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
2340         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
2341         (fold_binary_loc, fold_ternary_loc): Likewise.
2342         * gimple-fold.c (get_symbol_constant_value): Likewise.
2343         * gimple-low.c (lower_builtin_setjmp): Likewise.
2344         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
2345         * gimplify.c (gimplify_init_constructor): Likewise.
2346         * lambda.h (build_linear_expr): Likewise.
2347         * omp-low.c (omp_reduction_init): Likewise.
2348         * tree-inline.c (remap_ssa_name): Likewise.
2349         * tree-object-size.c (compute_object_sizes): Likewise.
2350         * tree-sra.c (init_subtree_with_zero): Likewise.
2351         (sra_ipa_modify_assign): Likewise.
2352         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
2353         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
2354         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
2355         (undistribute_ops_list): Likewise.
2356         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2357         * tree-vect-stmts.c (vectorizable_call): Likewise.
2358         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
2359         (build_zero_cst): Handle more cases directly.  Update comment.
2360
2361 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2362
2363         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
2364         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
2365
2366         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
2367         and call ix86_split_call_vzeroupper instead of
2368         ix86_split_call_pop_vzeroupper.
2369         (*call_pop_1_vzeroupper): Likewise.
2370         (*sibcall_pop_1_vzeroupper): Likewise.
2371         (*call_value_pop_0_vzeroupper): Likewise.
2372         (*call_value_pop_1_vzeroupper): Likewise.
2373         (*sibcall_value_pop_1_vzeroupper): Likewise.
2374
2375 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2376
2377         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
2378
2379 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2380
2381         * basic-block.h (insert_insn_end_bb_new): Delete.
2382         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
2383
2384 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
2385             H.J. Lu  <hongjiu.lu@intel.com>
2386
2387         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
2388         (ix86_split_call_pop_vzeroupper): Likewise.
2389
2390         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
2391         (ix86_expand_call): Conditionally decorate calls with
2392         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
2393         (ix86_split_call_vzeroupper): New.
2394         (ix86_split_call_pop_vzeroupper): Likewise.
2395
2396         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
2397         (*call_pop_0_vzeroupper): New insn_and_split pattern.
2398         (*call_pop_1_vzeroupper): Likewise.
2399         (*sibcall_pop_1_vzeroupper): Likewise.
2400         (*call_0_vzeroupper): Likewise.
2401         (*call_1_vzeroupper): Likewise.
2402         (*sibcall_1_vzeroupper): Likewise.
2403         (*call_1_rex64_vzeroupper): Likewise.
2404         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
2405         (*call_1_rex64_large_vzeroupper): Likewise.
2406         (*sibcall_1_rex64_vzeroupper): Likewise.
2407         (*call_value_pop_0_vzeroupper): Likewise.
2408         (*call_value_pop_1_vzeroupper): Likewise.
2409         (*sibcall_value_pop_1_vzeroupper): Likewise.
2410         (*call_value_0_vzeroupper): Likewise.
2411         (*call_value_0_rex64_vzeroupper): Likewise.
2412         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
2413         (*call_value_1_vzeroupper): Likewise.
2414         (*sibcall_value_1_vzeroupper): Likewise.
2415         (*call_value_1_rex64_vzeroupper): Likewise.
2416         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
2417         (*call_value_1_rex64_large_vzeroupper): Likewise.
2418         (*sibcall_value_1_rex64_vzeroupper): Likewise.
2419
2420 2010-11-02  Ian Lance Taylor  <iant@google.com>
2421
2422         PR lto/46273
2423         * config.gcc: Revert last patch: set lto_binary_reader.
2424
2425 2010-11-02  Richard Guenther  <rguenther@suse.de>
2426
2427         PR tree-optimization/46149
2428         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
2429         non-indirect MEM_REF variants.
2430
2431 2010-11-02  Richard Guenther  <rguenther@suse.de>
2432
2433         PR tree-optimization/46216
2434         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2435         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
2436
2437 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2438
2439         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
2440         (*-*-osf*): Likewise.
2441         * configure: Regenerate.
2442
2443 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2444
2445         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
2446         for Intel Core 2 and Core i7.
2447
2448 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2449
2450         Model decoder of Core 2/i7 for multipass scheduling.
2451
2452         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
2453         New type to hold target-specific data for multipass scheduling.
2454         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2455         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
2456         Core 2/i7.
2457         (core2i7_secondary_decoder_max_insn_size,)
2458         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
2459         New static variables.
2460         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
2461         ([_]ix86_first_cycle_multipass_data): New static variable.
2462         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
2463         Implement targetm.sched hooks.
2464         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
2465         of ...
2466         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
2467         Implement new targetm.sched hooks.
2468         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
2469         targetm.sched hook to install multipass scheduling hooks on demand.
2470
2471         * doc/tm.texi.in: Document new targetm.sched hooks.
2472         * doc/tm.texi: Regenerate.
2473
2474         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2475         (first_cycle_multipass_data_t): New typedef.
2476         (struct choice_entry: target_data): New field.
2477         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
2478         to allow target model restrictions not represented in DFA.
2479         (choose_ready, schedule_block): Update.
2480         (sched_extend_ready_list, sched_finish_ready_list): Call new target
2481         hooks to initialize target-specific data for multipass scheduling.
2482         * sched-int.h (max_issue): Update declaration.
2483         * sel-sched.c (choose_best_insn): Update.
2484         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
2485         (first_cycle_multipass_{init, fini}): Define and document new
2486         targetm.sched hooks.
2487
2488 2010-11-02  Richard Guenther  <rguenther@suse.de>
2489
2490         PR tree-optimization/46184
2491         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
2492         input vector type from the reduction operand as well.
2493
2494 2010-11-02  Richard Guenther  <rguenther@suse.de>
2495
2496         PR tree-optimization/46177
2497         * tree-loop-distribution.c (prop_phis): Use
2498         mark_virtual_phi_result_for_renaming.
2499
2500 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2501
2502         PR middle-end/46120
2503         * tree.c (get_binfo_at_offset): Bail out on artificial
2504         fields.  Identify primary bases according to their offsets.
2505
2506 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2507
2508         PR tree-optimization/45875
2509         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
2510         (gimple_get_relevant_ref_binfo): Detect primary bases according to
2511         their field offset.
2512
2513 2010-11-02  Ian Lance Taylor  <iant@google.com>
2514
2515         * doc/install.texi (Configuration): Note in two places that Java
2516         is not enabled by default.
2517
2518 2010-11-02  Ian Lance Taylor  <iant@google.com>
2519
2520         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2521         (Configuration): Mention --disable-lto.  Remove --with-libelf
2522         paragraph.
2523
2524 2010-11-02  Ian Lance Taylor  <iant@google.com>
2525
2526         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
2527         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
2528         LIBELFINC.  Remove HAVE_libelf.
2529         * config.gcc: Don't set lto_binary_reader.
2530         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
2531         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
2532         (LIBS): Remove $(LIBELFLIBS).
2533         (INCLUDES): Remove $(LIBELFINC).
2534         * configure: Rebuild.
2535         * config.in: Rebuild.
2536
2537 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2538
2539         * config/microblaze/microblaze-protos.h (function_arg): Delete.
2540         (function_arg_advance): Delete.
2541         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
2542         (FUNCTION_ARG): Delete.
2543         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
2544         (microblaze_function_arg_advance): ...this.  Make static.  Take a
2545         const_tree and a bool.
2546         (function-arg): Rename to...
2547         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
2548         and a bool.
2549         (microblaze_expand_prologue): Call targetm.calls.function_arg and
2550         targetm.calls.function_arg_advance.
2551         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2552
2553 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2554
2555         Merge from FSF "apple/trunk" branch.
2556
2557         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
2558         * config/darwin.opt: .. to here.
2559         (matt-stubs): New option.
2560         * config/i386/darwin.opt: Delete.
2561         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
2562         (MACHO_DYNAMIC_NO_PIC_P): New.
2563         (MACHOPIC_INDIRECT): New.
2564         (MACHOPIC_PURE): New.
2565         * config/i386/darwin.h (DARWIN_X86) Define to 1.
2566         (MACHOPIC_ATT_STUB): New.
2567         (CC1_SPEC): Do not remove mdynamic-no-pic.
2568         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2569         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2570         (FUNCTION_PROFILER): Correct over-length line.
2571         (SUBTARGET_OVERRIDE_OPTIONS): New.
2572         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2573         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
2574         (legitimate_constant_p): Handle mdynamic-no-pic.
2575         (ix86_legitimate_address_p): Likewise.
2576         (ix86_legitimize_address): Likewise.
2577         (ix86_expand_move): Likewise.
2578         (machopic_output_stub): Update for ATT-style stubs and
2579         mdynamic-no-pic.
2580         * config/darwin-protos.h (machopic_symbol_defined_p): New.
2581         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
2582         TARGET_DYNAMIC_NO_PIC: Remove.
2583         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2584         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2585         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
2586         Remove handling of mdynamic-no-pic.
2587         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
2588         Define if required.
2589         (machopic_symbol_defined_p): Do not try to use current_function_decl
2590         when generating _get_pc thunks within stubs.
2591         (machopic_indirect_data_reference): Rework for direct conditionals
2592         rather than #ifdefs, add x86 mdynamic-no-pic
2593         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
2594         defined value.
2595         (darwin_override_options): Handle mdynamic-no-pic here.
2596         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
2597         (machopic_lazy_symbol_ptr3_section): New.
2598         (machopic_picsymbol_stub2_section): New.
2599         (machopic_picsymbol_stub3_section): New.
2600         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
2601         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2602         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2603         Moved common definition from x86 and rs6000.
2604         (MACHO_DYNAMIC_NO_PIC_P): Override value.
2605         (MACHOPIC_INDIRECT): Likewise.
2606         (MACHOPIC_PURE): Likewise.
2607         * config.gcc (x86-darwin-*): Remove darwin.opt.
2608
2609 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
2610
2611         PR debug/46255
2612         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
2613         instead of gsi_last_bb.
2614
2615 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2616             Maxim Kuvyrkov  <maxim@codesourcery.com>
2617
2618         * config/i386/i386.c (cpu_names): Add "corei7".
2619         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
2620
2621 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2622             Maxim Kuvyrkov  <maxim@codesourcery.com>
2623
2624         Tune alignment for Intel Core i7
2625
2626         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
2627         (enum processor_type): Update comment.  Add entries for Core i7.
2628         * config/i386-c.c (ix86_target_macros_internal): Update.
2629         * config/i386.c (m_COREI7{_32,_64}): New macros.
2630         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
2631         (processor_target_table): Tune alignment for Core i7.
2632         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
2633
2634         * doc/invoke.texi: Document "corei7" option value.
2635
2636 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2637             Maxim Kuvyrkov  <maxim@codesourcery.com>
2638             H.J. Lu  <hjl.tools@gmail.com>
2639
2640         Basic support for Intel Core i7
2641
2642         * i386.c (ix86_option_override_internal): Add entry for corei7, use
2643         generic tuning.  Use generic32 when compiling for 32-bit ABI.
2644
2645 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2646
2647         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
2648         sections and call darwin_asm_dwarf_section() to handle them.
2649         (darwin_asm_dwarf_section): New.
2650         (darwin_file_start): Remove code emitting dwarf section symbols.
2651
2652 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
2653
2654         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
2655         explicitly disable stack protection when building libgcc.
2656         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2657
2658 2010-11-01  Jason Merrill  <jason@redhat.com>
2659
2660         * fold-const.c (fold_indirect_ref_1): Handle folding
2661         POINTER_PLUS_EXPR to ARRAY_REF.
2662
2663 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2664
2665         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
2666         (sh_delegitimize_address): New function.
2667
2668 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2669
2670         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
2671         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
2672         (CC1_SPEC): Don't handle -target.
2673         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
2674         options.
2675         * config/darwin.opt (Zallowable_client, Zbundle_loader,
2676         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
2677         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
2678         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
2679         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
2680         Zweak_reference_mismatches, client_name, compatibility_version,
2681         current_version, dylinker_install_name, pagezero_size,
2682         read_only_relocs, seg1addr, segs_read_only_addr,
2683         segs_read_write_addr, sub_library, sub_umbrella): New.
2684         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
2685         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
2686         * config/freebsd.opt: New.
2687         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
2688         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
2689         * config/rpath.opt: New.
2690         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
2691         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
2692         Use rpath.opt.
2693
2694 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2695
2696         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
2697         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
2698         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
2699         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
2700         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
2701         Document that options in .opt files do not need to be included.
2702         * doc/tm.texi: Regenerate.
2703         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
2704         * opts-common.c: Update comment on tm.h include.
2705         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
2706         * system.h (SWITCH_TAKES_ARG): Poison.
2707         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
2708         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
2709         in darwin.opt.
2710         (LINK_COMMAND_SPEC_A): Don't include %{x}.
2711         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2712         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
2713         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
2714         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2715         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
2716         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
2717         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
2718         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
2719         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2720         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
2721         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
2722         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
2723         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
2724         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
2725         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
2726         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
2727         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
2728         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
2729         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
2730         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
2731         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
2732         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
2733         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2734
2735 2010-11-01  Paul Koning  <ni1d@arrl.net>
2736
2737         * config/pdp11/pdp11.md: Use iterators.
2738         (addqi3, subqi3, iorsi3, xorsi3): Delete.
2739
2740 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
2741
2742         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
2743         GCC_INSN_FLAGS_H.
2744         * libgcov.c (__gcov_indirect_call_profiler): Set
2745         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
2746         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
2747
2748 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2749
2750         PR tree-optimization/46259
2751
2752         Revert:
2753         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2754         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
2755         build_vector_from_val.
2756
2757 2010-11-01  DJ Delorie  <dj@redhat.com>
2758
2759         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
2760         as well as an assertion.
2761
2762 2010-11-01  Paul Koning  <ni1d@arrl.net>
2763
2764         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
2765         complex modes in memory.
2766
2767 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2768
2769         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
2770
2771 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
2772
2773         PR target/45250
2774         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
2775         (cfa_base_offset): New variable.
2776         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
2777         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
2778         is NULL.
2779         (vt_init_cfa_base): Initialize cfa_base_offset.
2780
2781 2010-11-01  Alan Modra  <amodra@gmail.com>
2782
2783         PR target/46030
2784         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
2785         and savres_strategy.
2786         (stack_info): New file scope var.
2787         (rs6000_init_machine_status): Init stack_info.
2788         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
2789         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
2790         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
2791         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
2792         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
2793         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
2794         (rs6000_savres_strategy): Rewrite.
2795         (rs6000_stack_info): Use "stack_info" in place of local "info".
2796         Return cached stack info when reload_completed unless ENABLE_CHECKING
2797         in which case confirm newly calculated stack info matches old info.
2798         Delay calculation of lr_save_p, set it for out of line gp save/restore
2799         as well as fp.  Call rs6000_savres_strategy from here..
2800         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
2801         (rs6000_output_function_prologue): Use info->savres_strategy to
2802         determine whether fp save/restore externs need to be emitted.
2803
2804 2010-10-31  Jason Merrill  <jason@redhat.com>
2805
2806         * tree.h (EXPR_LOC_OR_HERE): New macro.
2807         * builtins.c (c_strlen): Use it.
2808         * c-decl.c (build_enumerator): Likewise.
2809         * gimplify.c (internal_get_tmp_var): Likewise.
2810         (shortcut_cond_expr): Likewise.
2811         (gimplify_one_sizepos): Likewise.
2812
2813 2010-10-31  Richard Henderson  <rth@redhat.com>
2814
2815         * config/i386/cygming.h (TARGET_SEH): New.
2816         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
2817         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
2818         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
2819         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
2820         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
2821         (ASM_DECLARE_FUNCTION_SIZE): New.
2822         * config/i386/i386-protos.h: Update.
2823         * config/i386/i386.c (ix86_option_override_internal): Enable
2824         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
2825         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
2826         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
2827         (ix86_compute_frame_layout): For SEH, disable
2828         use_fast_prologue_epilogue, move frame pointer to the end of
2829         the frame.  Initialize hfp_save_offset.
2830         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
2831         at end of prologue for SEH.
2832         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
2833         emit blockage at beginning of epilogue.
2834         (ix86_expand_binary_operator): After reload, emit LEA if needed.
2835         (ix86_output_call_insn): New.
2836         * config/i386/i386.h (TARGET_SEH): New.
2837         (struct machine_function): Add member seh.
2838         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
2839         * config/i386/winnt.c (struct seh_frame_state): New.
2840         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
2841         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
2842         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
2843         i386_pe_start_function, i386_pe_end_function): New.
2844
2845         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
2846         as CFA_STORE in rules 12 and 13.
2847
2848 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
2849
2850         PR tree-optimization/46142
2851         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
2852         accommodate third function argument.
2853
2854 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2855
2856         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
2857
2858 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2859
2860         * fold-const.c (build_zero_vector): Use build_vector_from_val.
2861         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2862         (get_initial_def_for_reduction): Likewise.
2863         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2864         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
2865         * tree.c (build_one_cst): Likewise.
2866         (build_vector_from_val): Use types_compatible_p for assert.
2867
2868 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2869
2870         * emit-rtl.c (mark_used_flags): New function.
2871         (set_used_flags, reset_used_flags): Call it.
2872
2873 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
2874
2875         PR middle-end/44569
2876         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
2877         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
2878
2879 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
2880
2881         PR target/46195
2882         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
2883         (ix86_compat_aligned_value_p): This.
2884         (ix86_old_function_arg_boundary): Renamed to ...
2885         (ix86_compat_function_arg_boundary): This.  Updated.
2886         (ix86_contains_aligned_value_p): New.
2887         (ix86_function_arg_boundary): Align long double parameters on
2888         stack to 4byte in 32bit.
2889
2890 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2891
2892         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
2893         * c-parser.c (c_parser_objc_at_property_declaration): Removed
2894         parsing of RID_COPIES and RID_IVAR.  Updated call to
2895         objc_add_property_declaration.
2896         * c-typecheck.c (build_component_ref): Call
2897         objc_maybe_build_component_ref instead of objc_build_setter_call.
2898         Use objc_is_property_ref to improve Objective-C checks.
2899         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
2900         of objc_build_getter_call.
2901
2902 2010-10-29  Paul Koning  <ni1d@arrl.net>
2903
2904         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2905         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
2906         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
2907         (REG_OK_STRICT): Move description.
2908
2909 2010-10-29  Paul Koning  <ni1d@arrl.net>
2910
2911         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
2912
2913 2010-10-29  Paul Koning  <ni1d@arrl.net>
2914
2915         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
2916
2917 2010-10-29  Paul Koning  <ni1d@arrl.net>
2918
2919         PR/41822
2920         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
2921
2922 2010-10-29  Richard Henderson  <rth@redhat.com>
2923
2924         PR rtl-opt/46226
2925         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
2926         for asm goto.
2927
2928 2010-10-29  Paul Koning  <ni1d@arrl.net>
2929
2930         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
2931         register to register move.
2932
2933 2010-10-29  Paul Koning  <ni1d@arrl.net>
2934
2935         * config/pdp11/pdp11.c (print_operand_address): Correct handling
2936         of integer constant addresses, delete vax-only logic.
2937
2938 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
2939
2940         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
2941         a conditional expression.
2942
2943 2010-10-29  Paul Koning  <ni1d@arrl.net>
2944
2945         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
2946         instruction encoding.
2947
2948 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2949             Andrew Pinski  <pinskia@gmail.com>
2950
2951         * tree.h (build_vector_from_val): Declare.
2952         * tree.c (build_vector_from_val): New function.
2953         * c-typeck.c (build_binary_op): Handle vector shifting.
2954         * doc/extend.texi: Description of the vector shifting operation.
2955
2956 2010-10-29  Paul Koning  <pkoning@equallogic.com>
2957
2958         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
2959         pdp11_secondary_memory_needed): Declare.
2960         * config/pdp11/predicates.md (float_operand): New predicate.
2961         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
2962         (cbranchdf4, movdf): Change predicate.
2963         (movsf): Handle FPU register case.
2964         (truncdfsf2, extendsfdf2): Add FPU register case.
2965         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
2966         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
2967         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2968         (pdp11_register_move_cost): Update cost matrix.
2969         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
2970         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
2971         pdp11_secondary_memory_needed): New function.
2972         (pdp11_return_in_memory): Add other float types.
2973         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
2974         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
2975         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
2976         REGISTER_MOVE_COST): Delete.
2977         (BASE_RETURN_VALUE_REG): Add other float types.
2978
2979 2010-10-29  Nick Clifton  <nickc@redhat.com>
2980
2981         * doc/invoke.texi: Document -mam34 and -mtune options.
2982         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
2983         (mn10300_tune_cpu): New variable.
2984         (mn10300_handle_option): Handle -mam34 and -mtune options.
2985         (mn10300_option_override): Convert tune string into tune cpu variable.
2986         (mn10300_legitimate_constant_p): Delete unused local variable.
2987         (is_load_insn): New function.
2988         (is_store_insn): New function.
2989         (mn10300_adjust_schedule_cost): New function.
2990         (TARGET_SCHED_ADJUST_COST): Define.
2991         * config/mn10300/mn10300.opt (mam34): New option.
2992         (mtune): New option.
2993         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
2994         (enum processor_type): Add AM34.
2995         (TARGET_AM34): Define.
2996         * config/mn10300/mn10300.md (attr cpu): Add am34.
2997         Add pipeline description.
2998         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
2999         Remove unneeded alternatives.  Add timing attribute.
3000         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
3001         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
3002         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
3003         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
3004         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
3005         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
3006         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
3007         float_conditional_branch, jump, indirect_jump, tablejump,
3008         call_internal, call_value_internal, zero_extendqisi2_am33,
3009         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
3010         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
3011         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
3012         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
3013         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
3014         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
3015         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
3016         return_internal_regs, store_movm, return, call_next_insn):
3017         Add timing attribute.
3018         (am33_subsi3): Add missing clobber of CC_REG.
3019         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
3020         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
3021         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
3022         extendqisi2): Fix predicates.
3023         (call_internal, call_internal_value): Separate alternatives.
3024         * config/mn10300/t-mn10300: Add AM34 multilib.
3025
3026 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
3027
3028         * config/sh/sh.c (sh_promote_function_mode): Use
3029         default_promote_function_mode if !sh_promote_prototypes.
3030
3031 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
3032
3033         * recog.c (split_all_insns): Remove dead code.
3034
3035 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3036
3037         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3038
3039 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3040
3041         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3042         (FUNCTION_ARG_ADVANCE): Delete.
3043         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
3044         functions.
3045         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
3046         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3047         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3048
3049 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3050
3051         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
3052         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3053         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3054         Take a const_tree and a bool.
3055         (mcore_function_arg_advance): New function.
3056         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3057
3058 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3059
3060         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
3061         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3062         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3063         Take a const_tree and a bool.
3064         (mcore_function_arg_advance): New function.
3065         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3066
3067 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3068
3069         * config/h8300/h8300-protos.h (function_arg): Delete.
3070         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3071         * config/h8300/h8300.c (function_arg): Rename to...
3072         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
3073         a bool.
3074         (h8300_function_arg_advance): New function.
3075         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3076
3077 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3078
3079         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
3080         to...
3081         * config/arc/arc.c (arc_function_arg): ...here and...
3082         (arc_function_arg_advance): ...here.  New functions.
3083         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3084
3085 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3086
3087         * config/crx/crx-protos.h (crx_function_arg): Delete.
3088         (crx_function_arg_advance): Delete.
3089         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3090         * config/crx/crx.c (crx_function_arg): Make static.  Take a
3091         const_tree and a bool.
3092         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
3093         (enough_regs_for_param): Take a const_tree.
3094         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3095
3096 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3097
3098         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
3099         (m68hc11_function_arg_advance): Delete.
3100         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
3101         (FUNCTION_ARG_ADVANCE): Delete.
3102         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
3103         Take a const_tree and a bool.
3104         (m68hc11_function_arg_advance): Likewise.
3105         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3106
3107 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3108
3109         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
3110         (xstormy16_function_arg_advance): Delete.
3111         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
3112         (FUNCTION_ARG_ADVANCE): Delete.
3113         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
3114         Take a const_tree and a bool.
3115         (xstormy16_function_arg_advance): Likewise.  Return void, updating
3116         the CUM parameter instead.
3117         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3118
3119 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3120
3121         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
3122         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3123         (MOXIE_FUNCTION_ARG_SIZE): Move to...
3124         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
3125         (moxie_function_arg): Make static.  Take a const_tree and a bool.
3126         (moxie_function_arg_advance): New function.
3127         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3128
3129 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3130
3131         * config/mn10300/mn10300-protos.h (function_arg): Delete.
3132         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
3133         (FUNCTION_ARG_ADVANCE): Delete.
3134         * config/mn10300/mn10300.c (function_arg): Rename to...
3135         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
3136         and a bool.
3137         (mn10300_function_arg_advance): New function.
3138         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3139
3140 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3141
3142         * config/iq2000/iq2000-protos.h (function_arg): Delete.
3143         (function_arg_advance): Delete.
3144         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3145         * config/iq2000/iq2000.c (function_arg): Rename to...
3146         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
3147         a bool.
3148         (function_arg_advance): Rename to...
3149         (iq2000_function_arg_advance): ...this.  Make static.  Take a
3150         const_tree and a bool.
3151         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
3152         iq2000_function_arg.
3153         (iq2000_pass_by_reference): Call iq2000_function_arg).
3154         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3155
3156 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3157
3158         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
3159         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3160         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
3161         const_tree.
3162         (fr30_function_arg): New function.
3163         (fr30_function_arg_advance): New function.
3164         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3165
3166 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3167
3168         * config/frv/frv-protos.h (frv_function_arg): Delete.
3169         (frv_function_arg_advance): Delete.
3170         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3171         * config/frv/frv.c (frv_function_arg): Rename to...
3172         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
3173         (frv_function_arg, frv_function_incoming_arg): New functions.
3174         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
3175         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3176         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3177
3178 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
3179
3180         PR target/46153
3181         * config/i386/sse.md (sse_movhlps_exp): Use destination
3182         returned from ix86_fixup_binary_operands to expand insn.
3183         (sse_movlhps_exp): Ditto.
3184         (sse_loadhps_exp): Ditto.
3185         (sse_loadlps_exp): Ditto.
3186         (sse2_loadhpd_exp): Ditto.
3187         (sse2_loadlpd_exp): Ditto.
3188
3189 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
3190
3191         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
3192         constants in thumb2.
3193
3194 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3195
3196         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
3197         arithmetics in masking operations.
3198         (contains_muldiv): Likewise.
3199         (try_combine): Likewise.
3200         (find_split_point): Likewise.
3201         (combine_simplify_rtx): Likewise.
3202         (simplify_if_then_else): Likewise.
3203         (simplify_set): Likewise.
3204         (expand_compound_operation): Likewise.
3205         (expand_field_assignment): Likewise.
3206         (make_extraction): Likewise.
3207         (extract_left_shift): Likewise.
3208         (make_compound_operation): Likewise.
3209         (force_to_mode): Likewise.
3210         (make_field_assignment): Likewise.
3211         (reg_nonzero_bits_for_combine): Likewise.
3212         (simplify_shift_const_1): Likewise.
3213         (simplify_comparison): Likewise.
3214
3215 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
3216
3217         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
3218         (ia64_function_arg_advance): Delete.
3219         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3220         (FUNCTION_ARG_ADVANCE): Delete.
3221         * config/ia64/ia64.c (ia64_function_arg): Rename to...
3222         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
3223         bool arguments.
3224         (ia64_function_arg, ia64_function_incoming_arg): New functions.
3225         (ia64_function_arg_advance): Make static.  Take a const_tree and
3226         a bool.
3227         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3228         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3229
3230 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
3231
3232         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
3233         (TARGET_GET_RAW_ARG_MODE): New.
3234         * doc/tm.texi: Regenerate.
3235         * target.def (get_raw_result_mode): New.
3236         (get_raw_arg_mode): New.
3237         * targhooks.c (default_get_reg_raw_mode): New.
3238         * targhooks.h (default_get_reg_raw_mode): New.
3239         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
3240         (apply_result_size): Ditto.
3241         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
3242         (TARGET_GET_RAW_RESULT_MODE): Define.
3243         (TARGET_GET_RAW_ARG_MODE): Ditto.
3244
3245 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3246
3247         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
3248         for newer Solaris 10 release.
3249         (sparc_fallback_frame_state): Likewise.
3250
3251 2010-10-27  Jason Merrill  <jason@redhat.com>
3252
3253         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
3254         variables sooner.
3255
3256 2010-10-27  Jie Zhang  <jie@codesourcery.com>
3257             Maxim Kuvyrkov  <maxim@codesourcery.com>
3258
3259         * haifa-sched.c (ISSUE_POINTS): Remove.
3260         (max_issue): Don't issue more than issue_rate instructions.
3261
3262 2010-10-27  Ian Lance Taylor  <iant@google.com>
3263
3264         PR target/46197
3265         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
3266         (split_stack_return): Replace UNSPEC_STACK_CHECK with
3267         UNSPECV_SPLIT_STACK_RETURN.
3268
3269 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
3270
3271         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
3272
3273         * config/i386/i386.c (block_info): New.
3274         (BLOCK_INFO): Likewise.
3275         (call_avx256_state): Likewise.
3276         (check_avx256_stores): Likewise.
3277         (move_or_delete_vzeroupper_2): Likewise.
3278         (move_or_delete_vzeroupper_1): Likewise.
3279         (move_or_delete_vzeroupper): Likewise.
3280         (use_avx256_p): Likewise.
3281         (function_pass_avx256_p): Likewise.
3282         (flag_opts): Add -mvzeroupper.
3283         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
3284         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
3285         is disabled.
3286         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
3287         generate vzeroupper.
3288         (init_cumulative_args): Add an int to indicate caller.  Set
3289         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
3290         based on return type.
3291         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
3292         caller_pass_avx256_p based on argument type.
3293         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
3294         is used, but not returned by caller.
3295         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
3296         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
3297         is used.
3298         (ix86_minimum_alignment): Likewise.
3299         (ix86_expand_special_args_builtin): Set target to
3300         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
3301         (ix86_reorg): Run the vzeroupper optimization if needed.
3302
3303         * config/i386/i386.h (ix86_args): Add caller.
3304         (INIT_CUMULATIVE_ARGS): Updated.
3305         (machine_function): Add use_vzeroupper_p, use_avx256_p,
3306         caller_pass_avx256_p, caller_return_avx256_p,
3307         callee_pass_avx256_p and callee_return_avx256_p.
3308
3309         * config/i386/i386.opt (-mvzeroupper): New.
3310
3311         * config/i386/predicates.md (vzeroupper_operation): Removed.
3312
3313         * config/i386/sse.md (avx_vzeroupper): Removed.
3314         (*avx_vzeroupper): Removed.
3315         (avx_vzeroupper): New.
3316
3317         * doc/invoke.texi: Document -mvzeroupper.
3318
3319 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3320
3321         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
3322         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
3323         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
3324
3325 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3326             Olivier Hainque  <hainque@adacore.com>
3327
3328         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
3329         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
3330         fs->signal_frame instead.
3331
3332 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3333
3334         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
3335         parsing of RID_COPIES and RID_IVAR.
3336
3337 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3338
3339         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
3340         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
3341         Do not use objc_set_property_attr, but use local variables
3342         instead.  Detect repeated usage of setter, getter and ivar
3343         attributes.  Improved error processing when a setter name does not
3344         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
3345         that the token is a keyword.  Updated call to
3346         objc_add_property_declaration.
3347
3348 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3349
3350         * c-parser.c (c_parser_objc_at_property): Renamed to
3351         c_parser_objc_at_property_declaration.  Updated calls to
3352         objc_add_property_variable, now objc_add_property_declaration.
3353         Code rewritten to be much more robust in recovering from syntax
3354         errors.  Added comments.
3355         (c_parser_objc_property_attrlist): Removed.
3356         (c_parser_external_declaration): Updated calls to
3357         c_parser_objc_at_property, now
3358         c_parser_objc_at_property_declaration.
3359         (c_parser_objc_methodprotolist): Same change.
3360
3361 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3362
3363         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
3364
3365 2010-10-26  Jan Hubicka  <jh@suse.cz>
3366
3367         * ipa.c (process_references): Enqueue all referenced nodes;
3368         mark as reachable only non-external nodes.
3369         (cgraph_remove_unreachable_nodes): All referenced nodes should
3370         be enqueued; remove bogues node->needed check.
3371
3372 2010-10-26  Jan Hubicka  <jh@suse.cz>
3373
3374         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
3375         to represent OMP.
3376
3377 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3378
3379         * config/i386/i386.md (split_stack_return): Replace
3380         unspec_volatile with unspec.
3381
3382 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
3383
3384         * doc/install.texi: Fix typo in --with-sysroot description.
3385
3386 2010-10-26  Jan Hubicka  <jh@suse.cz>
3387
3388         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
3389         Use info provided by linker plugin.
3390
3391 2010-10-26  Jason Merrill  <jason@redhat.com>
3392
3393         * varasm.c (constructor_static_from_elts_p): Don't require a
3394         CONSTRUCTOR to have elements to be suitable for static
3395         initialization.  Allow ARRAY_TYPE as well.
3396
3397 2010-10-26  Jan Hubicka  <jh@suse.cz>
3398
3399         PR middle-end/45736
3400         * cgraph.c (cgraph_set_readonly_flag): Rename to...
3401         (cgraph_set_const_flags) ... this one; get also looping argument;
3402         clear constructor/destructor flags.
3403         (cgraph_set_pure_flag): Likewise.
3404         (cgraph_set_looping_const_or_pure_flag): Remove.
3405         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
3406         to optimize away static ctors/dtors; it does not work on inline clones;
3407         external functions can always be rmeoved.
3408         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
3409         inline clones; in LTO external functions always can go.
3410         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
3411         (cgraph_mark_address_taken_node): Assert that we are not taking
3412         address of inline clone.
3413         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
3414         external functions.
3415         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
3416         address taken.
3417         (ipcp_initialize_node_lattices): Only local functions can be
3418         handled without cloning.
3419         * cgraph.h (cgraph_set_readonly_flag,
3420         cgraph_set_looping_const_or_pure_flag): Remove.
3421         (cgraph_set_const_flag): Declare.
3422         (cgraph_set_pure_flag): Update.
3423         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
3424         flags setting code.
3425         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
3426         look at inline clones; fix handling of external definitions.
3427         (cgraph_postorder): Do not look at inline clones in the first pass.
3428         (function_and_variable_visibility): Drop constructors/destructor
3429         flags at pure and const functions.
3430         * tree-profile.c (tree_profiling): Update.
3431         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
3432         address taken; external functions do not account to whole program size.
3433         (cgraph_decide_inlining): Likewise; do not try to inline
3434         functions already inlined.
3435
3436 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3437
3438         * doc/invoke.texi: Improve documentation of
3439         -fstrict-volatile-bitfields.
3440
3441 2010-10-26  Ira Rosen  <irar@il.ibm.com>
3442
3443         PR tree-optimization/46167
3444         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
3445         is basic block for the statement.
3446
3447 2010-10-26  Paul Koning  <ni1d@arrl.net>
3448
3449         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
3450         current definition of struct_real_format.
3451
3452 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3453
3454         PR target/44948
3455         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
3456         (ix86_function_arg_boundary): Always align parameters on stack
3457         in 64bit and align parameters with alignment >= 16byte on stack
3458         in 32bit.  Warn alignment change.
3459
3460 2010-10-26  Ian Lance Taylor  <iant@google.com>
3461
3462         PR middle-end/45687
3463         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
3464         offset.
3465
3466 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3467
3468         Implement opaque-enum-specifiesr for C++0x
3469         * tree.h (ENUM_IS_OPAQUE): New.
3470         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
3471
3472 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3473
3474         * stor-layout.c (layout_decl): Use the field's type to
3475         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
3476         * config/arm/arm.c (arm_override_options): Default to
3477         -fstrict-volatile-bitfields.
3478
3479 2010-10-25  Paul Koning  <ni1d@arrl.net>
3480
3481         * config/pdp11/pdp11.md: Add define_constants for register
3482         numbers, branch offset limits.
3483         * config/pdp11/pdp11.c: Use named constants instead of numbers.
3484         * config/pdp11.pdp11.h: Ditto.
3485
3486 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3487
3488         * configure.ac: Use $cpu_type instead of $target to define the nop.
3489         * configure: Regenerate.
3490
3491 2010-10-25  Jie Zhang  <jie@codesourcery.com>
3492
3493         * combine.c (try_combine): If insns need to be kept around, check that
3494         they can be copied in the merged instruction.
3495
3496 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3497
3498         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
3499         has been modified.
3500         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
3501         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
3502         it has been modified.
3503
3504 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3505
3506         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
3507
3508 2010-10-24  Paul Koning  <ni1d@arrl.net>
3509
3510         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
3511         * config/pdp11/pdp11.c (output_jump): Ditto.
3512
3513 2010-10-24  Ian Lance Taylor  <iant@google.com>
3514
3515         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
3516
3517 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3518
3519         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
3520         least one insn with a locus corresponding to an edge's goto_locus,
3521         disregard non-fallthru edges to the exit block and merge the blocks
3522         created for the same goto_locus.
3523
3524 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
3525
3526         * gcc.c (n_switches_alloc_debug_check): New.
3527         (set_option_handlers): New.
3528         (process_command): Use set_option_handlers.
3529         (do_self_spec): Pass spec-generated options through option handlers.
3530         (main): Also save and restore n_switches_alloc when swapping
3531         switch arrays.
3532
3533 2010-10-23  Richard Henderson  <rth@redhat.com>
3534
3535         PR target/46144
3536         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
3537         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
3538         Honor matching operands when splitting to XOR.
3539
3540 2010-10-23  Ian Lance Taylor  <iant@google.com>
3541
3542         * tree-vrp.c (extract_range_from_binary_expr): If
3543         flag_non_call_exceptions don't eliminate division by zero.
3544         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3545
3546 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
3547
3548         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3549         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
3550         __ORDER_PDP_ENDIAN__.
3551         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3552         (struct DWstruct): Define based on __BYTE_ORDER__.
3553         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3554         (struct INTstruct): Define based on __BYTE_ORDER__.
3555         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3556         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
3557         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
3558         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3559         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3560         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3561         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3562         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3563         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3564         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3565         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3566         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3567         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3568         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3569         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3570         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3571         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3572         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3573         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3574         * doc/tm.texi: Regenerate.
3575         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
3576         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
3577
3578 2010-10-23  Jie Zhang  <jie@codesourcery.com>
3579
3580         PR rtl-optimization/37360
3581         * config/mips/mips.c (cached_can_issue_more): New local variable.
3582         (mips_sched_reorder_1): New.
3583         (mips_sched_reorder): Use mips_sched_reorder_1.
3584         (mips_sched_reorder2): New.
3585         (mips_variable_issue): Set cached_can_issue_more.
3586         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
3587         instead of mips_sched_reorder.
3588
3589         Revert:
3590         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3591         PR rtl-optimization/37360
3592         * haifa-sched.c (max_issue): Do not assert that we never issue more
3593         insns than issue_rate.  Add comment.
3594
3595 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3596
3597         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
3598         location info of the expression.
3599
3600 2010-10-22  DJ Delorie  <dj@redhat.com>
3601
3602         * doc/extend.texi (Named Address Spaces): Document the M32C named
3603         address space.
3604
3605         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
3606         __far address space.
3607         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
3608         "__far" address space for R8C and M16C processor variants.
3609         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
3610         (far_addr_space_p): New.
3611         (encode_pattern_1): Add sign and zero extend support.
3612         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
3613         (m32c_extra_constraint_p2): Add SF constraint.
3614         (m32c_legitimate_address_p): Support __far addresses.
3615         (m32c_addr_space_pointer_mode): New.
3616         (m32c_addr_space_address_mode): New.
3617         (m32c_addr_space_legitimate_address_p): New.
3618         (m32c_addr_space_legitimize_address): New.
3619         (m32c_addr_space_subset_p): New.
3620         (m32c_addr_space_convert): New.
3621         (conversions): Add __far operand patterns.
3622         (m32c_prepare_move): Force constants into registers for __far moves.
3623         (m32c_split_move): __far moves are always split.
3624         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
3625         * config/m32c/mov.md (mov<mode>_far_op1): New.
3626         (mov<mode>_far_op2): New.
3627         (movqi_op): Add __far (SF) support.
3628         (movhi_op): Likewise.
3629         (movsi_splittable): Split A1A0 also.
3630
3631 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3632             Andrew Pinski  <pinskia@gmail.com>
3633
3634         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
3635         * doc/extend.texi: New paragraph
3636
3637 2010-10-22  Paul Koning  <ni1d@arrl.net>
3638
3639         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
3640
3641 2010-10-22  DJ Delorie  <dj@redhat.com>
3642
3643         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
3644
3645 2010-10-22  Paul Koning  <ni1d@arrl.net>
3646
3647         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
3648
3649 2010-10-22  Richard Henderson  <rth@redhat.com>
3650
3651         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
3652         cases for __builtin_fma and __builtin_fmaf.
3653
3654 2010-10-22  Richard Henderson  <rth@redhat.com>
3655
3656         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
3657         NEG+USE for vectors as well.
3658         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
3659         and splitter.
3660
3661 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
3662
3663         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
3664         SWITCH_CURTAILS_COMPILATION): Remove.
3665         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
3666         * doc/tm.texi: Regenerate.
3667         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
3668
3669 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3670
3671         * config/i386/bdver1.md: New file.
3672         * config/i386/i386.md (include "bdver1.md"): Invoke the
3673         pipeline description for bdver1.
3674         (x86_sahf_1): Add "bdver1_decode" attribute.
3675         (*cmpfp_i_mixed): Likewise.
3676         (*cmpfp_i_sse): Likewise.
3677         (*cmpfp_i_i387): Likewise.
3678         (*cmpfp_iu_mixed): Likewise.
3679         (*cmpfp_iu_sse): Likewise.
3680         (*cmpfp_iu_387): Likewise.
3681         (*swap<mode>,*swap<mode>_1): Likewise.
3682         (fixuns_trunc<mode>hi2): Likewise.
3683         (fix_trunc<mode>si_sse): Likewise.
3684         (x86_fnstcw_1): Likewise.
3685         (x86_fldcw_1): Likewise.
3686         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
3687         (*floatsi<mode>2_vector_mixed): Likewise.
3688         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
3689         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
3690         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
3691         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
3692         (*floatsi<mode>2_vector_sse): Likewise.
3693         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
3694         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
3695         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
3696         (*mul<mode>3_1): Likewise.
3697         (*mulsi3_1_zext): Likewise.
3698         (*mulhi3_1): Likewise.
3699         (*mulqi3_1): Likewise.
3700         (*<u>mul<mode><dwi>3_1): Likewise.
3701         (*<u>mulqihi3_1): Likewise.
3702         (*<s>muldi3_highpart_1): Likewise.
3703         (*<s>mulsi3_highpart_1): Likewise.
3704         (*<s>mulsi3_highpart_zext): Likewise.
3705         (x86_64_shld): Likewise.
3706         (x86_shld): Likewise.
3707         (x86_64_shrd): Likewise.
3708         (x86_shrd): Likewise.
3709         (sqrtxf2): Likewise.
3710         (sqrt_extend<mode>xf2_i387): Likewise.
3711         (*sqrt<mode>2_sse): Likewise.
3712         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
3713         (sse_cvtsi2ssq): Likewise.
3714         (sse_cvtss2si): Likewise.
3715         (sse_cvtss2si_2): Likewise.
3716         (sse_cvtss2siq): Likewise.
3717         (sse_cvtss2siq_2): Likewise.
3718         (sse_cvttss2si): Likewise.
3719         (sse_cvttss2siq): Likewise.
3720         (sse2_cvtpi2pd): Likewise.
3721         (sse2_cvttpd2pi): Likewise.
3722         (sse2_cvtsi2sd): Likewise.
3723         (sse2_cvtsi2sdq): Likewise.
3724         (sse2_cvtsd2si): Likewise.
3725         (sse2_cvtsd2si_2): Likewise.
3726         (sse2_cvtsd2siq): Likewise.
3727         (sse2_cvtsd2siq_2): Likewise.
3728         (sse2_cvttsd2si): Likewise.
3729         (sse2_cvttsd2siq): Likewise.
3730         (*sse2_cvtpd2dq): Likewise.
3731         (*sse2_cvttpd2dq): Likewise.
3732         (sse2_cvtsd2ss): Likewise.
3733         (sse2_cvtss2sd): Likewise.
3734         (*sse2_cvtpd2ps): Likewise.
3735         (sse2_cvtps2pd): Likewise.
3736
3737 2010-10-22  Richard Guenther  <rguenther@suse.de>
3738
3739         PR middle-end/46137
3740         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
3741         remove the virtual operands if they are not needed.
3742
3743 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3744
3745         * config/i386/i386.c (processor_costs bdver1_cost): Update
3746         insn costs and architectural parameters for bdver1.
3747
3748 2010-10-22  Richard Guenther  <rguenther@suse.de>
3749
3750         * gimple.h (gimple_register_canonical_type): Declare.
3751         * gimple.c (gimple_canonical_types): New global hashtable.
3752         (struct gimple_type_leader_entry_s): New type.
3753         (gimple_type_leader): New global cache.
3754         (gimple_lookup_type_leader): New function.
3755         (gtc_visit): Query the proper cache.
3756         (gimple_types_compatible_p): Likewise.
3757         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
3758         (gimple_canonical_type_eq): New function.
3759         (gimple_register_canonical_type): Likewise.
3760         (print_gimple_types_stats): Adjust for gimple_canonical_types.
3761         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
3762         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
3763         gimple_types_compatible_p for LTO.
3764
3765 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
3766
3767         PR target/46098
3768         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
3769         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
3770         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
3771         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
3772         (<sse>_movu<ssemodesuffix>): New expander.
3773         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
3774         (avx_movdqu<avxmodesuffix>): New expander.
3775         (*sse2_movdqu): Rename from sse2_movdqu.
3776         (sse2_movdqu): New expander.
3777
3778 2010-10-22  Richard Guenther  <rguenther@suse.de>
3779
3780         PR tree-optimization/45720
3781         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
3782         Handle negative step.
3783         (vect_enhance_data_refs_alignment): Likewise.
3784         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
3785         (vect_create_cond_for_align_checks): Likewise.
3786         (vect_create_cond_for_alias_checks): Likewise.
3787
3788 2010-10-22  Ira Rosen  <irar@il.ibm.com>
3789
3790         PR tree-optimization/46126
3791         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
3792         vectorizable_shift in case of basic block vectorization.
3793
3794 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
3795
3796         * target.h (enum opt_levels, struct default_options): New.
3797         * target.def (handle_ofast): Remove hook.
3798         (target_option.optimization): Change to
3799         target_option.optimization_table.
3800         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
3801         TARGET_OPTION_OPTIMIZATION_TABLE.
3802         (CAN_DEBUG_WITHOUT_FP): Remove.
3803         * doc/tm.texi: Regenerate.
3804         * opts.c (maybe_default_option, maybe_default_options,
3805         default_options_table): New.
3806         (default_options_optimization): Take extra parameters.  Don't
3807         assert that global_options and global_options_set are in use.  Use
3808         maybe_default_options.
3809         (decode_options): Pass extra parameters to
3810         default_options_optimization.
3811         * common.opt (falign-loops): Use value 0 with Var.
3812         (frerun-cse-after-loop, ftree-ter): Remove Init.
3813         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
3814         TARGET_OPTION_OPTIMIZATION): Remove.
3815         * targhooks.c (empty_optimization_table): New.
3816         * targhooks.h (empty_optimization_table): Declare.
3817         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
3818         * config/alpha/alpha.c (alpha_option_optimization_table,
3819         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3820         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
3821         * config/arm/arm.c (arm_option_optimization: Change to
3822         arm_option_optimization_table.
3823         (TARGET_OPTION_OPTIMIZATION): Change to
3824         TARGET_OPTION_OPTIMIZATION_TABLE.
3825         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
3826         * config/avr/avr.c (avr_option_optimization_table,
3827         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3828         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
3829         * config/cris/cris.c (cris_option_optimization): Change to
3830         cris_option_optimization_table.
3831         (TARGET_OPTION_OPTIMIZATION): Change to
3832         TARGET_OPTION_OPTIMIZATION_TABLE.
3833         * config/crx/crx.c (crx_option_optimization): Change to
3834         crx_option_optimization_table.
3835         (TARGET_OPTION_OPTIMIZATION): Change to
3836         TARGET_OPTION_OPTIMIZATION_TABLE.
3837         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
3838         * config/fr30/fr30.c (fr30_option_optimization_table,
3839         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3840         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
3841         * config/frv/frv.c (frv_option_optimization_table,
3842         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3843         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
3844         * config/h8300/h8300.c (h8300_option_optimization): Change to
3845         h8300_option_optimization_table.
3846         (TARGET_OPTION_OPTIMIZATION): Change to
3847         TARGET_OPTION_OPTIMIZATION_TABLE.
3848         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
3849         * config/i386/i386.c (ix86_option_optimization): Change to
3850         ix86_option_optimization_table.
3851         (TARGET_OPTION_OPTIMIZATION): Change to
3852         TARGET_OPTION_OPTIMIZATION_TABLE.
3853         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
3854         as initializer.
3855         * config/ia64/ia64.c (ia64_option_optimization): Change to
3856         ia64_option_optimization_table.
3857         (TARGET_OPTION_OPTIMIZATION): Change to
3858         TARGET_OPTION_OPTIMIZATION_TABLE.
3859         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
3860         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
3861         initializer.
3862         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3863         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3864         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
3865         * config/lm32/lm32.c (lm32_option_optimization_table,
3866         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3867         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
3868         * config/m32r/m32r.c (m32r_option_optimization): Change to
3869         m32r_option_optimization_table.
3870         (TARGET_OPTION_OPTIMIZATION): Change to
3871         TARGET_OPTION_OPTIMIZATION_TABLE.
3872         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
3873         CAN_DEBUG_WITHOUT_FP): Remove.
3874         * config/mcore/mcore.c (mcore_option_optimization): Change to
3875         mcore_option_optimization_table.
3876         (TARGET_OPTION_OPTIMIZATION): Change to
3877         TARGET_OPTION_OPTIMIZATION_TABLE.
3878         * config/mep/mep.c (mep_option_optimization): Change to
3879         mep_option_optimization_table.
3880         (TARGET_OPTION_OPTIMIZATION): Change to
3881         TARGET_OPTION_OPTIMIZATION_TABLE.
3882         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
3883         * config/microblaze/microblaze.c
3884         (microblaze_option_optimization_table,
3885         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3886         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
3887         * config/mips/mips.c (mips_option_optimization_table,
3888         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3889         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
3890         * config/mmix/mmix.c (mmix_option_optimization): Change to
3891         mmix_option_optimization_table.
3892         (TARGET_OPTION_OPTIMIZATION): Change to
3893         TARGET_OPTION_OPTIMIZATION_TABLE.
3894         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
3895         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3896         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3897         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
3898         * config/pa/pa.c (pa_option_optimization_table,
3899         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3900         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
3901         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
3902         pdp11_option_optimization_table.
3903         (TARGET_OPTION_OPTIMIZATION): Change to
3904         TARGET_OPTION_OPTIMIZATION_TABLE.
3905         * config/picochip/picochip.c (picochip_option_optimization_table,
3906         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3907         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
3908         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
3909         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3910         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
3911         * config/rx/rx.c (rx_option_optimization_table,
3912         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3913         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
3914         * config/s390/s390.c (s390_option_optimization): Change to
3915         s390_option_optimization_table.
3916         (s390_option_override): Update comment.
3917         (TARGET_OPTION_OPTIMIZATION): Change to
3918         TARGET_OPTION_OPTIMIZATION_TABLE.
3919         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
3920         * config/score/score.c (score_option_optimization_table,
3921         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3922         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
3923         * config/sh/sh.c (sh_option_optimization): Change to
3924         sh_option_optimization_table.
3925         (TARGET_OPTION_OPTIMIZATION): Change to
3926         TARGET_OPTION_OPTIMIZATION_TABLE.
3927         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
3928         (sh_option_override, expand_block_move, multcosts, find_barrier,
3929         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
3930         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
3931         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
3932         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
3933         instead of TARGET_SMALLCODE.
3934         * config/sh/sh.opt (mspace): Make into an alias for -Os.
3935         * config/sparc/sparc.c (sparc_option_optimization_table,
3936         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3937         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
3938         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3939         TARGET_OPTION_OPTIMIZATION_TABLE): New.
3940         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
3941         * config/v850/v850.c (v850_option_optimization): Change to
3942         v850_option_optimization_table.
3943         (TARGET_OPTION_OPTIMIZATION): Change to
3944         TARGET_OPTION_OPTIMIZATION_TABLE.
3945         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
3946         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
3947         xtensa_option_optimization_table.
3948         (TARGET_OPTION_OPTIMIZATION): Change to
3949         TARGET_OPTION_OPTIMIZATION_TABLE.
3950         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
3951
3952 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
3953
3954         Based on the CFString implementation in FSF apple/trunk branch.
3955
3956         * target.def (objc_construct_string): New Hook.
3957         * doc/tm.texi (objc_construct_string): Document.
3958         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
3959         * config/t-darwin: Amend build rules for darwin.o.
3960         * config/darwin.opt: Add cfstrings flags.
3961         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
3962         (darwin_objc_construct_string): New.
3963         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
3964         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
3965         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
3966         (darwin_fold_builtin): Likewise.
3967         (darwin_build_constant_cfstring): Likewise.
3968         (darwin_objc_construct_string): Likewise.
3969         (darwin_cfstring_p): Likewise.
3970         (darwin_enter_string_into_cfstring_table): Likewise.
3971         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
3972         * config/darwin.c (darwin_running_cxx): New var.
3973         (machopic_select_section): Return cfstring_constant_object_section.
3974         (darwin_override_options): Set darwin_running_cxx.
3975         (add_builtin_field_decl): New.
3976         (darwin_init_cfstring_builtins): New.
3977         (darwin_build_constant_cfstring): New.
3978         (darwin_fold_builtin): New.
3979         (cfstring_hash): New.
3980         (cfstring_eq): New.
3981         (darwin_enter_string_into_cfstring_table): New.
3982         * config/darwin-sections.def (cfstring_constant_object_section): New.
3983         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
3984         (TARGET_OBJC_CONSTRUCT_STRING): Define.
3985
3986 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
3987
3988         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
3989         TYPE_STUB_DECL instead of TREE_CHAIN.
3990         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
3991         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
3992         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
3993         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
3994         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
3995         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
3996         Likewise.
3997         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
3998
3999 2010-10-22  Jie Zhang  <jie@codesourcery.com>
4000
4001         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
4002         (copy_blkmode_from_reg): Likewise.
4003         (read_complex_part): Likewise.
4004         (expand_expr_real_1): Calculate packedp and pass it to
4005         extract_bit_field.
4006         * expr.h (extract_bit_field): Update declaration.
4007         * calls.c (store_unaligned_arguments_into_pseudos): Update call
4008         to extract_bit_field.
4009         * expmed.c (extract_fixed_bit_field): Update calls to
4010         extract_fixed_bit_field.
4011         (store_split_bit_field): Likewise.
4012         (extract_bit_field_1): Add new argument packedp.
4013         (extract_bit_field): Add new argument packedp.
4014         (extract_fixed_bit_field): Add new argument packedp and let
4015         packed attribute override volatile.
4016         * stmt.c (expand_return): Update call to extract_bit_field.
4017
4018 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4019
4020         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
4021
4022 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4023
4024         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
4025         of gcc_checking_assert.
4026         * sel-sched.c (code_motion_process_successors): Likewise.
4027
4028 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4029
4030         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
4031         when stopping because of a different locus on edge or insn.
4032         (try_optimize_cfg): Add comment.
4033         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
4034         block is a forwarder block, propagate locus on the edge.
4035         (cfg_layout_merge_blocks): Likewise.
4036
4037 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
4038
4039         PR target/45946
4040         * config/i386/i386.md (*pushti2): New insn pattern.
4041         (pushti2 splitter): New insn splitter.
4042         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
4043         DWI mode iterator.
4044
4045 2010-10-21  Paul Koning  <ni1d@arrl.net>
4046
4047         * config/pdp11/pdp11-protos.md (arith_operand,
4048         const_immediate_operand, expand_shift_operand,
4049         immediate15_operand): Delete
4050         * config/pdp11/pdp11.c: Ditto.
4051         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
4052         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4053         EXTRA_CONSTRAINT): Delete.
4054         * config/pdp11/pdp11.md (various): Use standard constraints
4055         instead of removed ones.
4056         * config/pdp11/constraints.md: New file.
4057         * config/pdp11/predicates.md: New file.
4058
4059 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
4060
4061         PR c/45834
4062         * alias.c (true_dependence_1): Remove obsolete check for QImode.
4063         (may_alias_p): Ditto.
4064
4065 2010-10-21  Martin Jambor  <mjambor@suse.cz>
4066
4067         PR tree-optimization/45875
4068         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
4069
4070 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4071
4072         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
4073         variables.
4074         (create_new_def_for): Likewise.
4075
4076 2010-10-21  Nick Clifton  <nickc@redhat.com>
4077
4078         * config/mn10300/mn10300.c: Fold code to 80-character width.
4079         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4080         MEM, CONST_INT and CONST_DOUBLE.
4081         (targetm): Move initialization to end of file.
4082         (print_operand): Rename to mn10300_print_operand.
4083         (print_operand_address): Rename to mn10300_print_operand_address.
4084         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
4085         (expand_prologue): Rename to mn10300_expand_prologue.
4086         (expand_epilogue): Rename to mn10300_expand_epilogue.
4087         (initial_offset): Rename to mn10300_initial_offset.
4088         (function_arg): Rename to mn10300_function_arg.
4089         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
4090         (symbolic_operand): Rename to mn10300_symbolic_operand.
4091         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
4092         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
4093         * config/mn10300/mn10300-protos.h: Update prototypes.
4094         * config/mn10300/mn10300.h: Fold code to 80-character width.
4095         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4096         MEM, CONST_INT and CONST_DOUBLE.
4097         (CPP_SPEC): Move to...
4098         (TARGET_CPU_CPP_BUILTINS): ... here.
4099         * config/mn10300/mn10300.md: Fold code to 80-character width.
4100         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4101         MEM, CONST_INT and CONST_DOUBLE.
4102
4103 2010-10-21  Ira Rosen  <irar@il.ibm.com>
4104
4105         PR tree-optimization/46049
4106         PR tree-optimization/46052
4107         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
4108         (vect_get_slp_defs): Add arguments.
4109         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
4110         operands to vect_get_slp_defs.
4111         (vectorizable_reduction): Fix comment, pass scalar operands to
4112         vect_get_slp_defs.
4113         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
4114         type to determine number of units in the created vector.
4115         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
4116         (vectorizable_conversion): Fix comment.
4117         (vectorizable_shift): New function.
4118         (vectorizable_operation): Move code that handles shifts to
4119         vectorizable_shift.
4120         (vectorizable_type_demotion): Fix comment, pass scalar operands to
4121         vect_get_slp_defs.
4122         (vectorizable_type_promotion, vectorizable_store): Likewise.
4123         (vectorizable_condition): Fix comment.
4124         (vect_analyze_stmt): Call vectorizable_shift.
4125         (vect_transform_stmt): Likewise.
4126         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
4127         Use it as the operand to create vectors for, except reduction
4128         initial definition and store.  Use operands type.
4129         (vect_get_slp_defs): Add new arguments.  Pass them to
4130          vect_get_constant_vectors.
4131
4132 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4133
4134         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
4135         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
4136         * cfghooks.c (fixup_reorder_chain): Likewise.
4137         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4138         * cgraph.c (cgraph_add_thunk): Likewise.
4139         (cgraph_create_edge_1): Likewise.
4140         (cgraph_create_virtual_clone): Likewise.
4141         * ddg.c (add_cross_iteration_register_deps): Likewise.
4142         * dwarf2out.c (modified_type_die): Likewise.
4143         * emit-rtl.c (set_mem_alias_set): Likewise.
4144         * ggc-zone.c (zone_allocate_marks): Likewise.
4145         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
4146         * gimple.c (iterative_hash_gimple_type): Likewise.
4147         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
4148         (create_single_exit_edge): Likewise.
4149         * haifa-sched.c (choose_ready): Likewise.
4150         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4151         * passes.c (execute_todo): Likewise.
4152         * sched-ebb.c (begin_schedule_ready): Likewise.
4153         * sel-sched.c (code_motion_process_successors): Likewise.
4154         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
4155         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
4156         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
4157         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
4158         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
4159         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
4160         (ssa_conflicts_add): Likewise.
4161         * tree-ssa-copy.c (replace_exp): Likewise.
4162         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
4163         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
4164         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
4165         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
4166         (compute_antic): Likewise.
4167         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
4168         (add_dependence): Likewise.
4169         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
4170         * tree-vrp.c (supports_overflow_infinity): Likewise.
4171         (make_overflow_infinity, negative_overflow_infinity): Likewise.
4172         (avoid_overflow_infinity, register_new_assert_for): Likewise.
4173         (process_assert_insertions_for): Likewise.
4174         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
4175         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
4176         (intersect_loc_chains, variable_merge_over_cur): Likewise.
4177
4178 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4179
4180         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
4181         * reload1.c (has_nonexceptional_receiver): Likewise.
4182         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
4183         (create_new_def_for): Likewise.
4184         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
4185         (merge_phi_nodes): Likewise.
4186         (has_abnormal_incoming_edge_p): Delete.
4187
4188 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
4189
4190         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
4191
4192 2010-10-21  Richard Guenther  <rguenther@suse.de>
4193             Michael Matz  <matz@suse.de>
4194
4195         PR tree-optimization/45764
4196         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4197         Adjust initial misalignment for negative DR_STEP.
4198         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
4199         do not have the same alignment over the whole iteration domain.
4200
4201 2010-10-21  Richard Guenther  <rguenther@suse.de>
4202
4203         PR tree-optimization/46111
4204         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
4205
4206 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4207
4208         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
4209
4210 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4211
4212         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
4213         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
4214
4215 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4216
4217         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
4218         signal_frame.
4219         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
4220
4221 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4222
4223         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
4224         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
4225
4226 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4227
4228         * basic-block.h (find_fallthru_edge): Define.
4229         * cfgcleanup.c (merge_blocks_move): Use it.
4230         (try_crossjump_bb): Likewise.
4231         * cfglayout.c (fixup_reorder_chains): Likewise.
4232         (fixup_fallthru_exit_predecessor): Likewise.
4233         * cfgrtl.c (rtl_split_edge): Likewise.
4234         (rtl_verify_flow_info): Likewise.
4235         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4236         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
4237         * ifcvt.c (block_fallthru): Likewise.
4238         * reload1.c (fixup_abnormal_edges): Likewise.
4239         * sched-ebb.c (being_schedule_ready): Likewise.
4240         (schedule_ebb): Likwise.
4241         * sched-rgn.c (find_single_block_region): Likewise.
4242         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
4243         * tree-complex.c (expand_complex_move): Likewise.
4244         * sched-int.h (find_fallthru_edge): Rename to...
4245         (find_fallthru_edge_from): ...this.
4246         * haifa-sched.c (find_fallthru_edge): Rename to...
4247         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
4248         (init_before_recovery): Call find_fallthru_edge_from.
4249         * sel-sched-ir.c (merge_fences): Likewise.
4250         * sel-sched.c (in_fallthru_bb_p): Likewise.
4251         (move_cond_jump): Likewise.
4252
4253 2010-10-20  Paul Koning  <ni1d@arrl.net>
4254
4255         * config/pdp11/pdp11.md (various): Fix conditions on a number of
4256         insn to check for target 11/40 or higher.
4257
4258 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4259
4260         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
4261         bool instead of a tree.
4262         (c_parser_objc_method_decl): Added bool argument.  Updated call to
4263         objc_build_method_signature.
4264         (c_parser_objc_method_definition): Do not call
4265         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
4266         c_parser_objc_method_decl and objc_start_method_definition.
4267         (c_parser_objc_methodproto): Do not call objc_set_method_type.
4268         Updated calls to c_parser_objc_method_type,
4269         c_parser_objc_method_decl and objc_add_method_declaration.
4270
4271 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
4272
4273         PR tree-optimization/45919
4274         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
4275         array members.
4276
4277         PR tree-optimization/46066
4278         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
4279         instead of gsi_last_bb.
4280
4281 2010-10-20  DJ Delorie  <dj@redhat.com>
4282
4283         * config/m32c/m32c.c (m32c_option_override): Always disable
4284         function-cse in 16-bit mode.  Indirect calls are always worse than
4285         direct calls as there is no 16-bit indirect call opcode.
4286         (m32c_override_options_after_change): New, likewise.
4287
4288 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4289
4290         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
4291         emitting the conditional move in the inner mode of the SUBREG.
4292
4293 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
4294
4295         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
4296         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
4297         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4298         (ia64_preferred_reload_class): Make static.  Change rclass argument
4299         and result types from enum reg_class to reg_class_t.
4300
4301 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
4302
4303         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
4304         call for single operand expression.
4305
4306 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4307
4308         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
4309         if there is a call statement to pure or const function in the block.
4310
4311 2010-10-20  Paul Koning  <pkoning@equallogic.com>
4312
4313         Fix several build errors for pdp11 target.
4314         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
4315         (cbranchdf4): Conditional on TARGET_FPU.
4316         (movdf): Ditto; correct alternatives check.
4317         (movmemhi): Fix predicate and constraint.
4318         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
4319
4320 2010-10-20  Richard Guenther  <rguenther@suse.de>
4321
4322         PR lto/45667
4323         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
4324         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
4325         (verify_gimple_assign_single): Disable ADDR_EXPR type check
4326         when in LTO.
4327
4328 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
4329
4330         PR fortran/42169
4331         * ira-emit.c (store_can_be_removed_p): Return false instead of
4332         gcc_unreachable.
4333
4334 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
4335
4336         * fold-const.c (fold_binary_loc): New transformation.
4337
4338 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
4339
4340         PR target/46085
4341         * config/i386/sse.md (reduc_splus_v8sf): Updated.
4342         (reduc_splus_v4df): Likewise.
4343
4344 2010-10-20  Richard Guenther  <rguenther@suse.de>
4345
4346         PR tree-optimization/45860
4347         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
4348         conditional store replacement for non-register type stores.
4349
4350 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4351
4352         * stor-layout.c (skip_simple_constant_arithmetic): New function.
4353         (self_referential_size): Use it instead of skip_simple_arithmetic.
4354
4355 2010-10-20  Olivier Hainque  <hainque@adacore.com>
4356
4357         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
4358         If the current function calls eh_return, claim live all registers
4359         that we need to check for liveness otherwise.
4360
4361 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4362
4363         * c-decl.c (c_write_global_declarations): Call
4364         objc_write_global_declarations when compiling Objective-C.
4365         * c-lang.c (finish_file): Removed.
4366
4367 2010-10-19  DJ Delorie  <dj@redhat.com>
4368
4369         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
4370         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
4371         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4372         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4373         * doc/tm.texi: Regenerate.
4374         * targhooks.h (default_label_align_after_barrier_max_skip,
4375         default_loop_align_max_skip, default_label_align_max_skip,
4376         default_jump_align_max_skip): Declare.
4377         * target.def (label_align_after_barrier_max_skip): New.
4378         (loop_align_max_skip): New.
4379         (label_align_max_skip): New.
4380         (jump_align_max_skip): New.
4381         * system.h (poison): Add those macros to the list.
4382         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
4383         (LOOP_ALIGN_MAX_SKIP): Remove.
4384         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
4385         (JUMP_ALIGN_MAX_SKIP): Remove.
4386         (default_label_align_after_barrier_max_skip): New.
4387         (default_loop_align_max_skip): New.
4388         (default_label_align_max_skip): New.
4389         (default_jump_align_max_skip): New.
4390         (compute_alignments): Use the new hooks.
4391         (shorten_branches): Likewise.
4392
4393 2010-10-19  Richard Henderson  <rth@redhat.com>
4394
4395         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
4396         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
4397         (fma4i_fmadd_<mode>): New.
4398         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
4399         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
4400         standard fma patterns.
4401         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
4402         enable for FMA.
4403         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4404         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4405         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
4406
4407 2010-10-19  Paul Koning  <pkoning@equallogic.com>
4408
4409         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
4410         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
4411
4412 2010-10-19  Richard Henderson  <rth@redhat.com>
4413
4414         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
4415         (fmadf4, *fmsdf4, *nfmadf4): New.
4416         (fmaxf4, *fmsxf4, *nfmaxf4): New.
4417
4418 2010-10-19  Michael Eager  <eager@eagercon.com>
4419
4420         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
4421         Use sjlj unwind info for exceptions.
4422
4423 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
4424
4425         PR fortran/43414
4426         * dwarf2out.c (add_calling_convention_attribute): Flag main
4427         Fortran subroutine with DW_AT_main_subprogram.
4428
4429 2010-10-19  Nick Clifton  <nickc@redhat.com>
4430
4431         * config/rx/rx.c (rx_function_value): Small integer types are
4432         promoted to SImode.
4433         (rx_promote_function_mode): New function.
4434         (TARGET_PROMOTE_FUNCTION_MODE): Define.
4435
4436 2010-10-19  Nick Clifton  <nickc@redhat.com>
4437
4438         * config/mep/mep.c (mep_print_operand): Use
4439         targetm.strip_name_encoding.
4440         (mep_output_aligned_common): Likewise.
4441
4442 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
4443
4444         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
4445
4446 2010-10-18  Richard Henderson  <rth@redhat.com>
4447
4448         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
4449         (fma (neg a) (neg b) c) and (fma a (neg b) c).
4450
4451 2010-10-18  Richard Henderson  <rth@redhat.com>
4452
4453         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
4454         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
4455         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
4456         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
4457         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
4458         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
4459         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
4460         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
4461         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
4462         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
4463         (bdesc_multi_arg): Remove the corresponding builtins.
4464         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
4465         (UNSPEC_FMA4_FMSUBADD): Remove.
4466         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
4467         * config/i386/sse.md (FMA4MODEF4): Remove.
4468         (FMAMODE): Add.
4469         (fma<mode>4): New expander.
4470         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
4471         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
4472         (*fma4i_fmsub_<mode>): Similarly.
4473         (*fma4i_fnmadd_<mode>): Similarly.
4474         (*fma4i_fnmsub_<mode>): Similarly.
4475         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
4476         with the first operand.
4477         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
4478         of explicit arithmetic.  Macroize with AVXMODEF2P.
4479         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
4480         (xop_frcz<mode>2): Macroize with FMAMODE.
4481         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
4482         the first operand.
4483         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
4484         extra negations.
4485         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
4486         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
4487         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
4488         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
4489         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
4490         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
4491         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
4492         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
4493
4494 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
4495
4496         PR rtl-optimization/45966
4497         * combine.c (try_combine): If added_sets_2, deal with the case
4498         where i0 feeds i1 and i1 feeds i2.
4499
4500 2010-10-18  Jan Hubicka  <jh@suse.cz>
4501
4502         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
4503         preserve flags before trying to guess on visibility.
4504         (varpool_externally_visible_p): New function.
4505         (function_and_variable_visibility): Use it.
4506
4507 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4508
4509         Implemented parsing @synthesize and @dynamic for Objective-C.
4510         * c-parser.c (c_parser_external_declaration): Recognize
4511         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
4512         (c_parser_objc_at_synthesize_declaration): New.
4513         (c_parser_objc_at_dynamic_declaration): New.
4514
4515 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4516
4517         * c-parser.c (c_parser_objc_class_declaration): After finding an
4518         error, parse the whole declaration then reset parser->error.
4519
4520 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4521
4522         PR target/46041
4523         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
4524         * builtins.c (mode_has_fma): Ditto.
4525
4526 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
4527
4528         PR target/36898
4529         PR middle-end/43760
4530         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
4531
4532 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
4533
4534         * config/i386/i386.c (ix86_option_override_internal): Define and
4535         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
4536         default.
4537         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4538         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
4539
4540 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4541
4542         Merge from 'apple/trunk' branch on FSF servers.
4543         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
4544         following Objective-C change:
4545
4546         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
4547
4548         Radar 4301047
4549         * c-parse.in (objc_quals): Build objc qualifier list same way
4550         as gcc-3.3
4551
4552 2010-10-18  Jan Hubicka  <jh@suse.cz>
4553
4554         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
4555         function_and_variable_visibility): Revert accidental commit.
4556
4557 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4558
4559         Merge from 'apple/trunk' branch on FSF servers.
4560         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
4561         the following Objective-C change:
4562
4563         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
4564
4565         Radar 4204796
4566         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
4567         'volatilized' type used in a typeof operator.
4568
4569 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
4570
4571         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
4572         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
4573         rewrite modelled on gimple_purge_dead_eh_edges.
4574         (gimple_purge_all_dead_abnormal_call_edges): New function.
4575         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
4576         directly instead of through gimple_purge_dead_abnormal_call_edges.
4577         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
4578         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
4579         removed AB side-effects from one of its statements.
4580         (init_pre): Initialize need_ab_cleanup.
4581         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
4582         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
4583
4584 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4585
4586         PR c/46015
4587         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
4588         on computed goto argument.
4589
4590 2010-10-18  Richard Guenther  <rguenther@suse.de>
4591
4592         PR tree-optimization/45967
4593         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
4594         (could_have_pointers): Likewise.
4595         (handle_rhs_call, handle_const_call, handle_pure_call,
4596         find_func_aliases, intra_create_variable_infos): Remove calls to them.
4597         (struct fieldoff): Add must_have_pointers field.
4598         (type_must_have_pointers): New function.
4599         (field_must_have_pointers): Likewise.
4600         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
4601         Adjust field merging.
4602         (create_function_info_for): May-have-pointers of varinfo is
4603         almost always true.
4604         (create_variable_info_for_1): Likewise.
4605
4606 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
4607
4608         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
4609         of operands to vec_concat.
4610
4611 2010-10-18  Richard Guenther  <rguenther@suse.de>
4612
4613         PR lto/44950
4614         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
4615         also clear references to entries of it.
4616
4617 2010-10-18  Andi Kleen  <ak@linux.intel.com>
4618
4619         PR other/43448
4620         * gccbug.in: Remove.
4621         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
4622         (doc, distclean, install-common): Remove reference to gccbug.
4623         * configure: Regenerate.
4624         * configure.ac (all_outputs): Remove gccbug.
4625         * doc/configfiles.texi: Remove references to gccbug.
4626         * doc/sourcebuild.texi: Dito.
4627
4628 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4629
4630         PR middle-end/46019
4631         * fold-const.c (fold_binary_loc): If integer_pow2p has
4632         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
4633
4634 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4635             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4636
4637         * gengtype.c (verbosity_level): Add variable.
4638         (set_gc_used): Count variables for verbosity.
4639         (close_output_files): Backing up files, counting written ones
4640         verbosily.
4641         (write_types): Count emitted functions for verbosity. Added
4642         debug messages.
4643         (write_enum_defn): Count structures for verbosity. Added debug
4644         messages.
4645         (gengtype_long_options): Add "verbose" & "backupdir".
4646         (print_usage): Ditto.
4647         (main): Verbose display of parsed files.
4648
4649         * gengtype.h (verbosity_level): Add declaration.
4650
4651 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4652
4653         * gengtype.c (parse_program_options): Add allocation of
4654         plugin_files, and correct test on nb_plugin_files.
4655
4656 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4657
4658         Merge from 'apple/trunk' branch on FSF servers.
4659
4660         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
4661
4662         Radar 4133425
4663         * c-decl.c (undeclared_variable): Issue diagnostic on
4664         private 'ivar' access.
4665
4666 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4667
4668         PR target/46051
4669         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
4670         generated sequence to match *avx_vperm2f128<mode>_nozero.
4671         (vec_interleave_lowv4df): Ditto.
4672         (vec_interleave_highv8sf): Ditto.
4673         (vec_interleave_lowv8sf): Ditto.
4674
4675 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
4676
4677         * libgcov.c (create_file_directory): Enable it for win32 case.
4678         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
4679         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
4680         (GCOV_PREFIX_SKIP): Likewise.
4681
4682 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4683
4684         * doc/objc.texi (GNU Objective-C runtime API): New section.
4685         (Modern GNU Objective-C runtime API): New section.
4686         (Traditional GNU Objective-C runtime API): New section.
4687         (Executing code before main): Mention that this section is
4688         specific to the GNU Objective-C runtime.
4689         (Garbage Collection): Same.
4690
4691 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4692
4693         * c-parser.c (c_parser_for_statement): Move initialization of
4694         cond and incr before if.
4695
4696 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
4697
4698         * target.def (preferred_output_reload_class): New hook.
4699         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
4700         * doc/tm.texi: Regenerate.
4701         * targhooks.c (default_preferred_output_reload_class): New function.
4702         * targhooks.h (default_preferred_output_reload_class): Declare.
4703         * reload.c (find_dummy_reload): Change rclass argument type from
4704         enum reg_class to reg_class_t. Change this_alternative array type
4705         from enum reg_class to reg_class_t.
4706         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4707         (push_reload): Change preferred_class variable type to reg_class_t.
4708         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4709         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
4710         argument type from enum reg_class to reg_class_t. Use
4711         HARD_REGISTER_NUM_P predicate.
4712         * recog.h (reg_fits_class_p): Update prototype.
4713
4714         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4715         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
4716         Remove.
4717         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
4718         static. Change regclass argument and result types from enum reg_class
4719         to reg_class_t.
4720         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4721
4722 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
4723
4724         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
4725         visibility enum, and handle @package.
4726
4727 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4728
4729         * doc/objc.texi (What you can and what you cannot do in +load):
4730         Document that sending messages to constant string objects in +load
4731         is not guaranteed to work.
4732
4733 2010-10-16  Jan Hubicka  <jh@suse.cz>
4734
4735         PR middle-end/44206
4736         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
4737         existence of refrences before removing the function.
4738
4739 2010-10-16  Jan Hubicka  <jh@suse.cz>
4740
4741         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
4742         only_called_at_startup and only_called_at_exit.
4743         (cgraph_propagate_frequency): Compute only_called_at_startup and
4744         only_called_at_exit.
4745         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
4746         only_called_at_exit.
4747         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
4748         flags.
4749         * predict.c (compute_function_frequency): Initialize the new flags.
4750
4751 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
4752
4753         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
4754         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
4755         on the bounds of its domain.
4756         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
4757
4758 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
4759
4760         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
4761         * config/avr/avr-protos.h (preferred_reload_class): Remove.
4762         * config/avr/avr.c (preferred_reload_class): Remove.
4763         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
4764         * config/pa/pa.c (emit_move_sequence): Update comment
4765         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
4766         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
4767         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
4768         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
4769         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
4770         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
4771         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
4772         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
4773         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
4774         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
4775         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
4776         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
4777         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
4778
4779 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
4780
4781         * opts.c (set_fast_math_flags,
4782         set_unsafe_math_optimizations_flags): Make static.
4783         * toplev.h (set_fast_math_flags,
4784         set_unsafe_math_optimizations_flags): Remove prototypes.
4785
4786 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
4787
4788         * config/arm/arm.c (arm_option_optimization): Set
4789         flag_section_anchors to 1 not 2.
4790         * config/i386/i386.c (ix86_option_override_internal): Check
4791         global_options_set.x_flag_zee and
4792         global_options_set.x_flag_omit_frame_pointer.
4793         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
4794         flag_zee to 2.
4795         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
4796         global_options_set.x_flag_omit_frame_pointer.
4797         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
4798         opts->x_flag_section_anchors to 1 not 2.
4799         * config/sh/sh.c (sh_option_optimization): Don't set
4800         flag_schedule_insns to 2.
4801         (sh_option_override): Check
4802         global_options_set.x_flag_schedule_insns.
4803         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
4804
4805 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
4806
4807         * configure.ac: Make sure inhibit_libc remains false for mingw targets
4808         as cross.
4809         * configure: Regenerated.
4810
4811 2010-10-15  Xinliang David Li  <davidxl@google.com>
4812
4813         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
4814         function.
4815         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
4816         into a recursive function.
4817
4818 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
4819
4820         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
4821         (*movdfcc_1): ditto.
4822
4823 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4824
4825         * target.def (target_option.init_struct): New hook.
4826         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
4827         * doc/tm.texi: Regenerate.
4828         * hooks.c (hook_void_gcc_optionsp): New.
4829         * hooks.h (hook_void_gcc_optionsp): Declare.
4830         * langhooks-def.h (lhd_init_options_struct): Remove.
4831         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
4832         * langhooks.c (lhd_init_options_struct): Remove.
4833         * opts.c (init_options_struct): Also call
4834         targetm.target_option.init_struct.
4835         * config/i386/i386.c (ix86_option_init_struct,
4836         TARGET_OPTION_INIT_STRUCT): New.
4837         (ix86_option_optimization): Move some settings to
4838         ix86_option_init_struct.
4839         * config/pdp11/pdp11.c (pdp11_option_init_struct,
4840         TARGET_OPTION_INIT_STRUCT): New.
4841         (pdp11_option_optimization): Move some settings to
4842         pdp11_option_init_struct.
4843         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
4844         rs6000_option_init_struct.  Use options structure pointer.
4845         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
4846         * config/s390/s390.c (s390_option_init_struct,
4847         TARGET_OPTION_INIT_STRUCT): New.
4848         (s390_option_optimization): Don't set
4849         flag_asynchronous_unwind_tables here.
4850         * config/sh/sh.c (sh_option_init_struct,
4851         TARGET_OPTION_INIT_STRUCT): New.
4852         (sh_option_optimization): Don't set flag_finite_math_only here.
4853         * config/spu/spu.c (spu_option_optimization): Replace by
4854         spu_option_optimization.  Use options structure pointer.
4855         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
4856
4857 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4858
4859         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
4860
4861         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
4862         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
4863         (Standard names): Document fma.
4864
4865         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
4866         __FP_FAST_FMAF, __FP_FAST_FMAL.
4867
4868         * builitns.c (expand_builtin_mathfn_ternary): New function for
4869         expanding ternary math functions, like fma.
4870         (expand_builtin): Call it for the fma builtins.
4871
4872         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
4873         ops at present.
4874
4875         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
4876         vectorizable functions to support vectorizing fma.
4877
4878         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4879         Handle fma builtins.
4880
4881         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
4882         (UNSPEC_VSX_MSUB): Ditto.
4883         (UNSPEC_VSX_NMADD): Ditto.
4884         (UNSPEC_VSX_NMSUB): Ditto.
4885         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
4886         of UNSPEC. Renumber combiner patterns.
4887         (vsx_fmsub<mode>4*): Ditto.
4888         (vsx_fnmadd<mode>4*): Ditto.
4889         (vsx_fnmsub<mode>4*): Ditto.
4890
4891         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
4892         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
4893         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
4894         (altivec_vmaddfp_1): Ditto.
4895         (altivec_vmaddfp_2): Ditto.
4896         (atlivec_mulv4sf3): Ditto.
4897         (altivec_vnmsubfp): Ditto.
4898         (altivec_vnmsubfp_1): Ditto.
4899         (altivec_vnmsubfp_2): Ditto.
4900         (altivec_vnmsubfp_3): Delete.
4901
4902         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
4903         (fmasf4_fpr): Ditto.
4904         (fmssf4_fpr): Ditto.
4905         (fnmasf4_fpr): Ditto.
4906         (fnmssf4_fpr): Ditto.
4907         (fmadf4): Ditto.
4908         (fmadf4_fpr): Ditto.
4909         (fmsdf4_fpr): Ditto.
4910         (fnmadf4_fpr): Ditto.
4911         (fnmsdf4_fpr): Ditto.
4912
4913         * optabs.h (OTI_fma): Add fma optab.
4914         (fma_optab): Ditto.
4915
4916         * genopinit.c (optabs): Set fma optab.
4917
4918         * rtl.def (FMA): Add FMA rtl.
4919
4920         * tree.h (mode_has_fma): New function to return if MODE supports a
4921         fast multiply and add instruction.
4922         * builtins.c (mode_has_fma): Ditto.
4923
4924 2010-10-15  Jan Hubicka  <jh@suse.cz>
4925
4926         * lto-streamer-out.c (write_symbol): Use pointer set of seen
4927         objects instead of bitmap.
4928         (produce_symtab): Likewise; output defined symbols first.
4929
4930 2010-10-15  Jie Zhang  <jie@codesourcery.com>
4931
4932         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
4933         Option Summary and Index.
4934
4935 2010-10-15  Richard Guenther  <rguenther@suse.de>
4936
4937         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
4938         for automatic variables again.
4939
4940 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4941
4942         * doc/extend.texi (Variable Length): Don't refer to VLAs not
4943         conforming to C99.
4944
4945 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4946
4947         * config/rx/rx.c (rx_option_optimization): Change to
4948         rx_override_options_after_change.  Don't change
4949         flag_lto_compression_level.  Don't check for changes to whether
4950         FPU instructions can be used.  Check and set only
4951         flag_finite_math_only, not other fast-math flags.
4952         (rx_option_override): Call rx_override_options_after_change.
4953         (TARGET_OPTION_OPTIMIZATION): Remove.
4954         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4955
4956 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4957
4958         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
4959         disable section anchors for lang_hooks.name[4] != 'O'.
4960
4961 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
4962
4963         * config/frv/frv.c (frv_option_optimization,
4964         TARGET_OPTION_OPTIMIZATION): Remove.
4965         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
4966
4967 2010-10-15  Michael Matz  <matz@suse.de>
4968
4969         * cgraphunit.c (clone_of_p): Define unconditionally.
4970
4971 2010-10-15  Richard Guenther  <rguenther@suse.de>
4972
4973         PR lto/45957
4974         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
4975
4976 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
4977
4978         * ifcvt.c (find_active_insn_before): New function.
4979         (find_active_insn_after): New function.
4980         (cond_exec_process_if_block): Use new functions to replace
4981         prev_active_insn() and next_active_insn().
4982
4983 2010-10-14  Yao Qi  <yao@codesourcery.com>
4984
4985         PR target/45447
4986         * config/arm/arm.c (arm_build_builtin_va_list): Assign
4987         va_list_name to TYPE_STUB_DECL (va_list_type).
4988
4989 2010-10-14  Jan Hubicka  <jh@suse.cz>
4990
4991         PR middle-end/45621
4992         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
4993         redirected to clone, be happy.
4994         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
4995         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
4996         former_clone_of unconditionally.
4997
4998 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
4999
5000         Merge from FSF apple 'trunk' branch.
5001         2006 Fariborz Jahanian  <fjahanian@apple.com>
5002
5003         Radars 4436866, 4505126, 4506903, 4517826
5004         * c-parser.c (c_parser, objc_property_attr_context) New flag.
5005         (c_lex_one_token): Handle property attributes.
5006         (c_parser_external_declaration): Handle @property.
5007         (c_parser_declaration_or_fndef): Warn on invalid attributes before
5008         @alias, @class, @end and @property objc keywords.
5009         (c_parser_objc_methodprotolist): Handle @property.
5010         (c_parser_objc_property_attrlist): New.
5011         (c_parser_objc_at_property): New.
5012         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
5013         (build_modify_expr): Likewise.
5014
5015 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5016
5017         PR tree-optimization/46008
5018         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
5019
5020 2010-10-14  Richard Guenther  <rguenther@suse.de>
5021
5022         PR tree-optimization/44913
5023         * tree-data-ref.c (disjoint_objects_p): Remove.
5024         (dr_may_alias_p): Simplify.  Only hand the base object to
5025         the alias-oracle.
5026         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5027         some more trees, bail out instead of asserting.
5028         (ptr_derefs_may_alias_p): Likewise.  Export.
5029         (refs_may_alias_p_1): Handle STRING_CSTs.
5030         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
5031
5032 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5033
5034         PR c/45969
5035         * c-typeck.c (build_binary_op): Don't try to compute a semantic
5036         type with excess precision for boolean operations.
5037
5038 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
5039             Basile Starynkevitch  <basile@starynkevitch.net>
5040
5041         * gengtype.c:  Include getopt.h and version.h.
5042
5043         (lang_bitmap, struct outf, outf_p)
5044         (get_output_file_with_visibility, oprintf): Definitions moved to
5045         gengtype.h
5046         (output_files, header_file, srcdir, srcdir_len, this_file)
5047         (do_dump): No more static variables.
5048         (do_debug): New.
5049         (dbgprint_count_type_at): Added new function.
5050         (gengtype_long_options): New.
5051         (print_usage, print_version, parse_program_options): New.
5052         (main): Call parse_program_options, and removed old option
5053         handling code.  Added some debug output.
5054
5055         * gengtype.h:  Updated copyright year.
5056         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
5057         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
5058         Moved from gengtype.c to here.
5059         (do_debug, read_state_filename, write_state_filename): New variables.
5060         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
5061
5062         * Makefile.in:
5063         (REVISION): Always defined.
5064         (version.o): Removed ifdef REVISION_c.
5065         (s-gtype): Pass arguments to build/gengtype program.
5066         (build/version.o): Added building rule.
5067         (build/gengtype$(build_exeext)): Added build/version.o.
5068
5069 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
5070
5071         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
5072         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
5073         __strong macros.
5074
5075 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
5076
5077         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
5078         may_trap_or_fault_p instead of may_trap_p predicate.
5079         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
5080         (substitute_placeholder_in_expr): Likewise.
5081         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
5082         flag on MEM_REF nodes.
5083         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
5084         flags on INDIRECT_REF nodes.
5085
5086 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
5087
5088         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
5089         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
5090         (arm*-*-eabi*) <tm_file>: Likewise.
5091         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
5092         (frv-*-*linux*) <tm_file>: Likewise.
5093         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
5094         and associated helper macros.
5095         * config/frv/frv-abi.h: Delete.
5096
5097 2010-10-14  Richard Guenther  <rguenther@suse.de>
5098
5099         PR lto/44561
5100         * tree.def (NULLPTR_TYPE): New tree code.
5101         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
5102         * dwarf2out.c (is_base_type): Likewise.
5103         (gen_type_die_with_usage): Likewise.
5104         * sdbout.c (plain_type_1): Likewise.
5105         * tree.c (build_int_cst_wide): Likewise.
5106         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
5107
5108 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5109
5110         * params.c (params_finished): New.
5111         (add_params): Assert !params_finished.
5112         (finish_params): New.
5113         (set_param_value_internal): Take params and params_set
5114         parameters.  Assert params_finished.
5115         (set_param_value, maybe_set_param_value): Take params and
5116         params_set parameters.  Update calls to set_param_value_internal.
5117         (set_default_param_value): Assert !params_finished.  Don't use
5118         set_param_value_internal.
5119         (default_param_value, init_param_values): New.
5120         * params.h (struct param_info): Change value to default_value.
5121         Remove set.
5122         (set_param_value, maybe_set_param_value): Add params and
5123         params_set parameters.
5124         (PARAM_VALUE): Get parameters from global_options.
5125         (PARAM_SET_P): Remove.
5126         (finish_params, default_param_value, init_param_values): New.
5127         * common.opt (param_values): New Variable.
5128         * config/arm/arm.c (arm_option_override): Pass extra arguments to
5129         maybe_set_param_value.
5130         * config/i386/i386.c (ix86_option_override_internal): Pass extra
5131         arguments to maybe_set_param_value.
5132         * config/picochip/picochip.c (picochip_option_override): Pass
5133         extra arguments to maybe_set_param_value.
5134         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
5135         extra arguments to maybe_set_param_value.
5136         * config/s390/s390.c (s390_option_override): Use
5137         maybe_set_param_value instead of set_param_value.  Pass extra
5138         arguments to maybe_set_param_value.
5139         * config/sparc/sparc.c (sparc_option_override): Pass extra
5140         arguments to maybe_set_param_value.
5141         * config/spu/spu.c (spu_option_override): Pass extra arguments to
5142         maybe_set_param_value.
5143         * opts.c (handle_param): Take opts and opts_set parameters.
5144         Update call to set_param_value.
5145         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
5146         initial_loop_invariant_max_bbs_in_loop): Remove.
5147         (init_options_once): Don't set them.
5148         (init_options_struct): Initialize parameters structures.
5149         (default_options_optimization): Use default_param_value when
5150         restoring defaults.  Update calls to maybe_set_param_value.
5151         (finish_options): Update calls to maybe_set_param_value.
5152         (common_handle_option): Update calls to handle_param and
5153         set_param_value.
5154         * toplev.c (DEFPARAM): Update definition for changes to param_info.
5155         (general_init): Call finish_params.
5156
5157 2010-10-14  Nick Clifton  <nickc@redhat.com>
5158
5159         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
5160         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
5161         (FIRST_PSEUDO_REGISTER): Increase by one.
5162         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
5163         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
5164         (MODES_TIEABLE): Call mn10300_modes_tieable.
5165         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
5166         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
5167         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
5168         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
5169         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
5170         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
5171         (mn10300_cc_status_mdep): Delete.
5172         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
5173         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
5174         the combine-stack-adjust pass.
5175         (print_operand): Use the mode of the comparison operation to
5176         select the comparison suffix.
5177         (notice_update_cc): Delete.
5178         (mn10300_secondary_reload_class): Remove test for stack pointer
5179         based arithmetic.
5180         (output_tst): Rename to mn10300_output_cmp.
5181         (impossible_plus_operand): Move into predicates.md.
5182         (mn10300_legitimize_address): Make static.
5183         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
5184         constant pic operands.
5185         (mn10300_legitimate_constant_p): New function.
5186         (mn10300_case_values_threshold): Make static.
5187         (mn10300_hard_regno_mode_ok): New function.
5188         (mn10300_modes_tieable): New function.
5189         (mn10300_select_cc_mode): New function.
5190         * config/mn10300/predicates.md (impossible_plus_operand): Define.
5191         * config/mn10300/mn10300-protos.h: Tidy.
5192         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
5193         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
5194         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
5195         with clobbers or sets of CC_REG.
5196         (CC_REG): Define.
5197         (mov*): Remove use of CLR instruction.
5198         (cbranch_si4_<code>): New pattern/split.
5199         (integer_conditional_branch): New pattern.
5200         (cbranch_sf4_<code>): New pattern/split.
5201         (float_conditional_branch): New pattern.
5202         (casesi): Use addsi3 pattern instead of movsi pattern to add and
5203         move a value at the same time.
5204         (cc0 peepholes): Remove.
5205
5206 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5207
5208         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
5209         on RTX_FRAME_RELATED_P insns and the insn to which
5210         NOTE_INSN_EPILOGUE_BEG is attached.
5211         * sched-vis.c (print_value): Allow NULL value.
5212
5213 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5214
5215         PR rtl-optimization/45570
5216         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
5217         assert that we are pipelining outer loops.  Allow returning
5218         zero predecessors.
5219
5220 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5221
5222         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
5223         (tidy_control_flow): Tidy vertical space.
5224         (sel_remove_bb): New variable idx.  Use it to remember the basic
5225         block index before deleting the block.
5226         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
5227         (sel_merge_blocks): ... here.
5228         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
5229
5230 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5231
5232         * cse.c (is_dead_reg): Change into inline function that is not
5233         called through for_each_rtx.
5234         (set_live_p): Adjust caller.
5235         (insn_live_p): Don't reset DEBUG_INSNs here.
5236         (struct dead_debug_insn_data): New data.
5237         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
5238         (delete_trivially_dead_insns): If there is just one setter for the
5239         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
5240         and add DEBUG_INSN for it right before the removed setter and
5241         use the DEBUG_EXPR instead of the dead pseudo.
5242
5243 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
5244
5245         * et-forest.c (et_nca): Return NULL immediately when
5246         the dominance forest has disjoint components.
5247
5248 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
5249
5250         * ira.c (setup_class_hard_regs): Fix typo in indexing
5251         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
5252
5253 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
5254
5255         * graph.c (inbb): New variable.
5256         (start_bb): Set inbb to 1 if output is inside of a building block.
5257         (end_bb): Check if output is inside of a building block.
5258
5259 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5260
5261         PR rtl-optimization/45912
5262         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
5263         regno of registers instead of their index to compute the alignment.
5264
5265 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
5266
5267         * config/i386/i386.c (ix86_build_const_vector): Check vector
5268         mode instead of scalar mode.
5269         (ix86_build_signbit_mask): Likewise.
5270         (ix86_expand_fp_absneg_operator): Updated.
5271         (ix86_expand_copysign): Likewise.
5272         (ix86_expand_int_vcond): Likewise.
5273         (ix86_emit_swdivsf): Likewise.
5274         (ix86_sse_copysign_to_positive): Likewise.
5275         (ix86_expand_sse_fabs): Likewise.
5276         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
5277         * config/i386/sse.md (copysign<mode>3): Likewise.
5278         (sse2_cvtudq2ps): Likewise.
5279         (vec_unpacku_float_hi_v4si): Likewise.
5280         (vec_unpacku_float_lo_v4si): Likewise.
5281
5282         * config/i386/i386.c (ix86_builtins): Add
5283         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
5284         (bdesc_args): Likewise.
5285         (ix86_builtin_vectorized_function): Support
5286         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
5287         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
5288         and IX86_BUILTIN_CVTPS2DQ256.
5289         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
5290
5291         * config/i386/sse.md (STORENT_MODE): New.
5292         (VEC_FLOAT_MODE): Likewise.
5293         (VEC_EXTRACT_MODE): Likewise.
5294         (*avx_cvtdq2pd256_2): Likewise.
5295         (vec_pack_trunc_v4df): Likewise.
5296         (vec_interleave_highv8sf): Likewise.
5297         (vec_interleave_lowv8sf): Likewise.
5298         (storent<mode>): Macroized.
5299         (<code><mode>2: absneg): Likewise.
5300         (copysign<mode>3): Likewise.
5301         (vec_extract<mode>): Likewise.
5302
5303         PR target/44180
5304         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
5305         for V8SFmode.
5306
5307 2010-10-13  Richard Guenther  <rguenther@suse.de>
5308             H.J. Lu  <hongjiu.lu@intel.com>
5309
5310         * config/i386/sse.md (reduc_splus_v8sf): Add.
5311         (reduc_splus_v4df): Likewise.
5312         (vec_unpacks_hi_v8sf): Likewise.
5313         (vec_unpacks_lo_v8sf): Likewise.
5314         (*avx_cvtps2pd256_2): Likewise.
5315         (vec_unpacks_float_hi_v8si): Likewise.
5316         (vec_unpacks_float_lo_v8si): Likewise.
5317         (vec_interleave_highv4df): Likewise.
5318         (vec_interleave_lowv4df): Likewise.
5319
5320 2010-10-13  Richard Guenther  <rguenther@suse.de>
5321
5322         PR objc/45878
5323         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
5324         alone if there are no virtual methods.
5325
5326 2010-10-13  Richard Henderson  <rth@redhat.com>
5327
5328         * expr.c (build_personality_function): Take parameter LANG instead
5329         of parameter NAME.  Build the name based on the lang prefix and the
5330         unwind method in use.
5331         * tree.c (lhd_gcc_personality): Update call to
5332         build_personality_function.
5333
5334 2010-10-13  Richard Guenther  <rguenther@suse.de>
5335
5336         PR objc/45878
5337         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
5338
5339 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5340
5341         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
5342         Canonicalize input operands of ASM_OPERANDS insns.
5343
5344 2010-10-13  Richard Guenther  <rguenther@suse.de>
5345
5346         PR tree-optimization/45788
5347         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
5348         EH update until fixup-cfg.
5349
5350 2010-10-13  Julian Brown  <julian@codesourcery.com>
5351
5352         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
5353         from CORE_REGS and GENERAL_REGS classes.
5354         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
5355         final constraint for register preferencing.
5356
5357 2010-10-13  Richard Guenther  <rguenther@suse.de>
5358
5359         PR tree-optimization/45970
5360         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
5361         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
5362         (stmt_kills_ref_p): Likewise.
5363         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
5364
5365 2010-10-13  Richard Guenther  <rguenther@suse.de>
5366
5367         PR tree-optimization/45982
5368         * tree-ssa-structalias.c (make_constraints_to): New function.
5369         (make_constraint_to): Implement in terms of make_constraints_to.
5370         (find_func_aliases): Properly make return values of pure/const
5371         functions escape if they assign to sth that is not a pointer.
5372
5373 2010-10-13  Richard Guenther  <rguenther@suse.de>
5374
5375         PR middle-end/45874
5376         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5377         Fixup the CFG when EH was fixed up.
5378
5379 2010-10-13  Ira Rosen  <irar@il.ibm.com>
5380
5381         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
5382         Use operand's type for POINTER_PLUS_EXPR.
5383
5384 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
5385
5386         * c-parser.c (c_parser_for_statement): Initialize incr.
5387
5388 2010-10-12  Xinliang David Li  <davidxl@google.com>
5389
5390         PR tree-optimization/45972
5391         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
5392         with too many arguments.
5393
5394 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5395
5396         PR fortran/45636
5397         * tree-ssa-forwprop.c: Include expr.h.
5398         (constant_pointer_difference, simplify_builtin_call): New functions.
5399         (tree_ssa_forward_propagate_single_use_vars): Call
5400         simplify_builtin_call on builtin calls.
5401
5402 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
5403
5404         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
5405         (*adddi3_extend_sp32): Likewise.
5406         (*subdi3_insn_sp32): Likewise.
5407         (*subdi3_extend_sp32): Likewise.
5408         (*negdi2_sp32): Use negative test for consistency.
5409
5410 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5411
5412         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
5413         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5414         * config/fixed-bit.h: Likewise.
5415         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5416         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5417         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
5418         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
5419         (DF_SIZE): Likewise.
5420         * doc/tm.texi: Regenerate.
5421
5422 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5423
5424         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
5425         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
5426         (*isel_reversed_unsigned_<mode>): New.
5427         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
5428         as valid comparisons and adjust operands and output appropriately.
5429         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
5430
5431 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
5432
5433         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
5434         DATA_ALIGNMENT and add COND parameter. Update comments above.
5435         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
5436         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
5437
5438 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
5439
5440         PR bootstrap/45958
5441         * exec-tool.in: Support '-plugin' as the second option to the linker.
5442
5443 2010-10-12  Richard Henderson  <rth@redhat.com>
5444
5445         PR middle-end/45962
5446         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
5447         (expand_stack_vars): Assert large base allocated when used.
5448
5449 2010-10-12  Richard Guenther  <rguenther@suse.de>
5450
5451         * tree-ssa-structalias.c (get_constraint_for_1): Constants
5452         only point to nonlocal, not anything.
5453
5454 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5455
5456         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
5457         unwind info for exceptions.
5458
5459 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5460
5461         PR testsuite/45851
5462         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
5463         Document optional target selector.
5464
5465 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
5466
5467         * flag-types.h: New.
5468         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
5469         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
5470         options.h.
5471         (OPTIONS_H): Define.
5472         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
5473         of options.h.
5474         * configure.ac (tm_include_list): Include options.h not flags.h.
5475         * configure: Regenerate.
5476         * flags.h: Include flag-types.h.  Include options.h at top of file
5477         again.
5478         (enum debug_info_type, enum debug_info_level, enum
5479         debug_info_usage, enum symbol_visibility, struct visibility_flags,
5480         enum ira_algorithm, enum ira_region, enum excess_precision, enum
5481         graph_dump_types, enum stack_check_type,
5482         enum warn_strict_overflow_code): Move to flag-types.h
5483         * opth-gen.awk: Include flag-types.h in options.h.
5484
5485 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5486
5487         * expr.c (store_expr): Share code for STRING_CST and
5488         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
5489         check if target is a MEM.
5490
5491         * rtl.h: Include hashtab.h.
5492         (iterative_hash_rtx): New prototype.
5493         * rtl.c (iterative_hash_rtx): New function.
5494         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
5495         (output_loc_list): Return immediately if emitted is set, set it.
5496         (hash_loc_operands, hash_locs, hash_loc_list,
5497         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
5498         optimize_location_lists_1, optimize_location_lists): New function.
5499         (dwarf2out_finish): Call optimize_location_lists.
5500         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
5501
5502 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5503
5504         PR testsuite/45974
5505         Revert:
5506         * Makefile.in ($(lang_checks_parallel))
5507         ($(lang_checks_parallelized)): Use single quotes for
5508         $(RUNTESTFLAGS), to allow passing quoted content.
5509
5510 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5511
5512         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
5513         actual_oldval.  Use __builtin_expect.
5514         (SUBWORD_VAL_CAS): Likewise.
5515
5516 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5517
5518         * recog.c (nonmemory_operand): Call immediate_operand for
5519         CONSTANT_P operands.
5520
5521 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
5522
5523         * config/i386/i386.md (movmem<mode>): Macroize expander from
5524         movmem{si,di} using SWI48 mode iterator.
5525         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
5526         *strmovsi_rex_1 using P mode iterator.
5527         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
5528         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
5529         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
5530         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
5531         (setmem<mode>): Macroize expander from setmem{si,di} using
5532         SWI48 mode iterator.
5533         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
5534         *strsetsi_rex_1 using P mode iterator.
5535         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
5536         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
5537         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
5538         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
5539         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
5540         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
5541         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
5542         mode iterator.
5543         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
5544         *strlenqi_rex_1 using P mode iterator.
5545
5546 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
5547
5548         PR bootstrap/45445
5549         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
5550         static functions.
5551         (mark_ref_live, mark_ref_dead): Use them.
5552         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
5553         Save the original reg, and use the new functions.
5554         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
5555         changed.
5556         (check_and_make_def_conflict): Save the original reg.
5557
5558 2010-10-11  Martin Jambor  <mjambor@suse.cz>
5559
5560         PR middle-end/45699
5561         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
5562         thunks.
5563
5564 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5565
5566         * Makefile.in ($(lang_checks_parallel))
5567         ($(lang_checks_parallelized)): Use single quotes for
5568         $(RUNTESTFLAGS), to allow passing quoted content.
5569
5570         PR bootstrap/35855
5571         * opt-functions.awk (BEGIN): New section.
5572         (lower, upper, digit, alnum): New variables.
5573         (static_var, opt_sanitized_name): Use alnum instead of character
5574         classes, for non-C locale.
5575         * optc-gen.awk: Likewise.
5576         * opth-gen.awk: Likewise.
5577
5578 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
5579
5580         * target.def (preferred_reload_class): New hook.
5581         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
5582         * doc/tm.texi: Regenerate.
5583         * targhooks.c (default_preferred_reload_class): New function.
5584         * targhooks.h (default_preferred_reload_class): Declare.
5585         * reload.c (find_dummy_reload): Change preferred_class variable type
5586         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
5587         target hook.
5588         (find_reloads): Change goal_alternative array type from int to
5589         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
5590         (push_reload, find_reloads_address_part): Use
5591         TARGET_PREFERRED_RELOAD_CLASS target hook.
5592         * reload1.c (emit_input_reload_insns): Ditto.
5593         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
5594         hook. Change rclass argument and secondary_class variable types from
5595         'enum reg_class' to reg_class_t.
5596
5597         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
5598         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
5599         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
5600         Change regclass argument and result types from enum reg_class to
5601         reg_class_t.
5602         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5603
5604 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
5605
5606         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
5607         in masking operations.
5608         (simplify_const_unary_operation): Likewise.
5609         (simplify_binary_operation_1): Likewise.
5610         (simplify_const_binary_operation): Likewise.
5611         (simplify_const_relational_operation): Likewise.
5612         (simplify_ternary_operation): Likewise.
5613         (simplify_immed_subreg): Likewise.
5614
5615 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5616
5617         PR middle-end/45862
5618         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
5619         (TARGET_SUPPORTS_WEAK): New.
5620         * doc/tm.texi: Regenerate.
5621         * defaults.h (SUPPORTS_WEAK): Update comment.
5622         (TARGET_SUPPORTS_WEAK): New.
5623         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
5624         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
5625         SUPPORTS_WEAK.
5626         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
5627         make_decl_one_only): Likewise.
5628         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
5629         TARGET_SUPPORTS_WEAK.
5630         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
5631         instead of SUPPORTS_WEAK.
5632
5633 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5634
5635         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
5636
5637 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5638
5639         * vec.h (VEC_qsort): Define.
5640         * dbxout.c (output_used_types): Use it.
5641         * df-scan.c (df_sort_and_compress_refs): Likewise.
5642         (df_sort_and_compress_mws): Likewise.
5643         * genautomata.c (uniq_sort_alt_states): Likewise.
5644         (evaluate_equiv_classes): Likewise.
5645         (output_trans_table): Likewise.
5646         (output_state): Likewise.
5647         * gimplify.c (compare_case_labels): Likewise.
5648         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
5649         * ipa.c (build_cdtor_fns): Likewise.
5650         * lto.c (lto_wpa_write_files): Likewise.
5651         * sel-sched.c (fill_vec_av_set): Likewise.
5652         * tree-predcom.c (determine_roots_comp): Likewise.
5653         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
5654         (splice_param_accesses): Likewise.
5655         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
5656         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
5657         (reassociate_bb): Likewise.
5658         * tree-ssa-sccvn.c (sort_scc): Likewise.
5659         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
5660
5661 2010-10-11  Ian Lance Taylor  <iant@google.com>
5662
5663         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
5664         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
5665         TREE_THIS_NOTRAP when appropriate.
5666         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
5667         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
5668         newly created MEM_REF.
5669
5670 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5671
5672         Nathan Froyds patch to hooks FUNCTION_ARG etc.
5673         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
5674         (picochip_incoming_function_arg): Delete.
5675         (picochip_arg_advance): Delete.
5676         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
5677         (FUNCTION_INCOMING_ARG): Delete.
5678         (FUNCTION_ARG_ADVANCE): Delete.
5679         * config/picochip/picochip.c (picochip_function_arg): Take a
5680         const_tree and a bool.
5681         (picochip_incoming_function_arg): Likewise.
5682         (picochip_arg_advance): Likewise.
5683         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5684         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5685
5686 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5687
5688         PR middle-end/45955
5689         * ipa.c (build_cdtor): Delete endless loop.
5690
5691 2010-10-07  Andi Kleen  <ak@linux.intel.com>
5692
5693         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
5694         checksum-options.
5695         (checksum-options): Add.
5696         (cc1-dummy): Remove.
5697         (cc1-checksum): Change to run checksum over object files
5698         and options only.
5699         * dummy-checksum.c: Remove.
5700         * genchecksum.c: Update copyright.
5701         (usage): Allow multiple arguments.
5702         (BLOCKSIZE): Add.
5703         (dosum): Change for incremental checksum. Remove C output.
5704         (main): Iterate over all argument files. Add C output.
5705
5706 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
5707
5708         * params.c (set_param_value_internal): New.
5709         (set_param_value): Use set_param_value_internal.
5710         (maybe_set_param_value, set_default_param_value): New.
5711         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
5712         (maybe_set_param_value, set_default_param_value): Declare.
5713         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
5714         * config/i386/i386.c (ix86_option_override_internal): Use
5715         maybe_set_param_value.
5716         * config/ia64/ia64.c (ia64_option_default_params,
5717         TARGET_OPTION_DEFAULT_PARAMS): New.
5718         (ia64_option_optimization): Move some code to
5719         ia64_option_default_params.
5720         * config/picochip/picochip.c (picochip_option_override): Use
5721         maybe_set_param_value.
5722         * config/rs6000/rs6000.c (rs6000_option_default_params,
5723         TARGET_OPTION_DEFAULT_PARAMS): New.
5724         (rs6000_option_override_internal): Use maybe_set_param_value.
5725         (rs6000_option_optimization): Move some code to
5726         rs6000_option_default_params.
5727         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
5728         * config/sh/sh.c (sh_option_default_params,
5729         TARGET_OPTION_DEFAULT_PARAMS): New.
5730         (sh_option_optimization): Move some code to sh_option_default_params.
5731         * config/sparc/sparc.c (sparc_option_override): Use
5732         maybe_set_param_value.
5733         * config/spu/spu.c (spu_option_default_params,
5734         TARGET_OPTION_DEFAULT_PARAMS): New.
5735         (spu_option_optimization): Move some code to spu_option_default_params.
5736         (spu_option_override): Use maybe_set_param_value.
5737         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
5738         * doc/tm.texi: Regenerate.
5739         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
5740         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
5741         compiler_params.
5742         (default_options_optimization): Use maybe_set_param_value.
5743         (finish_options): Use maybe_set_param_value.
5744         * target.def (target_option.default_params): New hook.
5745         * toplev.c (general_init): Call targetm.target_option.default_params.
5746
5747 2010-10-11  Ira Rosen  <irar@il.ibm.com>
5748
5749         PR tree-optimization/45902
5750         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
5751         vector type for constants, unless it's a pointer.
5752
5753 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5754
5755         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
5756
5757 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
5758
5759         PR target/45870
5760         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
5761         (ix86_delegitimize_address): Use it.
5762
5763 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
5764
5765         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
5766
5767 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
5768
5769         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
5770         to cum struct in the call to function_arg_advance.
5771         (alpha_function_arg_advance): Mark named as unused.
5772
5773 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
5774
5775         * config/mips/mips.c (mips_handle_option): Make "value" with
5776         ATTRIBUTE_UNUSED.
5777
5778 2010-10-09  Richard Henderson  <rth@redhat.com>
5779
5780         PR rtl-opt/33721
5781         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
5782         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
5783         required_align, tidy the code a bit.  Emit split_stack code in the
5784         right place.  Mark the return value with the alignment properly.
5785         * expr.h (allocate_dynamic_stack_space): Update decl.
5786         * builtins.c (expand_builtin_apply): Update call to
5787         allocate_dynamic_stack_space.
5788         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
5789         * calls.c (initialize_argument_information): Update call to
5790         allocate_dynamic_stack_space.
5791         (expand_call): Likewise.
5792
5793         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
5794         Don't update_stack_alignment here.
5795         (alloc_stack_frame_space): Make ALIGN unsigned.
5796         (stack_var_cmp): Sort by alignment too.
5797         (partition_stack_vars): Don't merge large and small alignment vars.
5798         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
5799         Take care when BASE is not virtual_stack_vars_rtx.
5800         (expand_stack_vars): Allocate dynamic stack space for large
5801         alignment variables.
5802         (expand_one_stack_var): Update all to expand_one_stack_var_at.
5803         (defer_stack_allocation): True for large alignment vars.
5804         (update_stack_alignment): Merge into ...
5805         (expand_one_var): ... here.
5806         (gimple_expand_cfg): Place code from expand_stack_vars.
5807
5808 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5809
5810         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5811         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
5812         (pdp11_function_arg_advance): New function.
5813         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5814
5815 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5816
5817         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
5818         * libgcc2.c: Likewise.
5819
5820 2010-10-09  Richard Guenther  <rguenther@suse.de>
5821
5822         PR lto/45956
5823         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
5824         Properly check if a decl is an automatic var.
5825
5826 2010-10-09  Richard Guenther  <rguenther@suse.de>
5827
5828         PR lto/45947
5829         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
5830
5831 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5832
5833         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
5834         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5835         * config/mmix/mmix.c (mmix_function_arg): Rename to...
5836         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
5837         bool arguments.
5838         (mmix_function_arg): New function.
5839         (mmix_function_incoming_arg): New function.
5840         (mmix_function_arg_advance): New function.
5841         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5842         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5843
5844 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5845
5846         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5847         * config/vax/vax.c (vax_function_arg): New function.
5848         (vax_function_arg_advance): New function.
5849         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5850
5851 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5852
5853         * config/pa/pa-protos.h (function_arg): Delete.
5854         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5855         * config/pa/pa.c (function_arg): Rename to...
5856         (pa_function_arg): ...this.  Make static.  Take a const_tree and
5857         a bool.
5858         (pa_function_arg_advance): New function.
5859         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5860
5861 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5862
5863         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5864         * config/m68k/m68k.c (m68k_function_arg): New function.
5865         (m68k_function_arg_advance): New function.
5866         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5867
5868 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5869
5870         * config/avr/avr-protos.h (function_arg): Delete.
5871         (function_arg_advance): Delete.
5872         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5873         * config/avr/avr.c (function_arg): Rename to...
5874         (avr_function_arg): ...this.  Make static.  Take a const_tree and
5875         a bool.
5876         (function_arg_advance): Rename to...
5877         (avr_function_arg_advance): ...this.  Make static.  Take a
5878         const_tree and a bool.
5879         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5880
5881 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5882
5883         * config/alpha/alpha-protos.h (function_arg): Delete.
5884         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5885         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
5886         * config/alpha/alpha.c (function_arg): Rename to...
5887         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
5888         a bool.  Delete TARGET_ABI_UNICOSMK code.
5889         (alpha_function_arg_advance): New function.
5890         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5891
5892 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5893
5894         * config/mep/mep-protos.h (mep_function_arg): Delete.
5895         (mep_function_arg_advance): Delete.
5896         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5897         * config/mep/mep.c (mep_function_arg): Make static.  Take a
5898         const_tree and a bool.
5899         (mep_function_arg_advance): Likewise.
5900         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5901
5902 2010-10-09  Richard Guenther  <rguenther@suse.de>
5903
5904         PR tree-optimization/45945
5905         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
5906
5907 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
5908
5909         PR tree-optimization/45612
5910         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
5911         Test LABEL_DECLs as well.  Fix formatting issues.
5912         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
5913         whose label is present in NON_SSA_VARS.
5914         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
5915         as well.  Fix formatting issues.
5916         (visit_bb): Fix typos and formatting issue.
5917
5918 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
5919
5920         PR tree-optimization/45950
5921         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
5922         before initializing vno->op.
5923
5924 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
5925
5926         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
5927         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
5928
5929 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
5930
5931         PR target/45913
5932         * config/i386/i386.c (ix86_binary_operator_ok): Support
5933         "andhi/andsi/anddi" as a zero-extending move.
5934
5935 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
5936
5937         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
5938         into a temporary array.
5939
5940 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
5941
5942         PR tree-optimization/45903
5943         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
5944         of {A,L}SHIFTRT of MEM.
5945
5946 2010-10-08  Richard Guenther  <rguenther@suse.de>
5947
5948         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
5949         Re-construct BLOCK_VARS.
5950         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
5951         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
5952         * tree.c (free_lang_data_in_block): Remove.
5953         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
5954         Do not touch the BLOCK tree.
5955         * expr.c (expand_expr_real_1): Allow externals.
5956
5957 2010-10-08  Richard Guenther  <rguenther@suse.de>
5958
5959         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
5960         Do not output BLOCK_SUBBLOCKS.
5961         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
5962         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
5963         Re-construct BLOCK_SUBBLOCKS of parent block.
5964         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
5965         for BINFO_BASE_ACCESSES.
5966
5967 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
5968
5969         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
5970         (TREE_H): Include $(FLAGS_H) instead of options.h.
5971         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
5972         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
5973         * common.opt (flag_complex_method, flag_evaluation_order,
5974         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
5975         Variable declarations.
5976         * configure.ac (tm_include_list): Include flags.h instead of options.h.
5977         * configure: Regenerate.
5978         * flags.h: Condition out contents for target libraries.  Include
5979         options.h at end of file.
5980         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
5981         flag_evaluation_order, flag_warn_unused_result): Remove.
5982         * gcc.c (main): Intialize global_options with global_options_init.
5983         * langhooks-def.h (lhd_init_options_struct): Declare.
5984         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
5985         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
5986         * langhooks.c (lhd_init_options_struct): New.
5987         * langhooks.h (struct lang_hooks): Add init_options_struct.
5988         Update comment on init_options.
5989         * optc-gen.awk: Generate initializer for global_options_init, not
5990         global_options.
5991         * opth-gen.awk: Condition out structure declarations for target
5992         libraries.  Declare global_options_init.
5993         * opts-common.c: Include flags.h instead of options.h.
5994         * opts.c (flag_warn_unused_result): Remove.
5995         (read_cmdline_options): Take gcc_options parameters.  Pass them to
5996         read_cmdline_option.
5997         (initial_lang_mask, initial_min_crossjump_insns,
5998         initial_max_fields_for_field_sensitive,
5999         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
6000         (init_options_once): New.  Split out of decode_options.
6001         (init_options_struct): New.  Split out of decode_options.
6002         (decode_cmdline_options_to_array_default_mask): New.
6003         (default_options_optimization): New.  Split out of decode_options.
6004         (decode_options): Move most code to other functions.  Update call
6005         to read_cmdline_options.
6006         (finish_options): New.  Split out of decode_options.
6007         * opts.h (decode_options): Add gcc_options parameters.
6008         (init_options_once, init_options_struct,
6009         decode_cmdline_options_to_array_default_mask): New.
6010         * toplev.c (flag_complex_method, flag_ira_algorithm,
6011         flag_ira_region, flag_evaluation_order): Remove.
6012         (general_init): Use global_options_init for initial flag values
6013         for global_dc.
6014         (toplev_main): Call init_options_once, init_options_struct,
6015         lang_hooks.init_options_struct,
6016         decode_cmdline_options_to_array_default_mask and
6017         lang_hooks.init_option before decode_options.  Update arguments to
6018         decode_options.
6019         * tree.h: Include flags.h instead of options.h.
6020
6021 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6022
6023         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6024
6025 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6026
6027         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
6028         Delete.
6029         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
6030         (FUNCTION_INCOMING_ARG): Delete.
6031         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
6032         (function_arg_slotno): Likewise.  Take bool arguments.
6033         (sparc_arg_partial_bytes): Update call to it.
6034         (function_arg): Rename to...
6035         (sparc_function_arg_1): ...this.  Take bool arguments.
6036         (sparc_function_arg, sparc_function_incoming_arg): New functions.
6037         (function_arg_advance): Rename to...
6038         (sparc_function_arg_advance): ...this.  Take bool argument.
6039         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
6040         (TARGET_FUNCTION_INCOMING_ARG): Define.
6041
6042 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6043
6044         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
6045         Delete.
6046         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6047         * config/bfin/bfin.c (function_arg_advance): Rename to...
6048         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
6049         and bool arguments.
6050         (function_arg): Rename to...
6051         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
6052         arguments.
6053         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6054
6055 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6056
6057         * config/score/score-protos.h (score_function_arg): Delete.
6058         (score_function_arg_advance): Delete.
6059         * config/score/score3.h (score3_function_arg_advance): Take a
6060         const_tree and a bool.
6061         (score3_function_arg): Likewise.
6062         * config/score/score7.h (score7_function_arg_advance): Likewise.
6063         (score7_function_arg): Likewise.
6064         * config/score/score3.c (score3_classify_arg): Likewise.
6065         (score3_function_arg_advance, score3_function_arg): Likewise.
6066         * config/score/score7.c (score7_classify_arg): Likewise.
6067         (score7_function_arg_advance, score7_function_arg): Likewise.
6068         * config/score/score.c (score_function_arg_advance): Likewise.
6069         (score_function_arg): Likewise.  De-const-ify `cum' argument.
6070         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6071
6072 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6073
6074         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
6075         (s390_function_arg): Delete.
6076         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6077         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
6078         (s390_function_arg_integer): Likewise.
6079         (s390_function_arg_advance): Make static.  Take a const_tree and
6080         a bool.
6081         (s390_function_arg): Likewise.
6082         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6083
6084 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6085
6086         * config/spu/spu-protos.h (spu_function_arg): Delete.
6087         * config/spu/spu.h (FUNCTION_ARG): Delete.
6088         (FUNCTION_ARG_ADVANCE): Move code to ...
6089         * config/spu/spu.c (spu_function_arg_advance): New function.
6090         (spu_function_arg): Make static.  Take a const_tree and a bool.
6091         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
6092         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6093
6094 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6095
6096         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6097
6098 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6099
6100         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
6101         (init_vn_nary_op_from_op): New function.
6102         (init_vn_nary_op_from_stmt): New function.
6103         (vn_nary_op_lookup_1): New function.
6104         (sizeof_vn_nary_op): New function.
6105         (alloc_vn_nary_op_noinit): New function.
6106         (alloc_vn_nary_op): New function.
6107         (vn_nary_op_insert_into): New function.
6108         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
6109         (vn_nary_op_lookup): Likewise.
6110         (vn_nary_op_lookup_stmt): Likewise.
6111         (vn_nary_op_insert_pieces): Likewise.
6112         (vn_nary_op_insert): Likewise.
6113         (vn_nary_op_insert_stmt): Likewise.
6114         (copy_nary): Likewise.
6115         (set_value_id_for_result): New function.
6116         (set_hashtable_value_ids): Call it.
6117
6118 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6119
6120         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6121         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
6122
6123 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6124
6125         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
6126         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6127
6128 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6129
6130         PR debug/45656
6131         * cse.c (cse_extended_basic_block): Preserve cc0 info across
6132         debug isnsn.  Skip them when searching for cc0 setter.
6133         (set_live_p): Skip debug insns when searching for cc0 user.
6134
6135 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6136
6137         PR debug/45673
6138         PR debug/45604
6139         PR debug/45419
6140         PR debug/45408
6141         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
6142         type of MEM_REFs to INTEGER_CSTs.
6143
6144 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6145
6146         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
6147         m68hc11_print_operand_address.
6148
6149 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6150
6151         * builtins.c (rewrite_call_expr): Move code to...
6152         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
6153         (rewrite_call_expr_array): New function.
6154         (fold_builtin_sprintf_chk_1): New function.
6155         (fold_builtin_sprintf_chk): Call it.
6156         (gimple_fold_builtin_sprintf_chk): Likewise.
6157         (fold_builtin_snprintf_chk_1): New function.
6158         (fold_builtin_snprintf_chk): Call it.
6159         (gimple_fold_builtin_snprintf_chk): Likewise.
6160         (gimple_rewrite_call_expr): Delete.
6161
6162 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6163
6164         * config.host: Update copyright year.
6165
6166 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6167
6168         * config.host (host_lto_plugin_soname): New shell variable.
6169         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
6170         * config.in: Regenerate.
6171         * configure: Regenerate.
6172         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
6173         LTO plugin shared library.
6174
6175 2010-10-07  Richard Henderson  <rth@redhat.com>
6176
6177         * target.h (enum unwind_info_type): Move ...
6178         * coretypes.h: ... here.
6179
6180 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
6181
6182         * doc/objc.texi (Fast enumeration protocol): Mention that
6183         'unsigned int' can also be used instead of 'unsigned long' in
6184         countByEnumeratingWithState:objects:count:.
6185
6186 2010-10-07  Martin Jambor  <mjambor@suse.cz>
6187
6188         * tree-sra.c (struct access): New field grp_assignment_write.
6189         (dump_access): Dump grp_assignment_write.
6190         (build_accesses_from_assign): Set grp_assignment_write.
6191         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
6192         (mark_read_status): Renamed to mark_rw_status, individual values
6193         renamed too.
6194         (analyze_access_subtree): Changed type of mark_write to
6195         mark_read_status.  Fixed propagating of mark_read and
6196         mark_write.  Changed benefit estimate.  Updated comment.
6197
6198 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6199
6200         PR Tree-Vect/45847
6201         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
6202         check for vectype_out returned by get_vectype_for_scalar_type().
6203
6204 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6205
6206         PR target/45805
6207         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
6208         constraint, add register specifier in instruction template.
6209         (neon_vec_pack_trunc_<mode>): Likewise.
6210         (neon_vec_<US>mult_<mode>): Add register specifier to
6211         instruction template.
6212
6213 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6214
6215         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
6216         cygwin2.o.
6217         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
6218         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
6219         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
6220         (cygwin2.o): Likewise.
6221         * config/i386/cygwin1.c: Delete file.
6222         * config/i386/cygwin2.c: Likewise.
6223         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
6224         make all {%!mno-cygwin} ones unconditional.
6225         (STARTFILE_SPEC): Likewise.
6226         (REAL_LIBGCC_SPEC): Likewise.
6227         (LIB_SPEC): Likewise.
6228         (CXX_WRAP_SPEC): Likewise.
6229         (LINK_SPEC): Likewise.
6230         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
6231         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
6232         (cygwin_gplusplus_include_dir): Delete now-unused array.
6233         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
6234         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
6235         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
6236         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
6237         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
6238         (cygwin_local_include_dir): Delete now-unused array.
6239         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
6240         (cygwin_cross_include_dir): Delete now-unused array.
6241         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
6242         (cygwin_tool_include_dir): Delete now-unused array.
6243         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
6244         (cygwin_standard_include_dir): Delete now-unused array.
6245         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
6246         (GEN_CVT_ARRAY): Delete now-unused macro definition.
6247         (cvt_to_mingw): Delete now-unused array.
6248         (mingw_scan): Remove prototype of deleted function.
6249         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
6250         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
6251         * doc/invoke.texi (-mcygwin): Don't document removed option.
6252         (-mno-cygwin): Likewise.
6253
6254 2010-10-07  Richard Guenther  <rguenther@suse.de>
6255
6256         * machmode.h (mode_for_vector): Declare.
6257         * stor-layout.c (mode_for_vector): New function, split out from ...
6258         (layout_type): ... here.
6259         * tree-vectorizer.h (current_vector_size): Declare.
6260         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
6261         mask vector type is available.
6262         (get_vectype_for_scalar_type): Rename to ...
6263         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
6264         size argument.
6265         (get_vectype_for_scalar_type): New wrapper around
6266         get_vectype_for_scalar_type_and_size using current_vector_size.
6267         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
6268         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
6269         of vect_analyze_loop here.
6270         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
6271         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
6272         to autodetect.
6273         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
6274         V8SF to V8SI conversion builtin.
6275
6276 2010-10-07  Richard Guenther  <rguenther@suse.de>
6277
6278         * target.def (autovectorize_vector_sizes): New target hook.
6279         * targhooks.c (default_autovectorize_vector_sizes): New function.
6280         * targhooks.h (default_autovectorize_vector_sizes): Declare.
6281         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
6282         Document.
6283         * doc/tm.texi: Update.
6284         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
6285         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6286
6287 2010-10-07  Richard Guenther  <rguenther@suse.de>
6288
6289         * target.def (units_per_simd_word): Rename to ...
6290         (preferred_simd_mode): ... this.  Return mode instead of size.
6291         * targhooks.c (default_units_per_simd_word): Rename to ...
6292         (default_preferred_simd_mode): ... this.  Return word_mode.
6293         * targhooks.h (default_preferred_simd_mode): Declare.
6294         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
6295         (arm_preferred_simd_mode): ... this.  Re-implement.
6296         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
6297         (ix86_preferred_simd_mode): ... this.  Re-implement.
6298         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
6299         (sparc_preferred_simd_mode): ... this.  Re-implement.
6300         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
6301         (mips_preferred_simd_mode): ... this.  Re-implement.
6302         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
6303         (rs6000_preferred_simd_mode): ... this.  Re-implement.
6304         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
6305         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
6306         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
6307         * doc/tm.texi: Update.
6308
6309 2010-10-07  Richard Guenther  <rguenther@suse.de>
6310
6311         PR middle-end/45869
6312         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
6313         of pointers.
6314
6315 2010-10-07  Alan Modra  <amodra@gmail.com>
6316
6317         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
6318         rather than sign extension by hand.
6319
6320 2010-10-07  Jan Hubicka  <jh@suse.cz>
6321
6322         PR middle-end/45926
6323         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
6324
6325 2010-10-07  Richard Guenther  <rguenther@suse.de>
6326
6327         PR bootstrap/45914
6328         * configure.ac: Fix typo.
6329         * configure: Regenerated.
6330
6331 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6332
6333         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
6334         define_builtin_std where it's unnecessary.
6335         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
6336
6337 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
6338
6339         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
6340         * doc/tm.texi.in: Regenerate.
6341         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
6342         * targhooks.c (default_class_likely_spilled_p): Don't use the
6343         CLASS_LIKELY_SPILLED_P macro.
6344
6345         * config/arm/arm.md: Update comment.
6346
6347 2010-10-06  Jan Hubicka  <jh@suse.cz>
6348
6349         * ipa.c (cgraph_remove_unreachable_nodes): External references can
6350         always be removed.
6351         (cgraph_externally_visible_p): We can not bring local comdats that
6352         are known to linker; fix handling of internal visibility.
6353         (function_and_variable_visibility): Likewise.
6354
6355 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
6356
6357         PR rtl-optimization/45394
6358         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
6359         (struct rtx_subst_pair): Remove AFTER field.
6360         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
6361         (propagate_for_debug): Remove MOVE parameter and adjust.
6362         (try_combine): In the special case where I2 is a PARALLEL, combine only
6363         destinations of SETs and set I2SRC to the I2 source.
6364         Adjust calls to propagate_for_debug throughout.
6365         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
6366         insns.
6367
6368 2010-10-06  Olivier Hainque  <hainque@adacore.com>
6369
6370         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
6371         switch on insn codes as sequence of ifs.
6372
6373 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6374
6375         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
6376         be UI_NONE for picochip.
6377         (picochip_option_override): Do not disable exception flags.
6378         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
6379         Declare.
6380
6381 2010-10-06  Richard Guenther  <rguenther@suse.de>
6382
6383         * Makefile.in (regmove.o): Depend on $(TARGET_H).
6384
6385 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
6386
6387         Implemented fast enumeration for Objective-C.
6388         * c-parser.c (objc_could_be_foreach_context): New.
6389         (c_lex_one_token): Recognize RID_IN keyword in a potential
6390         Objective-C foreach context.
6391         (c_parser_declaration_or_fndef): Added parameter.  Accept
6392         Objective-C RID_IN keyword as terminating a declaration; in that
6393         case, return the declaration in the new parameter.
6394         (c_parser_extenral_declaration): Updated calls to
6395         c_parser_declaration_or_fndef.
6396         (c_parser_declaration_or_fndef): Same change.
6397         (c_parser_compound_statement_nostart): Same change.
6398         (c_parser_label): Same change.
6399         (c_parser_objc_methodprotolist): Same change.
6400         (c_parser_omp_for_loop): Same change.
6401         (c_parser_for_statement): Detect and parse Objective-C foreach
6402         statements.
6403         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
6404         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
6405         fast enumeration parsing code to turn off the c99 error but still
6406         perform checks on the loop declarations.
6407         * c-tree.h (check_for_loop_decls): Updated declaration.
6408         * doc/objc.texi: Document fast enumeration.
6409
6410 2010-10-06  Nick Clifton  <nickc@redhat.com>
6411
6412         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
6413         (MDR_REGNUM): Define.
6414         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
6415         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
6416         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
6417         (REGISTER_NAMES): Add MDR.
6418         (DWARF2_DEBUGGING_INFO): Define to 1.
6419         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6420         (F): New function.  Sets RTX_FRAME_RELATED_P.
6421         (mn10300_gen_multiple_store): Use F.
6422         (expand_prologue): Use F.  Use gen_movsf() to push floating
6423         point registers.
6424         (expand_epilogue): Use gen_movsf() to pop floating point registers.
6425         (mn10300_option_override): Disable combine stack adjust pass.
6426
6427 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
6428
6429         PR target/45901
6430         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
6431         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
6432
6433 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
6434
6435         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
6436         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
6437         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
6438         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
6439         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
6440         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
6441         BUILT_IN_TOUPPER): Mark as leaf.
6442
6443         PR middle-end/45838
6444         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
6445         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
6446         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
6447         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
6448         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
6449         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
6450         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
6451
6452 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
6453
6454         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
6455         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6456         (m68hc11_class_likely_spilled_p): New function.
6457
6458 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
6459
6460         * c-parser.c (c_parser_objc_method_definition): Updated comment.
6461
6462 2010-10-05  Jan Hubicka  <jh@suse.cz>
6463
6464         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
6465         Document.
6466         * opts.c (decode_options): Handle lto partitions.
6467         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
6468         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
6469
6470 2010-10-05  Jan Hubicka  <jh@suse.cz>
6471
6472         * cgraphunit.c (assemble_function): Output thunks and aliases before
6473         the function itself.
6474
6475 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
6476
6477         * config/picochip/picochip.c (picochip_option_override): Disable
6478         exception flags for picochip.
6479
6480 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
6481
6482         * opts-common.c (handle_option, handle_generated_option,
6483         read_cmdline_option, set_option): Add diagnostic_context
6484         parameter.  Update calls among these functions.
6485         (set_option): Don't use global_dc.
6486         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
6487         (decode_options): Pass global_dc to enable_warning_as_error.
6488         (common_handle_option): Pass global_dc to enable_warning_as_error.
6489         (enable_warning_as_error): Add diagnostic_context parameter.
6490         Document parameters.  Don't use global_dc.  Pass
6491         diagnostic_context parameter to handle_generated_option.
6492         * opts.h (set_option, handle_option, handle_generated_option,
6493         read_cmdline_option, enable_warning_as_error): Add
6494         diagnostic_context parameter.
6495         * Makefile.in (lto-opts.o): Update dependencies.
6496         * coretypes.h (struct diagnostic_context, diagnostic_context):
6497         Declare here.
6498         * diagnostic.h (diagnostic_context): Don't declare typedef here.
6499         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
6500         * langhooks-def.h (struct diagnostic_context): Don't declare here.
6501         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
6502         using diagnostic_context typedef.
6503         * langhooks.c (lhd_initialize_diagnostics): Declare using
6504         diagnostic_context typedef.
6505         * langhooks.h (struct diagnostic_context): Don't declare here.
6506         (initialize_diagnostics, print_error_function): Declare using
6507         diagnostic_context typedef.
6508         * lto-opts.c: Include diagnostic.h.
6509         (lto_reissue_options): Pass global_dc to set_option.  Pass
6510         DK_UNSPECIFIED not 0.
6511         * plugin.c (plugins_internal_error_function): Declare using
6512         diagnostic_context typedef.
6513         * plugin.h (struct diagnostic_context): Don't declare here.
6514         (plugins_internal_error_function): Declare using
6515         diagnostic_context typedef.
6516
6517 2010-10-05  Olivier Hainque  <hainque@adacore.com>
6518             Nicolas Roche  <roche@adacore.com>
6519
6520         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
6521         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
6522
6523 2010-10-05  Ira Rosen  <irar@il.ibm.com>
6524
6525         PR tree-optimization/45752
6526         * tree-vect-slp.c (vect_get_mask_element): Remove static
6527         variables, make them function arguments.
6528         (vect_transform_slp_perm_load): Pass new arguments to
6529         vect_get_mask_element.
6530
6531 2010-10-05  Richard Guenther  <rguenther@suse.de>
6532
6533         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
6534         (gimple_mod_pow2): Likewise.
6535         (gimple_mod_subtract): Likewise.
6536         (gimple_ic): Likewise.
6537         (gimple_stringop_fixed_value): Likewise.
6538         * tree-profile.c (tree_init_edge_profiler): Mark profile
6539         functions nothrow and leaf.
6540         (add_abnormal_goto_call_edges): Remove.
6541         (tree_gen_edge_profiler): Work on SSA form.
6542         (tree_gen_ic_profiler): Likewise.  Simplify.
6543         (do_tree_profiling): Update SSA form.
6544         (pass_tree_profile): Remove.
6545         (do_tree_profiling): Likewise.
6546         (gate_tree_profile_ipa): New function.
6547         (pass_ipa_tree_profile): New.
6548         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
6549         state of instrumented functions.
6550         * passes.c (init_optimization_passes): Remove early non-SSA
6551         inlining.  Move profiling after early optimizations.
6552         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
6553         (pass_ipa_early_inline): Likewise.
6554         * tree-pass.h (pass_ipa_early_inline): Remove.
6555         (pass_tree_profile): Likewise.
6556         (pass_ipa_tree_profile): Declare.
6557
6558 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6559             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
6560
6561         * config/s390/s390.c (z196_cost): New.
6562         (s390_handle_arch_option): Add -march=z196.
6563         (s390_option_override): Use the new cost function and use the z10
6564         defaults also for z196.
6565         (legitimate_reload_constant_p): Adjust comment.
6566         (legitimate_reload_fp_constant_p): New function.
6567         (s390_preferred_reload_class): Distingiush between FP and Int constants.
6568         (preferred_la_operand_p): Avoid la with index on z196.
6569         (s390_adjust_priority): Trigger also for z196.
6570         (s390_issue_rate): Issue rate for z196 is 3.
6571         (s390_z10_fix_long_loop_prediction): Rename to ...
6572         (s390_fix_long_loop_prediction): ... this.
6573         (s390_reorg): Apply the z10 adjustments also for z196.
6574         (s390_loop_unroll_adjust): Do this also for z196.
6575         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
6576         (enum processor_flags): Add PF_Z196.
6577         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
6578         (TARGET_CPU_Z196, TARGET_Z196): New macros.
6579         * config.gcc: Enable z196 for --with-arch.
6580         * config/s390/2817.md: New file.
6581         * config/s390/2084.md: New type for multiply and add.
6582         * config/s390/2097.md: Likewise.
6583         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
6584         (UNSPECV_ATOMIC_OP): New constants.
6585         (fmadddf, fmaddsf): New values for type attribute.
6586         (z196prop): New insn attribute.
6587         (cpu, cpu_facility): Add z196.
6588         (ATOMIC_Z196): New code iterator.
6589         (noxa): New code attribute.
6590         (gk): New mode attribute.
6591         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
6592         Support load zero for fp constants.
6593         (fixuns_truncdddi2, fixuns_trunctddi2)
6594         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
6595         for z196.
6596         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
6597         (popcounthi2, popcountqi2): New expander.
6598         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
6599         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
6600         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
6601         insn definition.
6602         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
6603         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
6604         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
6605         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
6606         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
6607         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
6608         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
6609         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
6610         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
6611         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
6612         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
6613         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
6614         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
6615         Support new z196 instructions.
6616
6617 2010-10-05  Richard Guenther  <rguenther@suse.de>
6618
6619         PR middle-end/45877
6620         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
6621         case where gimplification optimizes away the stmt.
6622
6623 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6624
6625         PR debug/45849
6626         * var-tracking.c (strip_pointer_flags): New function.
6627         (emit_note_insn_var_location): If rtx_equal_p check failed,
6628         retry on locations simplified with simplify_replace_fn_rtx
6629         and strip_pointer_flags as its callback.
6630
6631 2010-10-04  Jan Hubicka  <jh@suse.cz>
6632
6633         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
6634         (can_refer_decl_in_current_unit_p): ... this one; reverse return
6635         value; handle comdats too.
6636         (canonicalize_constructor_val): Use it; handle function_decls
6637         correctly.
6638         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6639         * gimple.c (get_base_address): Accept all kinds of decls.
6640
6641 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6642
6643         * flags.h (g_switch_value, g_switch_set): Remove.
6644         * opts.c (g_switch_value, g_switch_set): Remove.
6645         * config/g.opt (G): Add Var(g_switch_value).
6646         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
6647         (alpha_option_override): Check global_options_set.x_g_switch_value
6648         instead of g_switch_set.
6649         (alpha_in_small_data_p): Remove cast in comparison with
6650         g_switch_value.
6651         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
6652         g_switch_value to unsigned HOST_WIDE_INT.
6653         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
6654         with g_switch_value.
6655         (frv_handle_option): Don't handle -G here.
6656         (frv_option_override): Check global_options_set.x_g_switch_value
6657         instead of g_switch_set.  Don't modify g_switch_set.
6658         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
6659         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
6660         g_switch_value to unsigned HOST_WIDE_INT.
6661         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
6662         (ia64_option_override): Check global_options_set.x_g_switch_value
6663         instead of g_switch_set.
6664         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
6665         Remove.
6666         (lm32_in_small_data_p): Remove cast in comparison with
6667         g_switch_value.
6668         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
6669         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
6670         HOST_WIDE_INT.
6671         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
6672         (m32r_init): Check global_options_set.x_g_switch_value instead of
6673         g_switch_set.
6674         (m32r_in_small_data_p): Remove cast in comparison with
6675         g_switch_value.
6676         (m32r_file_start): Format g_switch_value with %d.
6677         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
6678         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
6679         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
6680         handle -G here.
6681         (microblaze_option_override): Check
6682         global_options_set.x_g_switch_value instead of g_switch_set.
6683         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
6684         (mips_option_override): Check global_options_set.x_g_switch_value
6685         instead of g_switch_set.
6686         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
6687         (rs6000_file_start): Format g_switch_value with %d.
6688         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
6689         comparisons with g_switch_value.
6690         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6691         global_options_set.x_g_switch_value instead of g_switch_set.
6692         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
6693         global_options_set.x_g_switch_value instead of g_switch_set.
6694         * config/score/score.c (score_handle_option): Don't handle -G here.
6695         * config/score/score3.c (score3_option_override): Check
6696         global_options_set.x_g_switch_value instead of g_switch_set.
6697         * config/score/score7.c (score7_option_override): Check
6698         global_options_set.x_g_switch_value instead of g_switch_set.
6699
6700 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
6701
6702         * common.opt (fira-coalesce): Remove.
6703
6704         * doc/invoke.texi (flag_ira_coalesce): Remove.
6705
6706         * ira-color.c (allocno_coalesced_p): Move before
6707         copy_freq_compare_func.
6708         processed_coalesced_allocno_bitmap): Ditto.
6709         (update_conflict_hard_regno_costs): Don't use
6710         ALLOCNO_FIRST_COALESCED_ALLOCNO.
6711         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
6712         (assign_hard_reg): Assume no coalesced allocnos.
6713         (get_coalesced_allocnos_attributes): Remove.
6714         (bucket_allocno_compare_func): Assume no coalesced allocnos.
6715         (push_allocno_to_stack): Ditto.
6716         (remove_allocno_from_bucket_and_push): Use
6717         ira_print_expanded_allocno instead of print_coalesced_allocno.
6718         (push_allocnos_to_stack): Assume uncoalesced allocnos.
6719         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
6720         all_conflicting_hard_regs.
6721         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
6722         (setup_allocno_left_conflicts_size): Ditto.
6723         (put_allocno_into_bucket): Ditto.
6724         (copy_freq_compare_func): Remove.
6725         (copy_freq_compare_func, merge_allocnos): Move before
6726         coalesced_pseudo_reg_freq_compare.
6727         coalesced_allocno_conflict_p): Ditto.
6728         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
6729         parameter.  Assume it true.
6730         (color_allocnos): Assume uncoalesced allocnos.  Use
6731         ira_print_expanded_allocno instead of print_coalesced_allocno.
6732         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
6733         parameter.
6734
6735         * ira.c: Remove comment about coalescing.
6736
6737 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6738
6739         * config/mips/mips.h (target_flags_explicit): Declare for
6740         GENERATOR_FILE.
6741
6742 2010-10-04  Andi Kleen  <ak@linux.intel.com>
6743
6744         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
6745         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
6746
6747 2010-10-04  Matthias Klose  <doko@ubuntu.com>
6748
6749         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
6750         multilib osdirname if it exists.
6751         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
6752
6753 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6754
6755         PR middle-end/45876
6756         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
6757         arg0's type or its unsigned counterpart as utype.  Convert
6758         arg1 to utype unconditionally.
6759
6760 2010-10-04  Julian Brown  <julian@codesourcery.com>
6761
6762         * expr.c (expand_assignment): Add assertion to prevent emitting
6763         null rtx for movmisalign pattern.
6764         (expand_expr_real_1): Likewise.
6765         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
6766         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
6767         (arm_vector_alignment_reachable): New.
6768         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
6769         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
6770         (arm_print_operand): Include alignment qualifier in %A.
6771         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
6772         (movmisalign<mode>): New expander.
6773         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
6774         insn patterns.
6775
6776 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6777
6778         * optc-gen.awk: Define global_options_set.  Don't define
6779         target_flags_explicit.
6780         * opth-gen.awk: Declare global_options_set.  Define
6781         target_flags_explicit as macro.
6782         * opts-common.c (handle_option): Take opts_set and generated_p
6783         parameters.
6784         (handle_generated_option, read_cmdline_option, set_option): Take
6785         opts_set parameter.
6786         (set_option): Use opts_set instead of hardcoding target_flags and
6787         target_flags_explicit.
6788         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
6789         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
6790         flag_value_profile_transformations_set, flag_peel_loops_set,
6791         flag_branch_probabilities_set, flag_inline_functions_set,
6792         flag_ipa_cp_set, flag_ipa_cp_clone_set,
6793         flag_predictive_commoning_set, flag_unswitch_loops_set,
6794         flag_gcse_after_reload_set): Remove.
6795         (common_handle_option, lang_handle_option, target_handle_option):
6796         Take opts_set parameter.  Assert that it is &global_options_set.
6797         (common_handle_option): Don't set _set variables.  Check opts_set
6798         instead of such variables.
6799         (enable_warning_as_error): Pass &global_options_set to
6800         handle_generated_option.
6801         * opts.h (cl_option_handler_func.handler, set_option,
6802         handle_option, handle_generated_option, read_cmdline_option): Add
6803         opts_set parameters.
6804         (handle_option): Add generated_p parameter.
6805         * config/i386/i386.c (ix86_function_specific_save,
6806         ix86_function_specific_restore): Updat for renaming of
6807         target_flags_explicit field.
6808         * config/i386/i386.opt (target_flags_explicit): Rename to
6809         ix86_target_flags_explicit.
6810         * config/ia64/ia64.c (ia64_override_options_after_change): Check
6811         global_options_set.x_flag_selective_scheduling and
6812         global_options_set.x_flag_selective_scheduling2, not
6813         sel_sched_switch_set.
6814         * flags.h (sel_sched_switch_set,
6815         flag_speculative_prefetching_set): Remove.
6816         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
6817         that it is &global_options_set.
6818         (process_command): Pass &global_options_set to read_cmdline_option.
6819         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
6820         set_option.
6821         * toplev.c (target_flags_explicit): Remove.
6822
6823 2010-10-04  Jan Hubicka  <jh@suse.cz>
6824
6825         PR middle-end/45871
6826         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
6827         use get_ref_base_and_offset to handle references.
6828         (fold_const_aggregate_ref): Update.
6829
6830 2010-10-04  Martin Jambor  <mjambor@suse.cz>
6831
6832         PR tree-optimization/45572
6833         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
6834         ipa_check_create_node_params.
6835         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
6836
6837 2010-10-04  Yao Qi  <yao@codesourcery.com>
6838
6839         * doc/passes.texi: Clean up.
6840
6841 2010-10-03  Ian Lance Taylor  <iant@google.com>
6842
6843         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
6844         referring to a field using a typedef name.
6845         (find_anonymous_field_with_type): New static function.
6846         (convert_to_anonymous_field): New static function.
6847         (convert_for_assignment): If -fplan9-extensions, permit converting
6848         pointer to struct to pointer to anonymous field.
6849         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
6850         (is_duplicate_field): New static function.
6851         (detect_field_duplicates_hash): If -fplan9-extensions, check for
6852         typedef names duplicating field names.
6853         (detect_field_duplicates): Likewise.
6854         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
6855         (C Dialect Options): Document -fplan9-extensions.
6856         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
6857
6858 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
6859
6860         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
6861         revision 164914.
6862         (vect_create_data_ref_ptr): Likewise.
6863         * tree-vect-stmts.c (vectorizable_store): Likewise.
6864         (perm_mask_for_reverse): Likewise.
6865         (reverse_vec_elements): Likewise.
6866         (vectorizable_load): Likewise.
6867
6868 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6869
6870         * cppbuiltin.c: New file.
6871         * cppbuiltin.h: New file.
6872         * Makefile.in: Take into account cppbuiltin.{h,c}.
6873
6874 2010-10-03  Andi Kleen  <ak@linux.intel.com>
6875
6876         * lto-cgraph.c (input_cgraph): Check for missing sections.
6877
6878 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
6879
6880         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
6881         to nonimmediate_operand.  Force operand 2 to register when allowed.
6882         (*<shiftrt_insn><mode>3_mask): Ditto.
6883         (*<rotate_insn><mode>3_mask): Ditto.
6884
6885 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
6886
6887         PR tree-optimization/45720
6888         PR tree-optimization/45764
6889         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
6890         Don't accept backwards consecutive accesses.
6891         (vect_create_data_ref_ptr): Disallow negative steps.
6892
6893         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
6894         (perm_mask_for_reverse): Removed.
6895         (reverse_vec_elements): Likewise.
6896         (vectorizable_load): Don't handle negative steps.
6897
6898 2010-10-02  Jan Hubicka  <jh@suse.cz>
6899
6900         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
6901         call destination is known.
6902
6903 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6904
6905         PR target/45820
6906         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
6907         earlier.
6908
6909 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6910
6911         * doc/install.texi (Configuration): Document build_configargs,
6912         host_configargs, target_configargs.
6913
6914 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
6915
6916         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
6917         (*<shiftrt_insn><mode>3_mask): Ditto.
6918         (*<rotate_insn><mode>3_mask): Ditto.
6919
6920 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
6921
6922         PR tree-optimization/44716
6923         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
6924         (HOT_TEXT_SECTION_NAME): Define.
6925
6926 2010-10-01  Nick Clifton  <nickc@redhat.com>
6927
6928         * common.opt: Add -fcombine-stack-adjustments.
6929         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
6930         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
6931         flag_combine_stack_adjustments.
6932         * doc/invoke.texi: Document the new option.
6933
6934 2010-10-01  Richard Guenther  <rguenther@suse.de>
6935
6936         PR tree-optimization/45854
6937         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
6938
6939 2010-10-01  Anthony Green  <green@moxielogic.com>
6940
6941         * config.gcc: Fix moxie-*-rtems* configuration.
6942
6943 2010-10-01  Richard Guenther  <rguenther@suse.de>
6944
6945         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
6946         (gen_decl_die): Likewise.
6947
6948 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6949
6950         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
6951         to the function code for SPU MD builtins.
6952         (spu_expand_builtin): Update.
6953         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
6954
6955 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6956
6957         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
6958         sjlj_except_unwind_info.
6959
6960 2010-10-01  Tristan Gingold  <gingold@adacore.com>
6961
6962         * configure.ac: Define the nop insn for avr*-*-*
6963         * configure: Regenerate.
6964
6965 2010-10-01  Alan Modra  <amodra@gmail.com>
6966
6967         PR target/45807
6968         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
6969         extend toc_restore_insn.
6970
6971 2010-09-30  Richard Guenther  <rguenther@suse.de>
6972
6973         PR tree-optimization/43959
6974         * function.c (gimplify_parameters): Use create_tmp_reg instead of
6975         create_tmp_var.
6976
6977 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
6978
6979         * config/sh/sh.c (sh_expand_prologue): Set
6980         current_function_static_stack_size.
6981
6982 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6983
6984         * configure.ac: Check for Solaris 8 ld with .hidden support.
6985         * configure: Regenerate.
6986
6987 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6988
6989         PR middle-end/45758
6990         * graphite.c (graphite_initialize): Call scev_reset.
6991
6992 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6993
6994         * sese.h (scev_analyzable_p): Return false for real or floating
6995         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
6996
6997 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
6998
6999         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
7000         and ps.
7001         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
7002         domain.
7003         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
7004         Do not allocate ub_expr, it is passed in initialized.
7005
7006 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7007
7008         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
7009         (build_cloog_prog): Dump CLooG input file when
7010         flag_graphite_dump_cloog is set.  This is disabled on trunk.
7011         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
7012
7013 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7014
7015         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
7016         verify_dominators for CDI_POST_DOMINATORS.
7017         * sese.h: Remove comment about CDI_POST_DOMINATORS.
7018         (recompute_all_dominators): Remove call to free_dominance_info
7019         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
7020         for CDI_POST_DOMINATORS.
7021
7022 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7023
7024         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
7025         over pbb_dim_iter_domain.
7026
7027 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7028
7029         * graphite-flattening.c: Fix comments.
7030
7031 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7032
7033         * Makefile.in (OBJS-common): Add graphite-flattening.o.
7034         (graphite-flattening.o): New rule.
7035         * common.opt (floop-flatten): New flag.
7036         * doc/invoke.texi (-floop-flatten): Documented.
7037         * graphite-flattening.c: New.
7038         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
7039         * graphite-poly.h (flatten_all_loops): Declared.
7040         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
7041         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
7042         is set, also set flag_graphite.
7043
7044 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7045
7046         * graphite-poly.c (cloog_checksum): New.
7047         * graphite-poly.h (cloog_checksum): Declared.
7048
7049 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7050
7051         * graphite-poly.c (pbb_number_of_iterations): Removed.
7052         (pbb_number_of_iterations_at_time): Correctly compute the number
7053         of iterations in the transformed loop.
7054         * graphite-poly.h (pbb_number_of_iterations): Removed.
7055
7056 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7057
7058         * graphite-poly.h (lst_update_scattering_seq): Removed.
7059         (lst_update_scattering): Correctly handle outermost loop dewey
7060         renumbering.
7061
7062 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7063
7064         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
7065         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
7066         * graphite-poly.h (lst_niter_for_loop): New.
7067
7068 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7069
7070         * graphite-poly.c (apply_poly_transforms): Do not abort when the
7071         transform read from disk is not legal.  Call fatal_error instead.
7072
7073 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7074
7075         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
7076         (print_scop_header): Removed.  Inlined in the only call place...
7077         (print_scop): ... here.
7078
7079 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7080
7081         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
7082
7083 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7084
7085         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
7086
7087 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7088
7089         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
7090         (dot_deps_stmt): Same.
7091         * graphite-poly.c (dot_lst): Same.
7092
7093 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7094
7095         * graphite-blocking.c (scop_do_strip_mine): Do not call
7096         graphite_legal_transform.
7097         (scop_do_block): Same.
7098
7099 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7100
7101         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
7102         description.
7103
7104 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7105
7106         * tree-scalar-evolution.c (instantiate_array_ref): New.
7107         (instantiate_scev_r): Also handle ARRAY_REFs.
7108
7109 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7110
7111         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7112         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
7113         RESULT_DECL, and FIELD_DECL.  Return false for an
7114         SSA_NAME_IS_DEFAULT_DEF.
7115         (compute_scalar_evolution_in_loop): Do not further analyze the
7116         scalar evolution when no_evolution_in_loop_p returns true.
7117
7118 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7119
7120         * tree-chrec.h (evolution_function_is_affine_p): Do not check
7121         whether CHREC_LEFT is invariant.  A function is affine when
7122         CHREC_RIGHT is invariant.
7123
7124 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7125
7126         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
7127         is_gimple_reg.
7128         (rewrite_degenerate_phi): Same.
7129         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
7130
7131 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7132
7133         * graphite-scop-detection.c (graphite_can_represent_scev,
7134         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
7135         graphite_can_represent_loop): Remove outermost_loop.
7136
7137 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7138
7139         PR middle-end/45229
7140         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
7141         handle GIMPLE_CALLs with no LHS.
7142
7143 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7144
7145         * graphite-poly.c (init_graphite_out_file): New.
7146         (init_graphite_in_file): New.
7147         (apply_poly_transforms): Updated to enable reading and writing of
7148         multiple scop files.
7149
7150 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
7151
7152         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
7153         redundant checks.
7154
7155 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7156
7157         * graphite-clast-to-gimple.c (precision_for_value): Adjust
7158         computation of precision by 1.
7159
7160 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7161
7162         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
7163         (openscop_read_polyhedron_matrix): New.
7164         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
7165         (openscop_read_N_int): Same.
7166         * graphite-poly.c (openscop_read_N_int): New.
7167         (openscop_read_one_int): New.
7168         (openscop_read_N_string): New.
7169         (openscop_read_one_string): New.
7170         (openscop_read_powerset_matrix): New.
7171         (graphite_read_transforms): Remove.
7172         (graphite_read_scatt): New.
7173         (graphite_read_scop_file): New.
7174         (apply_poly_transforms): Updated to call graphite_read_scop_file.
7175
7176 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7177
7178         * graphite-poly.c: Change include order.
7179
7180 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7181
7182         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
7183         (cloog_matrix_nrows): New.
7184
7185 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7186
7187         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
7188         from matrix lines.
7189         * graphite-poly.c (openscop_print_scattering_function_1): Same.
7190         (print_scattering_function_1): Same.
7191         (openscop_print_pbb_domain): Same.
7192         (openscop_print_scop_context): Same.
7193         (print_scop_context): Same.
7194
7195 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
7196
7197         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
7198         (openscop_print_pdr_polyhedron): Print pph.
7199
7200 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7201
7202         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
7203         priority signed types.
7204
7205 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7206
7207         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
7208         the call to lang_hooks.types.type_for_size.  Call
7209         build_nonstandard_integer_type.
7210
7211 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7212
7213         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
7214         (openscop_print_polyhedron_matrix): New.
7215         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
7216         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
7217         (openscop_print_pdr_powerset): New.
7218         (openscop_print_powerset_matrix): New.
7219         (openscop_print_scattering_function_1): New.
7220         (print_scattering_function): Add support for scattering names and
7221         OpenScop format.
7222         (graphite_write_transforms): Remove.
7223         (print_pdr_access_layout): Updated to support OpenScop format.
7224         (print_pdr): Same.
7225         (openscop_print_pbb_domain): New.
7226         (print_pbb_body): Added a parameter to allow indicating that pbb_body
7227         is not provided.
7228         (print_pbb): Updated to call the new print_pbb_body.
7229         (openscop_print_scop_context): New.
7230         (print_scop_header): New.
7231         (print_scop): Updated to call print_scop_header.
7232         * graphite-poly.h: Document OpenScop format.
7233
7234 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
7235
7236         * config/cris/m32c.c (cris_memory_move_cost): New.
7237         (cris_register_move_cost): Make static. Change arguments type from
7238         enum reg_class to reg_class_t.
7239         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7240         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7241         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
7242
7243 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7244
7245         PR target/45843
7246         * config/i386/i386.c (ix86_gimplify_va_arg): Use
7247         INTVAL (XEXP (slot, 1)) as prev_size.
7248
7249 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
7250
7251         PR target/45837
7252         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
7253         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
7254         defined.
7255         * config/rs6000/option-defaults.h (toplevel): Change #if
7256         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
7257         global option changes.
7258
7259 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7260
7261         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
7262
7263         PR tree-optimization/31261
7264         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
7265         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
7266
7267 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7268
7269         PR bootstrap/45796
7270         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
7271         special-casing for generators and turn into ...
7272         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
7273         rule, for better error messages in case of toplevel dependency errors.
7274         (genprog): Add hooks, rename to ...
7275         (genprogerr): ... this, and let genprog also contain check,
7276         checksum, condmd.
7277         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
7278         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
7279         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
7280
7281 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
7282             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7283
7284         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
7285         for GMP, MPFR and MPC.
7286
7287 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7288
7289         * config/sparc/sparc.opt (mimpure-text): Move ...
7290         * config/sol2.opt: ... here.  Correct description.
7291         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
7292         * doc/invoke.texi (Option Summary, SPARC Options): Move
7293         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
7294         (Option Summary, Solaris 2 Options): ... here.
7295         (Submodel Options, Solaris 2 Options): New menu entry.
7296         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
7297         (Solaris 2 Options): ... here.
7298
7299 2010-09-30  Michael Eager  <eager@eagercon.com>
7300
7301         * extend.texi (interrupt_handler): Add MicroBlaze to list.
7302         (save_volatiles): Describe option for MicroBlaze.
7303         * invoke.texi: Add MicroBlaze Options.
7304         * contrib.texi: Add acknowledgment.
7305         * md.texi: Add MicroBlaze d and z constraints.
7306         * install.texi: Add microblaze-*-elf.
7307         * configure.ac: Add microblaze-*-* to target list.
7308         * configure: Regenerate.
7309         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
7310         * config/microblaze/microblaze-protos.h: New.
7311         * config/microblaze/crti.s: New.
7312         * config/microblaze/predicates.md: New.
7313         * config/microblaze/linux.h: New.
7314         * config/microblaze/microblaze.md: New.
7315         * config/microblaze/constraints.md: New.
7316         * config/microblaze/crtn.s: New.
7317         * config/microblaze/microblaze.opt: New.
7318         * config/microblaze/microblaze-c.c: New.
7319         * config/microblaze/t-microblaze: New.
7320         * config/microblaze/microblaze.c: New.
7321         * config/microblaze/microblaze.h: New.
7322
7323 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
7324
7325         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
7326         parse @optional/@required and set the flags as appropriate.
7327
7328 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
7329
7330         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
7331
7332 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
7333
7334         * opt-functions.awk (static_var): Update comment.
7335         (var_ref): Return offsetof expression or -1, not variable address.
7336         * optc-gen.awk: Generate structure field initializers instead of
7337         static variables.  Expect -1 for missing variables instead of null
7338         pointer.  Add gcc_options parameters to generated functions.
7339         * opth-gen.awk: Generate structure fields for static variables.
7340         Add gcc_options parameters to generated functions.
7341         * common.opt (optimize, optimize_size): Add variables.
7342         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
7343         &global_options to cl_target_option_restore.
7344         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
7345         &global_options to cl_optimization_restore, cl_target_option_save
7346         and cl_target_option_restore.
7347         (ix86_set_current_function): Pass &global_options to
7348         cl_target_option_restore.
7349         * config/pdp11/pdp11.h (optimize): Remove.
7350         * config/rs6000/rs6000.h (optimize): Remove.
7351         * config/sh/sh.h (optimize): Remove.
7352         * config/xtensa/xtensa.h (optimize): Remove.
7353         * coretypes.h (struct gcc_options): Declare.
7354         * diagnostic.c (diagnostic_initialize): Initialize
7355         context->option_state.
7356         (diagnostic_report_diagnostic): Pass option_state to
7357         option_enabled hook.
7358         * diagnostic.h (diagnostic_context.option_enabled): Add void *
7359         parameter.
7360         (diagnostic_context.option_state): New field.
7361         * final.c (final_start_function, final, final_scan_insn): Rename
7362         optimize parameter to optimize_p.
7363         * flags.h (optimize, optimize_size): Remove.
7364         * function.c (invoke_set_current_function_hook): Pass
7365         &global_options to cl_optimization_restore.
7366         * gcc.c (driver_handle_option): Take gcc_options parameter.
7367         Assert that it is &global_options.
7368         (process_command): Pass &global_options to read_cmdline_option.
7369         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
7370         option_enabled.
7371         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
7372         &global_options to set_option.
7373         * opts-common.c (handle_option, handle_generated_option,
7374         read_cmdline_option, set_option): Take explicit gcc_options
7375         parameters.  Use option_flag_var.
7376         (option_flag_var): New.
7377         * opts.c (common_handle_option, lang_handle_option,
7378         target_handle_option): Take gcc_options parameter.  Assert that it
7379         is &global_options.
7380         (read_cmdline_options): Pass &global_options to read_cmdline_option.
7381         (print_filtered_help): Use option_flag_var.  Pass &global_options
7382         to option_enabled.
7383         (common_handle_option): Use option_flag_var.
7384         (option_enabled): Take opts parameter.  Use option_flag_var.
7385         (get_option_state): Take gcc_options parameter.  Use
7386         option_flag_var.  Pass gcc_options parameter to option_enabled.
7387         (enable_warning_as_error): Pass &global_options to
7388         handle_generated_option.
7389         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
7390         (cl_option_handler_func.handler): Take gcc_options parameter.
7391         (option_enabled, get_option_state, set_option, handle_option,
7392         handle_generated_option, read_cmdline_option): Take gcc_options
7393         parameters.
7394         * toplev.c (optimize, optimize_size): Remove.
7395         (print_switch_values): Pass &global_options to option_enabled.
7396         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
7397         to get_option_state.
7398         (general_init): Initialize global_dc->option_state.
7399         * tree.c (build_optimization_node): Pass &global_options to
7400         cl_optimization_save.
7401         (build_target_option_node): Pass &global_options to
7402         cl_target_option_save.
7403
7404 2010-09-30  Martin Jambor  <mjambor@suse.cz>
7405
7406         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
7407         zero sized bit-fields.
7408
7409 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7410
7411         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
7412         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
7413         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
7414         (c_parser_objc_class_declaration): Same change.
7415         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
7416         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7417         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
7418         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
7419         and RID_AT_PUBLIC instead of RID_PUBLIC.
7420         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
7421         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7422
7423 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
7424
7425         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
7426         Add links to current providers of packages for Solaris and IRIX.
7427
7428 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7429
7430         Merge from 'apple/trunk' branch on FSF servers.
7431         * c-parser.c: Applied change originally in c-parse.in.
7432
7433         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
7434
7435         Radar 4281748
7436         * c-decl.c (start_decl): Check for redeclaration of class name.
7437         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
7438
7439 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
7440
7441         * config/ia64/ia64.c (ia64_builtin_decl): New.
7442         (TARGET_BUILTIN_DECL): Define.
7443         (ia64_builtins): New.
7444         (ia64_init_builtins): Save decls in ia64_builtins.
7445
7446 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
7447
7448         PR target/40457
7449         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
7450         (move2add_use_add3_insn): Likewise.
7451         (reload_cse_move2add): Likewise.
7452         * rtlanal.c (get_full_rtx_cost): New function.
7453         * rtl.h (struct full_rtx_costs): New.
7454         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
7455         costs_add_n_insns): New inline functions.
7456         (get_full_rtx_cost): Declare.
7457
7458         PR c/45054
7459         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
7460         invariants.  Check for reg_equiv_invariant.
7461         (reload): Assert that spilled_pseudos is empty when returning.
7462
7463 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
7464
7465         * config/i386/mingw32.h (TARGET_64BIT): replaced by
7466         TARGET_64BIT_DEFAULT in #if check.
7467
7468 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
7469
7470         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
7471
7472 2010-09-29  Mike Stump  <mikestump@comcast.net>
7473
7474         * config/darwin.h (flag_mkernel): Remove.
7475         (flag_apple_kext): Likewise.
7476
7477 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7478             Jack Howarth  <howarth@bromo.med.uc.edu>
7479
7480         * config/darwin.opt (undefined): Add.
7481
7482 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
7483
7484         PR testsuite/45664
7485         * configure.ac: Add --enable-indirect-function option.
7486         * config.gcc: Add default_gnu_indirect_function.
7487         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
7488         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
7489         * varasm.c (do_assemble_alias): Adjust for macro name change.
7490         * configure: Rebuilt.
7491         * doc/install.texi: Document --enable-indirect-function.
7492
7493 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7494
7495         * doc/options.texi (Variable, Var, Init): Update documentation
7496         without reference to VarExists.
7497         (VarExists): Remove.
7498         * common.opt, config/i386/i386.opt, config/linux.opt,
7499         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
7500         Don't use VarExists.
7501
7502 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7503
7504         * optc-gen.awk: Generate global_options initializer instead of
7505         individual variables.  Add x_ prefix to names of structure members.
7506         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
7507         names of structure members.
7508         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7509         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
7510         * doc/tm.texi: Regenerate.
7511         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7512         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7513         * c-parser.c (disable_extension_diagnostics,
7514         restore_extension_diagnostics): Update names of cpp_options members.
7515         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7516         * common.opt (fcompare-debug-second): Don't use Var.
7517         * config/alpha/alpha.h (target_flags): Remove.
7518         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7519         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7520         * config/bfin/bfin.h (target_flags): Remove.
7521         * config/cris/cris.h (target_flags): Remove.
7522         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
7523         cl_target_option members.
7524         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
7525         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
7526         ix86_can_inline_p): Update names of cl_target_option members.
7527         * config/i386/i386.h (ix86_isa_flags): Remove.
7528         * config/lm32/lm32.h (target_flags): Remove.
7529         * config/mcore/mcore.h (mcore_stack_increment): Remove.
7530         * config/mcore/mcore.md (addsi3): Remove extern declaration of
7531         flag_omit_frame_pointer.
7532         * config/mep/mep.h (target_flags): Remove.
7533         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7534         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7535         * config/mmix/mmix.h (target_flags): Remove.
7536         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
7537         flag_expensive_optimizations): Remove.
7538         * config/s390/s390.h (flag_pic): Remove.
7539         * config/score/score-conv.h (target_flags): Remove.
7540         * config/sh/sh.h (sh_fixed_range_str): Remove.
7541         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
7542         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7543         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7544         * diagnostic.c (diagnostic_initialize): Update names of
7545         diagnostic_context members.
7546         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
7547         warn_system_headers.
7548         (diagnostic_report_warnings_p): Update for new names.
7549         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7550         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
7551         HARD_FRAME_POINTER_IS_ARG_POINTER.
7552         * flags.h (flag_compare_debug): Declare.
7553         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7554         * opts.c (flag_compare_debug): Define.
7555         (common_handle_option): Update names of diagnostic_context
7556         members.  Handle -fcompare-debug-second.
7557         (fast_math_flags_struct_set_p): Update names of cl_optimization
7558         members.
7559         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7560         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7561         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7562         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7563         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7564         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7565         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
7566         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7567         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7568
7569 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7570
7571         * config/picochip/picochip.c (picochip_output_internal_label):
7572         This function can now be called for debug CFI labels, which can come
7573         in the middle of a vliw instruction.  Postpone until end of vliw.
7574
7575 2010-09-29  Richard Guenther  <rguenther@suse.de>
7576
7577         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
7578         (DECL_FILE_SCOPE_P): Use it.
7579         (TYPE_FILE_SCOPE_P): New macro.
7580
7581 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7582
7583         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
7584         a CPP_NAME which is a reserved word, clearly separate cases for
7585         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
7586
7587 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7588
7589         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
7590         token->value with the canonical spelling.  Do exactly like C and
7591         C++ and leave it as it is.
7592
7593 2010-09-28  Richard Henderson  <rth@redhat.com>
7594
7595         * config/alpha/alpha.c (alpha_builtins): New.
7596         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
7597         (alpha_builtin_function): New.
7598         (alpha_add_builtins, alpha_init_builtins): Use it.
7599
7600 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
7601
7602         * doc/standards.texi (Standards): Expanded the section on
7603         Objective-C and Objective-C++.
7604
7605 2010-09-28  DJ Delorie  <dj@redhat.com>
7606
7607         PR target/45800
7608         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
7609         volatile MEMs.
7610
7611 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7612
7613         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
7614         attributes on methods.
7615          (c_parser_objc_method_definition): Handle attributes.
7616         (c_parser_objc_methodproto): Likewise.
7617         (c_parser_objc_maybe_method_attributes): New.
7618         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
7619         missing definition, similar to that in ObjC++.
7620
7621 2010-09-28  Richard Henderson  <rth@redhat.com>
7622
7623         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
7624         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7625         (CONFIG_SJLJ_EXCEPTIONS): Remove.
7626         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
7627         (STACK_CHECK_PROTECT): Likewise.
7628         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
7629         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
7630         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
7631         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
7632         (dwarf2out_assembly_start): Likewise.
7633         * except.c (init_eh): Use targetm.except_unwind_info.
7634         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
7635         (output_one_function_exception_table): Likewise.
7636         * final.c: Unconditionally include dwarf2out.h.
7637         (final_start_function): Unconditionally call dwarf2out routines.
7638         (final_end_function, final_scan_insn): Likewise.
7639         * function.c (expand_function_end): Use targetm.except_unwind_info.
7640         * opts.c (decode_options): Use targetm.except_unwind_info.
7641         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
7642         * target.def (debug_unwind_info, except_unwind_info): New.
7643         * target.h (enum unwind_info_type): New.
7644         * targhooks.c (default_debug_unwind_info): New.
7645         (default_except_unwind_info): New.
7646         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
7647         * targhooks.h: Declare them.
7648         * tree-tailcall.c: Include "target.h"
7649         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
7650         * Makefile.in (tree-tailcall.o): Update.
7651         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
7652         (lhd_gcc_personality): Likewise.
7653
7654         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
7655         (TARGET_EXCEPT_UNWIND_INFO): New.
7656         (DWARF2_UNWIND_INFO): Update.
7657         (TARGET_DEBUG_UNWIND_INFO): New.
7658         * doc/tm.texi: Rebuild.
7659
7660         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
7661         targetm.except_unwind_info.
7662
7663         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
7664         (arm_except_unwind_info): New.
7665         (arm_compute_func_type): Use it.
7666         (arm_expand_prologue, thumb_pushpop): Likewise.
7667         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
7668         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
7669         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
7670         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
7671         (DWARF2_UNWIND_INFO): Remove.
7672         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7673         (ARM_EABI_UNWIND_TABLES): Remove.
7674
7675         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
7676         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
7677         (ia64_except_unwind_info): New.
7678         (ia64_output_function_prologue): Use it.
7679         (ia64_add_bundle_selector_before): Likewise.
7680         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
7681         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
7682         (TARGET_UNWIND_INFO): Remove.
7683
7684         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
7685
7686 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7687
7688         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
7689         (c_parser_objc_protocol_definition): Likewise.
7690         (c_parser_external_declaration): Provide dummy attribute arguments.
7691         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
7692         (c_parser_objc_class_definition): Handle attributes.
7693         (c_parser_objc_protocol_definition): Likewise.
7694
7695 2010-09-28  Tobias Burnus  <burnus@net-b.de>
7696
7697         PR fortran/40569
7698         PR fortran/40568
7699         * toplev.h (save_decoded_options, save_decoded_options_count):
7700         New global variables.
7701         * toplev.c (save_decoded_options, save_decoded_options_count):
7702         Export variables.
7703
7704 2010-09-28  Ian Lance Taylor  <iant@google.com>
7705
7706         * config/i386/i386.c (ix86_supports_split_stack): Test
7707         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
7708
7709 2010-09-28  Ian Lance Taylor  <iant@google.com>
7710
7711         PR target/45815
7712         * opts.c (decode_options): Don't test whether the target supports
7713         split stack if flag_split_stack == 0.
7714
7715 2010-09-28  Jan Hubicka  <jh@suse.cz>
7716
7717         * builtin-attrs.def (ATTR_LEAF): New attribute.
7718         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
7719         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
7720         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
7721         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
7722         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
7723         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
7724         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
7725         * sync-builtins.def: Annotate all builtins by leaf.
7726         * omp-builtins.def: Annotate all builtins by leaf.
7727         * builtins.def: Annotate relevant builtins with leaf attribute.
7728         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
7729         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
7730         leaf.
7731
7732 2010-09-28  Jan Hubicka  <jh@suse.cz>
7733
7734         * tree-ssa-ccp.c (fold_ctor_reference): New function.
7735         (fold_const_aggregate_ref): Use it.
7736         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
7737         into external static.
7738
7739 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7740
7741         PR target/44452
7742         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
7743         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
7744         (ix86_solaris_return_in_memory): Remove.
7745         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
7746         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7747         (TARGET_SUBTARGET_DEFAULT): Redefine.
7748         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
7749         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7750         (TARGET_SUBTARGET_DEFAULT): Redefine.
7751         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
7752         -mvect8-ret-in-mem.
7753         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
7754
7755 2010-09-29  Alan Modra  <amodra@gmail.com>
7756
7757         PR target/45807
7758         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
7759         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
7760         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
7761         Delete.
7762         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
7763         (rs6000_emit_prologue): Don't just create frame save info for r2,
7764         actually save r2.
7765
7766 2010-09-28  Richard Henderson  <rth@redhat.com>
7767
7768         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
7769         when 8 bytes are requested.
7770
7771 2010-09-28  Tristan Gingold  <gingold@adacore.com>
7772
7773         * config/avr/avr.c (expand_prologue): Set
7774         current_function_static_stack_size.
7775
7776 2010-09-28  Tristan Gingold  <gingold@adacore.com>
7777
7778         * config/alpha/alpha.md: Change the initial condition of the
7779         probing loop.
7780
7781 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
7782
7783         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
7784         Split from *avx_<maxmin:code><mode>3.
7785         (*avx_<smaxmin:code><mode>3): Ditto.
7786         * config/i386/i386.md (maxmin): Remove code iterator.
7787
7788 2010-09-27  Ian Lance Taylor  <iant@google.com>
7789
7790         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
7791         requires assembler support for CFI directives.
7792
7793 2010-09-27  Richard Henderson  <rth@redhat.com>
7794
7795         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
7796
7797 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
7798
7799         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
7800         that AFTER is not in the range FROM..TO, inclusive.
7801
7802 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
7803             Bernd Schmidt  <bernds@codesourcery.com>
7804
7805         PR rtl-optimization/45792
7806         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
7807         If not all insns are to be merged, for each edge, stash the
7808         next candidate after the to-be-merged insns before doing the
7809         merge, and use them for the retry at the new insertion point.
7810         Handle CC0 targets when retrying.
7811
7812 2010-09-27  Ian Lance Taylor  <iant@google.com>
7813
7814         * common.opt (fsplit-stack): New option.
7815         * opts.c (decode_options): Set flag_split_stack to final value.
7816         * target.def (supports_split_stack): New hook.
7817         * gcc.c (STACK_SPLIT_SPEC): Define.
7818         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
7819         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
7820         (Code Gen Options): Document -fsplit-stack.
7821         * doc/extend.texi (Function Attributes): Mention no_split_stack.
7822         (Function Attributes): Document no_split_stack.
7823         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
7824         TARGET_SUPPORTS_SPLIT_STACK.
7825         * doc/tm.texi: Rebuild.
7826         * function.c (thread_prologue_and_epilogue_insns): If
7827         flag_split_stack, add split stack prologue.
7828         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
7829         * varasm.c (saw_no_split_stack): New static variable.
7830         (assemble_start_function): Set saw_no_split_stack if the function
7831         has the no_split_stack attribute.
7832         (file_end_indicate_split_stack): New function.
7833         * output.h (file_end_indicate_split_stack): Declare.
7834         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
7835         and function.
7836         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
7837         routines.
7838         * config/i386/i386.c (ix86_option_override_internal): Don't set
7839         expand_builtin_va_start to NULL if -fsplit-stack.
7840         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
7841         -fsplit-stack.
7842         (ix86_va_start): If -fsplit-stack, get overflow pointer from
7843         scratch register set by prologue.
7844         (ix86_code_end): If -fsplit-stack, call
7845         file_end_indicate_split_stack.
7846         (ix86_supports_split_stack): New static function.
7847         (SPLIT_STACK_AVAILABLE): Define.
7848         (split_stack_prologue_scratch_regno): New static function.
7849         (split_stack_fn): New static variable.
7850         (ix86_expand_split_stack_prologue): New function.
7851         (ix86_live_on_entry): New static function.
7852         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
7853         (output_pic_addr_const): Likewise.
7854         (i386_asm_output_addr_const_extra): Likewise.
7855         (ix86_expand_call): Change return type to rtx.  Return the new
7856         call instruction.
7857         (TARGET_SUPPORTS_SPLIT_STACK): Define.
7858         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
7859         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
7860         (split_stack_prologue, split_stack_return): New insns.
7861         (split_stack_space_check): New insn.
7862         * config/i386/i386.h (struct machine_function): Add
7863         split_stack_varargs_pointer field.
7864         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
7865         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
7866         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
7867         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
7868         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
7869         Declare.
7870         (ix86_expand_call): Update declaration.
7871
7872 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7873
7874         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
7875         code.  Added byref, which was missing in the list of codes.
7876         Explain that enumeration values are encoded as the integer type
7877         that the compiler uses to store them.  Explain and make examples
7878         of how 'const' interacts with pointers, and the complication of
7879         the encoding of 'const char *'.
7880         (Legacy type encoding): New subsection, explaining that GCC emits
7881         incorrect type encodings for the NeXT runtime for compatibility
7882         reasons.
7883         (@@encode): New subsection, explaining @encode and particularly
7884         that protocol qualifiers are not recognized inside an @encode()
7885         expression.
7886         (Method signatures): New subsection, explaining how method
7887         signatures are encoded.
7888
7889 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
7890
7891         Merge from 'apple/trunk' branch on FSF servers.  Removed small
7892         change in build_conditional_expr that had been added when fixing
7893         PR objc/27377 and which did the same check in a less complete way.
7894
7895         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
7896
7897         Radar 4229905
7898         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
7899         looking for objective-c common pointer types.
7900
7901         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
7902
7903         Radar 4154928
7904         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
7905         use their ObjC common type.
7906
7907 2010-09-27  Richard Guenther  <rguenther@suse.de>
7908
7909         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
7910
7911 2010-09-27  Jie Zhang  <jie@codesourcery.com>
7912
7913         * print-tree.c (print_node): Print in-constant-pool.
7914
7915 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
7916
7917         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
7918         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
7919         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
7920         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
7921
7922 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
7923
7924         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
7925         from pro_epilogue_adjust_stack_<mode>_{1,2}.
7926         (pro_epilogue_adjust_stack_<mode>_add): Rename from
7927         pro_epilogue_adjust_stack_<mode>_3.
7928         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
7929         renamed pro_epilogue_adjust_stack_{si,di}_add.
7930         (ix86_expand_prologue): Use indirect functions.  Update for renamed
7931         pro_epilogue_adjust_stack_{si,di}_sub.
7932
7933 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
7934
7935         * config/i386/i386.md (movmsk_df): New insn.
7936         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
7937         sequence for TARGET_SSE_MATH.
7938
7939 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
7940
7941         * config/mips/mips.c (mips_builtin_decls): Declare.
7942         (mips_init_builtins): Store function declarations in
7943         mips_builtin_decls.
7944         (mips_builtin_decl): New function.
7945         (TARGET_BUILTIN_DECL): Define.
7946
7947 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
7948             Richard Henderson  <rth@redhat.com>
7949
7950         * config/i386/cygwin.asm: Include auto-host.h.
7951         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
7952         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
7953         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
7954         alignment code from the 64-bit path.  Use gas local labels.
7955         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
7956         from _di_2.  Remove the useless constant integer argument.
7957         (pro_epilogue_adjust_stack_<mode>_3): New.
7958         (allocate_stack_worker_probe_<mode>): Macroize from
7959         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
7960         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
7961         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
7962         (__chkstk_ms): New function.
7963         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
7964         * config/i386/t-interix: Likewise.
7965         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
7966         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
7967         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
7968         * configure, config.in: Rebuild.
7969
7970 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
7971
7972         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
7973         statements because of the return slot optimization.
7974
7975 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
7976
7977         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
7978         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
7979         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
7980         (class_likely_spilled_p): Rename to...
7981         (avr_class_likely_spilled_p): ...this. Make static. Change argument
7982         type to reg_class_t.
7983
7984 2010-09-24  Jan Hubicka  <jh@suse.cz>
7985
7986         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
7987         (lto_symtab_resolve_symbols): Set it.
7988         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
7989         store resolution field in cgraph/varpool.
7990         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
7991         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
7992         (cgraph_dump_node): Drop used_from_object_file.
7993         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
7994         (cgraph_function_body_availability): Use decl_replaceable_p.
7995         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
7996         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
7997         cgraph_used_from_object_file_p.
7998         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
7999         cgraph_used_from_object_file_p.
8000         (resolution_used_from_other_file_p): New functoin.
8001         (cgraph_used_from_object_file_p): New predicate.
8002         * cgraph.h: Include plugin-api.h
8003         (struct cgraph_local_info): Remove used_from_object_file.
8004         (struct cgraph_node): Add resolution field.
8005         (struct varpool_node): Likewise; remove used_from_object_file;
8006         reove const_value_known.
8007         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
8008         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
8009         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8010         varpool_used_from_object_file_p): Declare.
8011         (varpool_get_node, varpool_extra_name_alias): Update prototype.
8012         * tree.h (DECL_REPLACEABLE_P): Remove.
8013         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
8014         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
8015         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
8016         input_overwrite_node, input_node, input_varpool_node): Stream
8017         resolution.
8018         * expr.c (expand_expr_real_1): Use const_value_known_p
8019         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
8020         const_value_known.
8021         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
8022         (function_and_variable_visibility): Set resolution for local vars
8023         and functions; use varpool_used_from_object_file_p.
8024         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
8025         static functions.
8026         (default_binds_local_p_1): Use resolutoin info.
8027         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
8028         * varpool.c (varpool_get_node): Constify.
8029         (const_value_known_p): Do not use vnode->const_value_known;
8030         use decl_replaceable_p.
8031         (varpool_finalize_decl): Do not set const_value_known.
8032         (cgraph_variable_initializer_availability): Use decl_replaceable_p
8033         (varpool_extra_name_alias): Return new node.
8034         (varpool_used_from_object_file_p): New function.
8035
8036 2010-09-24  Richard Henderson  <rth@redhat.com>
8037
8038         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
8039         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
8040         (do_spill): Use REG_CFA_OFFSET.
8041         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
8042         as appropriate.
8043         (ia64_expand_epilogue): Likewise.
8044         (process_set): Split into ...
8045         (process_cfa_adjust_cfa): this,
8046         (process_cfa_register): this,
8047         (process_cfa_offset): and this new function.
8048         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
8049         instead of REG_FRAME_RELATED_EXPR.
8050
8051 2010-09-24  Olivier Hainque  <hainque@adacore.com>
8052
8053         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
8054
8055 2010-09-24  Jan Hubicka  <jh@suse.cz>
8056
8057         * doc/extend.texi: (attribute leaf): Document.
8058         * tree.c (local_define_builtin): Handle ECF_LEAF.
8059         (build_common_builtin_nodes): Set ECF_LEAF where needed.
8060         * tree.h (ECF_LEAF): New.
8061         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
8062         overwrittable and unavailable functions.
8063         (ipa_init): Put all_module_statics into optimization_summary_obstack.
8064         (copy_global_bitmap): Do not copy all_module_statics.
8065         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
8066         (propagate): Handle overwritable and unavailable leaf functions;
8067         initialize global info for overwritable and unavailable leaf functions;
8068         do not free all module statics.
8069         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
8070         local statics.
8071         * calls.c (flags_from_decl_or_type): Handle leaf.
8072         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
8073         abnormal gotos.
8074
8075 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
8076
8077         * gengtype.c: Reindented.
8078         * gengtype.h: Reindented.
8079         * gengtype-parse.c: Reindented.
8080
8081 2010-09-24  Jan Hubicka  <jh@suse.cz>
8082
8083         PR tree-optimization/45738
8084         PR tree-optimization/45741
8085         * expr.c (string_constant): Allow CONST_DECL too;
8086         check that DECL_INITIAL is set.
8087         * varpool.c (const_value_known_p): Only look into VAR_DECL
8088         and CONST_DECL.
8089
8090 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
8091
8092         * common.opt (undef): New.
8093
8094 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
8095
8096         PR middle-end/45234
8097         * rtl.h (enum global_rtl_index): Add
8098         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
8099         (LAST_VIRTUAL_POINTER_REGISTER): Define.
8100         (virtual_preferred_stack_boundary_rtx,
8101         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
8102         (LAST_VIRTUAL_REGISTER): Increase by one.
8103         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
8104         instead of LAST_VIRTUAL_REGISTER.
8105         * function.c (instantiate_new_reg): Handle
8106         virtual_preferred_stack_boundary_rtx.
8107         * emit-rtl.c (init_virtual_regs): Handle
8108         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8109         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
8110         * explow.c (round_push): If crtl->preferred_stack_boundary
8111         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
8112         virtual_preferred_stack_boundary_rtx alignment instead of
8113         crtl->preferred_stack_boundary alignment.
8114         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
8115         macros.  Never decrease crtl->preferred_stack_boundary,
8116         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
8117         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
8118         stack_pointer_delta in dynamic allocation, even when size
8119         is constant.
8120         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
8121         macro.
8122         * print-rtl.c (print_rtx): Handle
8123         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8124         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
8125         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
8126         * config/frv/frv.c (frv_emit_movsi): Likewise.
8127         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
8128         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
8129         Likewise.
8130
8131         Revert:
8132         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8133
8134         PR middle-end/45234
8135         * calls.c (expand_call): Make sure that all variable sized
8136         adjustments are multiple of preferred stack boundary after
8137         stack alignment.
8138
8139 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
8140             Dominique Dhumieres  <dominiq@lps.ens.fr>
8141
8142         PR bootstrap/45751
8143         * config/darwin-driver.c (darwin_default_min_version):
8144         Adjust size passed to memcpy in two places.
8145
8146 2010-09-24  Richard Guenther  <rguenther@suse.de>
8147
8148         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
8149         Make sure to not call set_type_context with error_mark_node.
8150         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
8151
8152 2010-09-24  Richard Guenther  <rguenther@suse.de>
8153
8154         * Makefile.in (OBJS-onestep): Remove.
8155         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
8156         (libbackend.a): Remove onestep support.
8157         (libbackend.o): Remove.
8158         * configure.ac (--enable-intermodule): Remove.
8159         * configure: Regenerate.
8160
8161 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
8162
8163         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
8164         reaching the end of a block if it occurs at a DEBUG_INSN.
8165
8166 2010-09-09  Tristan Gingold  <gingold@adacore.com>
8167
8168         PR target/44242
8169         * config/vms/vms-crt0-64.c: Removed.
8170         * config/vms/vms-crt0.c: Removed.
8171         * config/vms/vms-psxcrt0-64.c: Removed.
8172         * config/vms/vms-psxcrt0.c: Removed.
8173         * config/vms/vms-ucrt0.c: New file.
8174         * config/vms/t-vms64: Removed.
8175         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
8176         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
8177         * config.gcc (alpha-dec-vms): Use t-vms.
8178
8179 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8180
8181         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
8182         underfull hbox in DVI output.
8183         (-fobjc-class-cxx-cdtors): Same change.
8184         (-fobjc-exceptions): Tidied up documentation.  Explain what the
8185         option does, but moved the (lenghty) description of the exception
8186         syntax into objc.texi.
8187         (-fobjc-gc): Explain that the option is not useful with the GNU
8188         runtime.
8189         (-fzero-link): Explain that the GNU runtime always works in
8190         "zero-link" mode.
8191         * doc/objc.texi: All sections: simplified @node declarations
8192         removing specification of next, previous, up node.
8193         (Objective-C): Updated introduction.
8194         (Garbage Collection): Updated.  The bohem-gc library is now
8195         included in gcc itself.  Mention that this section only applies to
8196         the GNU Objective-C runtime.
8197         (compatibility_alias): Small tidy up.
8198         (Exceptions): New section mostly containing text previously in the
8199         description of the -fobjc-exception command-line option.
8200         (Synchronization): Same.
8201
8202 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
8203
8204         * config/i386/i386.md (ix86_code_end): Move the initialization of
8205         xops array near the consumer.  Use AX_REG and SP_REG instead of
8206         numerical constants.
8207
8208 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8209
8210         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
8211         method [methodname]' for an Objective-C method instead of the less
8212         satisfactory 'too many arguments to function' (with no method name).
8213
8214 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
8215
8216         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
8217         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
8218         (execute_update_addresses_taken): Remove parameter.  Execute the
8219         optimization unconditionally.
8220         * passes.c (execute_function_todo): Call execute_update_addresses_taken
8221         unconditionally if TODO_rebuild_alias is set, else only when optimizing
8222         if TODO_update_address_taken is set.
8223
8224 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
8225
8226         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8227         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
8228         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8229         (arm_output_addr_const_extra): Make static.
8230
8231 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
8232
8233         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
8234         define as unspec_volatile.
8235         ("nops"): Define as unspec_volatile. Use fputs to write to
8236         asm_out_file directly.  Output NOPs on separate lines using while loop.
8237         * config/i386/i386.c (ix86_code_end): Use fputs to write to
8238         asm_out_file directly.  Output NOPs on separate lines using while loop.
8239
8240 2010-09-23  Richard Guenther  <rguenther@suse.de>
8241
8242         PR tree-optimization/45565
8243         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8244         Make sure to adjust the fndecl before replacing the stmt.
8245
8246 2010-09-23  Richard Guenther  <rguenther@suse.de>
8247
8248         PR middle-end/45750
8249         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
8250         gimplifying MEM_REF.
8251
8252 2010-09-23  Alan Modra  <amodra@gmail.com>
8253
8254         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
8255         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
8256
8257 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
8258
8259         PR rtl-optimization/44374
8260         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
8261         * df-core.c (df_set_bb_dirty): Set it.
8262         * ifcvt.c (find_memory): Remove function.
8263         (dead_or_predicable): Use can_move_insns_across.
8264         * df.h (can_move_insns_across): Declare function.
8265         * cfgcleanup.c (block_was_dirty): New static variable.
8266         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
8267         than df_get_bb_dirty.
8268         (try_head_merge_bb): New static function.
8269         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
8270         is set.
8271         * df-problems.c: Include "target.h"
8272         (df_simulate_find_uses): New static function.
8273         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
8274         (find_memory, find_memory_store): New static functions.
8275         (can_move_insns_across): New function.
8276         * Makefile.in (df-problems.o): Update dependencies.
8277
8278 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8279
8280         PR java/44095
8281         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
8282         is specified and the suffix of the file isn't ".c".
8283         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8284
8285 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8286
8287         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
8288         * doc/cppopts.texi: Fix markup of index entry.
8289         * doc/extend.texi (Constructing Calls): Fix markup of
8290         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
8291         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
8292         (Vague Linkage, C++ Attributes): Fix markup of index entries and
8293         keywords.
8294         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
8295         avoid long lines.
8296         (C Dialect Options, C++ Dialect Options, Warning Options)
8297         (Debugging Options, Spec Files, Darwin Options)
8298         (i386 and x86-64 Options, MIPS Options)
8299         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
8300         index entries, avoid abbreviations, allow URLs to wrap, avoid
8301         long lines, avoid overlong pages from long @itemx lists.
8302         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
8303         * doc/standards.texi (Standards): Likewise.
8304         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
8305
8306 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8307
8308         * opts-common.c (prune_options): Make static.  Work with decoded
8309         options.
8310         (decode_cmdline_options_to_array): Call prune_options.  Don't
8311         resize option array here.
8312         * opts.h (prune_options): Remove prototype.
8313         * gcc.c (process_command): Take decoded options; don't call
8314         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
8315         (main): Call decode_cmdline_options_to_array here instead of
8316         prune_options.  Update call to process_command.
8317         * config/darwin-driver.c: Include opts.h.
8318         (darwin_default_min_version): Work with decoded options.  Don't
8319         handle -b or -V here.
8320         * config/darwin.h (darwin_default_min_version): Update prototype.
8321         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
8322         darwin_default_min_version.
8323         * config/i386/cygwin.h (mingw_scan): Update prototype.
8324         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
8325         * config/i386/cygwin1.c: Include opts.h.
8326         (mingw_scan): Work with decoded options.
8327         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
8328         * config/t-darwin (darwin-driver.o): Update dependencies.
8329
8330 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8331
8332         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
8333         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
8334         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
8335         -force-link, -force-link=, -language, -language=,
8336         -library-directory, -library-directory=, -no-canonical-prefixes,
8337         -no-standard-libraries, -no-warnings, -optimize, -output,
8338         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
8339         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
8340         -print-file-name=, -print-libgcc-file-name,
8341         -print-multi-directory, -print-multi-lib,
8342         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
8343         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
8344         -profile, -save-temps, -shared, -specs, -specs=, -static,
8345         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
8346         symbolic): New.
8347         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
8348         * gcc.c (A Short Introduction to Adding a Command-Line Option):
8349         Remove comment.
8350         (cc1_options): Correct specs for passing down --help,
8351         --target-help and --help=*.  Add spec for passing down --version.
8352         (struct option_map, option_map, target_option_translations,
8353         translate_options): Remove.
8354         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
8355         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
8356         OPT_fhelp_ and OPT_ftarget_help.
8357         (process_command): Don't call translate_options.  Call
8358         decode_cmdline_options_to_array before checking for
8359         -no-canonical-prefixes using decoded options.
8360         * opts-common.c (tm.h): Update comment on #include.
8361         (find_opt): Allow abbreviations of long options.
8362         (struct option_map, option_map): New.
8363         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
8364         and -mno handling.
8365         (target_option_translations): New.
8366         (decode_cmdline_options_to_array): Handle
8367         TARGET_OPTION_TRANSLATE_TABLE in driver.
8368         * opts.c (common_handle_option): Don't handle OPT_fhelp,
8369         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
8370
8371 2010-09-22  Richard Guenther  <rguenther@suse.de>
8372
8373         * tree-inline.c (optimize_inline_calls): Schedule cleanups
8374         only if we inlined something.  Block compaction and conditional
8375         folding are done by cfg cleanup.  Schedule update-address-taken.
8376         (tree_function_versioning): Remove redundant call to number_blocks.
8377         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
8378         folding is done by cfg cleanup.
8379         * passes.c (init_optimization_passes): Remove update-address-taken
8380         pass after IPA inlining.
8381
8382 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
8383
8384         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
8385         to update conditions. Fix reg_mode[] check.
8386
8387 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
8388
8389         * config/picochip/picochip.md (movhicc): Use expand to check whether
8390         movhicc is available and split it after reload.
8391
8392 2010-09-22  Richard Guenther  <rguenther@suse.de>
8393
8394         * tree-ssanames.c (release_dead_ssa_names): Do not remove
8395         callee edges here.
8396         * passes.c (init_optimization_passes): Remove early CFG cleanup.
8397         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
8398         (pass_cleanup_cfg): Likewise.
8399         (execute_fixup_cfg): Cleanup.
8400         * tree-pass.h (pass_cleanup_cfg): Remove.
8401
8402 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8403
8404         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
8405         builtins if it is true.
8406         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
8407         parameter.
8408
8409 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8410
8411         * tree-sra.c (struct access): New field grp_no_warning.
8412         (create_access_replacement): Set TREE_NO_WARNING according to
8413          grp_no_warning.
8414         (create_artificial_child_access): Use build_ref_for_model and set
8415         grp_no_warning if build_user_friendly_ref_for_offset fails.
8416         (propagate_subaccesses_across_link): Likewise.
8417
8418 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8419
8420         PR target/35664
8421         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
8422         ('f'): Likewise.
8423
8424 2010-09-22  Tristan Gingold  <gingold@adacore.com>
8425
8426         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
8427
8428 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
8429
8430         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
8431         * config/i386/i386.c (decide_alg): Update for rename.
8432
8433 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
8434
8435         PR rtl-optimization/45739
8436         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
8437         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
8438
8439 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
8440
8441         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
8442         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
8443         Remove.
8444         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
8445         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8446
8447 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8448
8449         PR objc/23710
8450         * c-parser.c (c_parser_objc_method_definition): Check the return
8451         value of objc_start_method_definition and if false is returned,
8452         parse the method definition but emit no code.
8453
8454 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8455
8456         PR objc/25965
8457         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
8458         call objc_get_interface_ivars ().
8459
8460 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
8461
8462         PR target/45694
8463         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
8464         static chain-register is used for 64-bit.
8465
8466 2010-09-21  Richard Guenther  <rguenther@suse.de>
8467
8468         * dwarf2out.c (is_cu_die): New function.
8469         (add_pubtype): Use it.
8470         (gen_subprogram_die): Likewise.
8471         (gen_struct_or_union_type_die): Likewise.
8472         (dwarf2out_finish): Likewise.
8473         (comp_unit_die): Rename to ...
8474         (single_comp_unit_die): ... this.
8475         (comp_unit_die): New function lazily constructing and
8476         returning single_comp_unit_die.
8477         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
8478         base_type_die, subrange_type_die, modified_type_die,
8479         lower_bound_default, add_bound_info, add_prototyped_attribute,
8480         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
8481         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
8482         force_decl_die, gen_namespace_die, dwarf2out_decl,
8483         dwarf2out_start_source_file, dwarf2out_end_source_file,
8484         prune_unused_types, dwarf2out_finish): Use it.
8485         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
8486         the global list of translation-unit decls.
8487         (dwarf2out_init): Do not create single_comp_unit_die here.
8488         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
8489
8490 2010-09-21  Richard Guenther  <rguenther@suse.de>
8491
8492         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
8493         for bool for C++.
8494
8495 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
8496
8497         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
8498         (qhs_extenddi_cstr): Likewise.
8499         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
8500         them for the source operand.
8501
8502 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
8503
8504         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
8505         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
8506         (ix86_split_ashr): Ditto.
8507         (ix86_split_lshr): Ditto.
8508
8509 2010-09-21  Richard Guenther  <rguenther@suse.de>
8510
8511         PR tree-optimization/45580
8512         * tree-ssa-propagate.c (substitute_and_fold): Always replace
8513         regular uses.
8514         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
8515         virtuals fold the call into a regular indirect one.
8516
8517 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8518
8519         PR rtl-optimization/42775
8520         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
8521         scheduling is enabled.
8522
8523 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8524
8525         PR rtl-optimization/45728
8526         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
8527         gen_lowpart_common first and if that fails, force_reg first
8528         before calling gen_lowpart.
8529
8530         PR middle-end/45678
8531         * cfgexpand.c (expand_one_stack_var_at): Use
8532         crtl->max_used_stack_slot_alignment as max_align, instead
8533         of maximum of that and PREFERRED_STACK_BOUNDARY.
8534         Don't call update_stack_alignment.
8535
8536 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8537
8538         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
8539         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
8540         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
8541         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
8542         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
8543         (build_nonstandard_integer_type): Likewise.
8544         (build_range_type_1): New function, built from...
8545         (build_range_type): ...this.  Call build_range_type_1.
8546         (build_nonshared_range_type): New function.
8547         (build_array_type_1): New function, built from...
8548         (build_array_type: ...this.  Call build_array_type_1.
8549         (build_nonshared_array_type): New function.
8550         * tree.h (build_nonshared_range_type): Declare.
8551         (build_nonshared_array_type): Likewise.
8552
8553 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
8554
8555         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
8556         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8557         (arm_class_likely_spilled_p): New function.
8558
8559 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
8560
8561         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
8562         indirect functions.
8563         (ix86_split_ashl): Ditto.
8564         (ix86_split_ashr): Ditto.
8565         (ix86_split_lshr): Ditto.
8566         (ix86_adjust_counter): Ditto.
8567
8568 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8569
8570         * c-family/c-common.h (constant_string_class): Documented with
8571         comment identical to the one already in c-common.c.
8572
8573 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8574
8575         * dwarf2out.c (any_cfis_emitted): New static variable.
8576         (add_fde_cfi): Set it.
8577         (dwarf2out_frame_debug): Clear it before processing,
8578         if it is set afterwards, flush any queued reg saves.
8579
8580         PR debug/45124
8581         * dwarf2out.c (add_accessibility_attribute): Assume
8582         DW_ACCESS_private as the default for dwarf_version > 2
8583         and DW_TAG_class_type parent.
8584         (gen_inheritance_die): Assume DW_ACCESS_public as the default
8585         for dwarf_version > 2 and parent other than DW_TAG_class_type.
8586
8587 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8588
8589         PR target/45726
8590         * arm.md (arm_movt): Only enable on machines with MOVT.
8591
8592 2010-09-20  Jie Zhang  <jie@codesourcery.com>
8593
8594         * config/arm/arm.c (arm_address_offset_is_imm): New.
8595         (arm_early_store_addr_dep): New.
8596         (arm_early_load_addr_dep): New.
8597         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
8598         (arm_early_load_addr_dep): Declare.
8599         (arm_address_offset_is_imm): Declare.
8600         * config/arm/cortex-m4.md: New file.
8601         * config/arm/cortex-m4-fpu.md: New file.
8602         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
8603         (attr generic_sched): Exclude cortexm4.
8604         (attr generic_vfp): Exclude cortexm4.
8605
8606 2010-09-20  Richard Guenther  <rguenther@suse.de>
8607
8608         PR middle-end/45704
8609         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
8610
8611 2010-09-20  Jan Hubicka  <jh@suse.cz>
8612
8613         PR tree-optimize/45605
8614         * cgraph.h (const_value_known_p): Declare.
8615         (varpool_decide_const_value_known): Remove.
8616         * tree-ssa-ccp.c (get_base_constructor): Use it.
8617         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
8618         * expr.c (string_constant): Likewise.
8619         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
8620         * ipa.c (ipa_discover_readonly_nonaddressable_var,
8621         function_and_variable_visibility): Likewise.
8622         * gimplify.c (gimplify_call_expr): Likewise.
8623         * gimple-fold.c (get_symbol_constant_value): Likewise.
8624         * varpool.c (varpool_decide_const_value_known): Replace by...
8625         (const_value_known_p): ... this one; handle other kinds of DECLs
8626         too and work for automatic vars.
8627         (varpool_finalize_decl): Use const_value_known_p.
8628
8629 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8630
8631         PR target/45726
8632         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
8633
8634 2010-09-20  Richard Guenther  <rguenther@suse.de>
8635
8636         PR tree-optimization/45705
8637         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
8638
8639 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8640
8641         PR rtl-optimization/45695
8642         * combine.c (try_combine): When splitting a two set pattern,
8643         make sure the pattern which will be put into i2 doesn't use REGs
8644         or MEMs set by insns in between i2 and i3.
8645
8646 2010-09-19  Jan Hubicka  <jh@suse.cz>
8647
8648         PR lto/44246
8649         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
8650         processing same node twice.
8651
8652 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
8653
8654         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
8655         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8656         (bfin_class_likely_spilled_p): New function
8657
8658 2010-09-19  Ira Rosen  <irar@il.ibm.com>
8659
8660         PR tree-optimization/45714
8661         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
8662         created in vectorizable_call instead of the original statement in
8663         def stmt updates.
8664
8665 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
8666
8667         * config/i386/i386-protos.h (split_double_mode): New prototype.
8668         (split_di, split_ti): Remove prototypes.
8669         * config/i386/i386.c (split_double_mode): New function.
8670         (split_di, split_ti): Remove.
8671         (ix86_expand_branch): Use split_double_mode.
8672         (ix86_split_to_parts): Ditto.
8673         (ix86_split_ashl): Ditto.
8674         (ix86_split_ashr): Ditto.
8675         (ix86_split_lshr): Ditto.
8676         (ix86_force_to_memory): Ditto.
8677         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
8678
8679 2010-09-18  Jan Hubicka  <jh@suse.cz>
8680
8681         PR tree-optimization/45453
8682         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
8683         virtual functions are reachable.
8684         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
8685         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
8686         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
8687         when modifying function.
8688
8689 2010-09-18  Jan Hubicka  <jh@suse.cz>
8690
8691         PR tree-optimization/45605
8692         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
8693         * gimple-fold.c (static_object_in_other_unit_p): New function.
8694         (canonicalize_constructor_val): Use it.
8695         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
8696         returning NULL.
8697         (gimple_fold_obj_type_ref_known_binfo): Use
8698         static_object_in_other_unit_p.
8699
8700 2010-09-18  Richard Guenther  <rguenther@suse.de>
8701
8702         PR tree-optimization/45709
8703         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
8704         insertions until after all PHI nodes of the block are processed.
8705
8706 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
8707
8708         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
8709
8710 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
8711
8712         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
8713
8714 2010-09-18  Richard Guenther  <rguenther@suse.de>
8715
8716         PR tree-optimization/45709
8717         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
8718
8719 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8720
8721         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
8722         (dot_deps_stmt): Same.
8723         * graphite-poly.c (dot_lst): Same.
8724         * graphite-scop-detection.c (dot_all_scops): Same.
8725         (dot_scop): Same.
8726
8727 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8728
8729         Revert:
8730         2009-12-16  Ben Elliston  <bje@au.ibm.com>
8731
8732         * tree-data-ref.c (dot_rdg_1): Added back.
8733         (dot_rdg): Same.  Added "#if 0" around system call.
8734
8735 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8736             Richard Henderson  <rth@redhat.com>
8737
8738         * config/i386/i386.c (initial_ix86_tune_features): Add
8739         X86_TUNE_PAD_SHORT_FUNCTION.
8740         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
8741         (ix86_count_insn): New.
8742         (ix86_pad_short_function): Likewise.
8743         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
8744
8745         * config/i386/i386.h (ix86_tune_indices): Add
8746         X86_TUNE_PAD_SHORT_FUNCTION.
8747         (TARGET_PAD_SHORT_FUNCTION): New.
8748
8749         * config/i386/i386.md (UNSPEC_NOPS): New.
8750         (nops): Likewise.
8751
8752 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8753
8754         PR middle-end/45234
8755         * calls.c (expand_call): Make sure that all variable sized
8756         adjustments are multiple of preferred stack boundary after
8757         stack alignment.
8758
8759 2010-09-17  DJ Delorie  <dj@redhat.com>
8760
8761         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
8762         passed an invalid value, print an error instead of ICEing.
8763         (valid_psw_flag): New.
8764         (rx_expand_builtin): Call it for setpsw/clrpsw.
8765         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
8766
8767         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
8768         (bitclr_in_memory): Likewise.
8769         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
8770
8771 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8772
8773         PR middle-end/45678
8774         * cfgexpand.c (update_stack_alignment): New.
8775         (get_decl_align_unit): Use it.
8776         (expand_one_stack_var_at): Call update_stack_alignment.
8777
8778 2010-09-17  Richard Guenther  <rguenther@suse.de>
8779
8780         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
8781         Properly copy the read string.
8782
8783 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
8784
8785         * doc/options.texi (Variable): Document.
8786         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
8787         generate target_flags declarations explicitly.  Don't define
8788         VarExists variables for the driver.
8789         * common.opt (target_flags): New Variable record.
8790         (flag_dump_unnumbered, flag_dump_unnumbered_links,
8791         flag_var_tracking, flag_var_tracking_assignments,
8792         flag_var_tracking_assignments_toggle): Don't mark variables with
8793         VarExists.
8794         * config/i386/i386.c (ix86_isa_flags): Don't define here.
8795         * config/i386/i386.opt (ix86_isa_flags): Define here.
8796         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
8797         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
8798         VarExists.
8799         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
8800         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
8801         Only define for generator programs.
8802         * rtlanal.c (target_flags): Remove.
8803         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
8804         flag_var_tracking_assignments_toggle): Remove.
8805
8806 2010-09-17  Michael Matz  <matz@suse.de>
8807
8808         PR tree-optimization/43432
8809         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
8810         Accept backwards consecutive accesses.
8811         (vect_create_data_ref_ptr): If step is negative generate
8812         decreasing IVs.
8813         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
8814         (perm_mask_for_reverse, reverse_vec_elements): New functions.
8815         (vectorizable_load): Handle loads with negative steps when easily
8816         possible.
8817
8818 2010-09-03  Jan Hubicka  <jh@suse.cz>
8819
8820         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
8821
8822 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
8823
8824         * config/v850/v850.c (v850_function_value_regno_p): Make static.
8825         Adjust comments. Declare.
8826         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
8827         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
8828
8829 2010-09-17  Richard Guenther  <rguenther@suse.de>
8830
8831         * common.opt (combine): Remove.
8832         * gcc.c (default_compilers): Remove specs testing combine.
8833         The C compilers no longer can combine.
8834         (option_map): Remove -combine.
8835         (display_help): Remove -combine.
8836         (driver_handle_option): Remove OPT_combine handling.
8837         (compile_input_file_p): Remove.
8838         (do_spec): Remove code concerning combine.
8839         (main): Likewise.
8840         * doc/invoke.texi: Remove traces of -combine.
8841         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
8842
8843 2010-09-17  Richard Guenther  <rguenther@suse.de>
8844
8845         PR middle-end/45678
8846         * builtins.c (fold_builtin_memory_op): Always properly adjust
8847         alignment of memory accesses.
8848
8849 2010-09-16  Jan Hubicka  <jh@suse.cz>
8850
8851         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
8852         processing clone.
8853
8854 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
8855
8856         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
8857
8858         * config/i386/i386.c (predict_jump): Add prototype.
8859         (flag_opts): Add -m8bit-idiv.
8860         (ix86_split_idivmod): New.
8861
8862         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
8863         Add 2 splitters for SI/DI mode divide.
8864         (divmod<mode>4_1): New pattern.
8865         (udivmod<mode>4_1): Likewise.
8866         (testdi_ccno_1): Likewise.
8867
8868         * config/i386/i386.opt (m8bit-idiv): New.
8869
8870         * doc/invoke.texi: Document -m8bit-idiv.
8871
8872 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
8873
8874         PR bootstrap/45680
8875         * config/i386/i386.c (min_insn_size): Moved out of the
8876         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
8877
8878 2010-09-16  Jan Hubicka  <jh@suse.cz>
8879
8880         * lto-cgraph.c (lto_output_node): Fix handling of clones.
8881         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
8882         unreachable clones with reachable clones.
8883         * tree-inline.c (copy_bb): Fix sanity checking when producing
8884         unreachable clone.
8885
8886 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
8887
8888         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
8889         (TARGET_MEMORY_MOVE_COST): Define.
8890         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
8891
8892 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
8893
8894         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
8895         maybe_tidy_empty_bb.
8896
8897         Revert:
8898         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
8899         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
8900
8901 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
8902
8903         * target.def (target_option.optimization): New hook.
8904         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
8905         TARGET_OPTION_OPTIMIZATION hook.
8906         * doc/tm.texi: Regenerate.
8907         * hooks.c (hook_void_int_int): New.
8908         * hooks.h (hook_void_int_int): Declare.
8909         * opts.c: Don't include tm_p.h.
8910         (decode_options): Use targetm.target_option.optimization instead
8911         of OPTIMIZATION_OPTIONS.
8912         * system.h (OPTIMIZATION_OPTIONS): Poison.
8913         * config/arm/arm-protos.h (arm_optimization_options): Remove.
8914         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
8915         (arm_optimization_options): Rename to arm_option_optimization.
8916         Make static.
8917         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
8918         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
8919         (cris_option_optimization): New.
8920         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
8921         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
8922         (crx_option_optimization): New.
8923         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
8924         * config/frv/frv-protos.h (frv_optimization_options): Remove.
8925         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
8926         (frv_optimization_options): Rename to frv_option_optimization.
8927         Make static.
8928         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
8929         * config/h8300/h8300.c (h8300_option_optimization): New.
8930         (TARGET_OPTION_OPTIMIZATION): Define.
8931         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
8932         * config/i386/i386-protos.h (optimization_options): Remove.
8933         * config/i386/i386.c (optimization_options): Rename to
8934         ix86_option_optimization.  Make static.
8935         (TARGET_OPTION_OPTIMIZATION): Define.
8936         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
8937         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
8938         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
8939         (ia64_optimization_options): Rename to ia64_option_optimization.
8940         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
8941         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
8942         commented-out definition.
8943         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8944         instead of OPTIMIZATION_OPTIONS.
8945         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
8946         (m32r_option_optimization): New.
8947         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
8948         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
8949         Remove.
8950         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
8951         (mcore_option_optimization): New.
8952         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
8953         * config/mep/mep-protos.h (mep_optimization_options): Remove.
8954         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
8955         (mep_optimization_options): Rename to mep_option_optimization.
8956         Make static.  Take unused level and size parameters.
8957         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
8958         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
8959         (mmix_option_optimization): New.
8960         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
8961         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
8962         (pdp11_option_optimization): New.
8963         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
8964         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
8965         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
8966         (optimization_options): Rename to rs6000_option_optimization.
8967         Make static.
8968         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
8969         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
8970         * config/rx/rx.c (rx_set_optimization_options): Rename to
8971         rx_option_optimization.  Make static.  Take unused level and size
8972         parameters.
8973         (TARGET_OPTION_OPTIMIZATION): Define.
8974         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
8975         * config/s390/s390-protos.h (optimization_options): Remove.
8976         * config/s390/s390.c (optimization_options): Rename to
8977         s390_option_optimization.  Make static.  Don't mark size parameter
8978         unused.
8979         (TARGET_OPTION_OPTIMIZATION): Define.
8980         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
8981         * config/sh/sh-protos.h (sh_optimization_options): Remove.
8982         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
8983         (sh_optimization_options): Rename to sh_option_optimization.  Make
8984         static.  Don't mark parameters unused.
8985         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
8986         * config/spu/spu-protos.h (spu_optimization_options): Remove.
8987         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
8988         (spu_optimization_options): Rename to spu_option_optimization.
8989         Make static.
8990         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
8991         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
8992         (v850_option_optimization): New.
8993         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
8994         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
8995         (xtensa_option_optimization): New.
8996         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
8997
8998 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
8999
9000         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
9001         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
9002         * doc/tm.texi: Regenerate.
9003         * system.h (OVERRIDE_OPTIONS): Poison.
9004         * target.def (override): Default to hook_void_void.
9005         * targhooks.c (default_target_option_override): Remove.
9006         * genmodes.c, machmode.def: Update comments mentioning
9007         OVERRIDE_OPTIONS.
9008         * config/alpha/alpha-modes.def: Update comment mentioning
9009         alpha_override_options.
9010         * config/alpha/alpha-protos.h (override_options): Remove.
9011         * config/alpha/alpha.c (override_options): Rename to
9012         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
9013         (TARGET_OPTION_OVERRIDE): Define.
9014         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
9015         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
9016         of OVERRIDE_OPTIONS.
9017         * config/arc/arc-protos.h (arc_init): Remove.
9018         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
9019         (arc_init): Rename to arc_option_override.  Make static.
9020         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
9021         (OVERRIDE_OPTIONS): Remove.
9022         * config/arm/arm-protos.h (arm_override_options): Remove.
9023         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
9024         (arm_override_options): Rename to arm_option_override.  Make
9025         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9026         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
9027         * config/arm/arm.md: Update comment referring to arm_override_options.
9028         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9029         instead of OVERRIDE_OPTIONS.
9030         * config/avr/avr-protos.h (avr_override_options): Remove.
9031         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
9032         (avr_override_options): Rename to avr_option_override.  Make static.
9033         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
9034         * config/bfin/bfin-protos.h (override_options): Remove (twice).
9035         * config/bfin/bfin.c (override_options): Rename to
9036         bfin_option_override.  Make static.
9037         (TARGET_OPTION_OVERRIDE): Define.
9038         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
9039         * config/cris/cris-protos.h (cris_override_options): Remove.
9040         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
9041         (cris_override_options): Rename to cris_option_override.  Make static.
9042         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
9043         * config/frv/frv-protos.h (frv_override_options): Remove.
9044         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
9045         (frv_override_options): Rename to frv_option_override.  Make static.
9046         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
9047         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
9048         * config/h8300/h8300.c (h8300_init_once): Rename to
9049         h8300_option_override.  Make static.
9050         (TARGET_OPTION_OVERRIDE): Define.
9051         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
9052         * config/i386/i386-protos.h (override_options): Remove.
9053         * config/i386/i386.c (override_options): Rename to
9054         ix86_option_override_internal.  Make static.  Comments referring
9055         to this function and callers changed.
9056         (ix86_option_override): New.
9057         (TARGET_OPTION_OVERRIDE): Define.
9058         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
9059         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
9060         * config/ia64/ia64.c (ia64_file_start): Update comment referring
9061         to ia64_override_options.
9062         * config/iq2000/iq2000-protos.h (override_options): Remove.
9063         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
9064         (override_options): Rename to iq2000_option_override.  Make static.
9065         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
9066         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
9067         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
9068         (lm32_override_options): Rename to lm32_option_override.  Make static.
9069         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
9070         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
9071         (m32r_option_override): New.
9072         (m32r_init): Update comment.
9073         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
9074         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
9075         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
9076         (m68hc11_override_options): Rename to m68hc11_option_override.
9077         Make static.  Return void.
9078         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
9079         * config/m68k/m68k-protos.h (override_options): Remove.
9080         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
9081         (override_options): Rename to m68k_option_override.  Make static.
9082         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
9083         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
9084         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
9085         (mcore_override_options): Rename to mcore_option_override.  Make
9086         static.
9087         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
9088         * config/mep/mep-protos.h (mep_override_options): Remove.
9089         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
9090         (mep_override_options): Rename to mep_option_override.  Make static.
9091         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
9092         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
9093         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
9094         (mmix_override_options): Rename to mmix_option_override.  Make static.
9095         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
9096         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
9097         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
9098         (mn10300_override_options): Rename to mn10300_option_override.
9099         Make static.
9100         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
9101         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
9102         * config/moxie/moxie.c (moxie_override_options): Rename to
9103         moxie_option_override.  Make static.
9104         (TARGET_OPTION_OVERRIDE): Define.
9105         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
9106         * config/picochip/picochip-protos.h (picochip_override_options):
9107         Remove.  Update comment referring to picochip_override_options.
9108         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
9109         (picochip_override_options): Rename to picochip_option_override.
9110         Make static.  Update comment and definition of
9111         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
9112         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
9113         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9114         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9115         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9116         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9117         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9118         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
9119         instead of OVERRIDE_OPTIONS.
9120         * config/rs6000/rs6000-modes.def: Update comment referring to
9121         rs6000_override_options.
9122         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
9123         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
9124         (rs6000_override_options): Rename to
9125         rs6000_option_override_internal.  Make static.  Commented
9126         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
9127         (rs6000_option_override): New.
9128         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
9129         instead of OVERRIDE_OPTIONS.
9130         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9131         * config/s390/s390-protos.h (override_options): Remove.
9132         * config/s390/s390.c (override_options): Rename to
9133         s390_option_override.  Make static.
9134         (TARGET_OPTION_OVERRIDE): Define.
9135         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
9136         * config/score/score-protos.h (score_override_options): Remove.
9137         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
9138         (score_override_options): Rename to score_option_override.  Make
9139         static.
9140         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
9141         Update comment referring to override_options.
9142         * config/score/score3.c (score3_override_options): Rename to
9143         score3_option_override.
9144         * config/score/score3.h (score3_override_options): Rename to
9145         score3_option_override.
9146         * config/score/score7.c (score7_override_options): Rename to
9147         score7_option_override.
9148         * config/score/score7.h (score7_override_options): Rename to
9149         score7_option_override.
9150         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
9151         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
9152         (sparc_override_options): Rename to sparc_option_override.  Make
9153         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9154         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
9155         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9156         instead of OVERRIDE_OPTIONS.
9157         * config/spu/spu-protos.h (spu_override_options): Remove.
9158         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
9159         (spu_override_options): Rename to spu_option_override.  Make
9160         static.
9161         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
9162         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
9163         OVERRIDE_OPTIONS.
9164         * config/vax/vax-protos.h (override_options): Remove.
9165         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
9166         (override_options): Rename to vax_option_override.  Make static.
9167         Call SUBTARGET_OVERRIDE_OPTIONS.
9168         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
9169         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
9170         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
9171         * config/xtensa/xtensa-protos.h (override_options): Remove.
9172         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
9173         (override_options): Rename to xtensa_option_override.  Make static.
9174         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
9175
9176 2010-09-16  Richard Guenther  <rguenther@suse.de>
9177
9178         PR tree-optimization/45623
9179         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
9180         (get_constraint_for_component_ref): If computing a constraint
9181         for the rhs handle type punning through unions.
9182         (get_constraint_for_address_of): Adjust.
9183         (get_constraint_for_1): Likewise.
9184         (get_constraint_for): Likewise.
9185         (get_constraint_for_rhs): New function.
9186         (do_structure_copy): Adjust.
9187         (make_constraint_to): Likewise.
9188         (handle_const_call): Likewise.
9189         (find_func_aliases): Likewise.
9190         (process_ipa_clobber): Likewise.
9191         (create_variable_info_for): Likewise.
9192
9193 2010-09-16  Ira Rosen  <irar@il.ibm.com>
9194
9195         * tree-vectorizer.c: Fix documentation.
9196         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
9197         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
9198         is_pattern_stmt_p, is_loop_header_bb_p,
9199         stmt_vinfo_set_inside_of_loop_cost,
9200         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
9201         known_alignment_for_access_p): Likewise.
9202         * tree-vect-loop.c: Fix documentation.
9203         (vect_get_cost): Start function name from new line.
9204         * tree-vect-data-refs.c: Fix documentation.
9205         * tree-vect_stmts.c: Likewise.
9206         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
9207         (vectorizable_store): Free vec_oprnds if allocated.
9208         (vectorizable_condition): Initialize several variables to avoid
9209         warnings.
9210         * tree-vect-slp.c: Fix documentation.
9211
9212 2010-09-16  Richard Guenther  <rguenther@suse.de>
9213
9214         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
9215         is TS_TRANSLATION_UNIT_DECL.
9216         (initialize_tree_contains_struct): Adjust.
9217         (all_translation_units): New global vector.
9218         (build_translation_unit_decl): New function.
9219         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
9220         (struct tree_translation_unit_decl): New.
9221         (all_translation_units): Declare.
9222         (union tree_node): Add translation_unit_decl member.
9223         (build_translation_unit_decl): Declare.
9224         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
9225         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
9226         New function.
9227         (pack_value_fields): Call it.
9228         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
9229         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
9230         (lto_output_tree_pointers): Call it.
9231         * lto-streamer-in.c (lto_input_tree_ref): Handle references
9232         to TRANSLATION_UNIT_DECL.
9233         (unpack_ts_translation_unit_decl_value_fields): New function.
9234         (unpack_value_fields): Call it.
9235         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
9236         (lto_input_tree_pointers): Call it.
9237         * lto-streamer.c (check_handled_ts_structures): Adjust.
9238         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
9239         * c-decl.c (all_translation_units): Remove.
9240         (pop_scope): Use build_translation_unit_decl.
9241         (collect_all_refs): Adjust.
9242         (for_each_global_decl): Likewise.
9243         (c_write_global_declarations): Likewise.
9244
9245 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
9246
9247         PR bootstrap/45686
9248         * fold-const.c (fold_checksum_tree): Change slot from const void **
9249         to void **, use CONST_CAST_TREE to store into *slot.
9250
9251 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9252
9253         * config/i386/i386.md: Remove unneeded empty conditions and
9254         preparation statements from expanders.
9255         * config/i386/mmx.md: Ditto.
9256         * config/i386/sse.md: Ditto.
9257
9258 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9259
9260         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
9261
9262 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9263
9264         PR rtl-optimization/45593
9265         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
9266         insns that were in delay slots as stand-alone insns.
9267
9268 2010-09-15  Ian Lance Taylor  <iant@google.com>
9269
9270         * incpath.c (remove_duplicates): If name is not a directory, issue
9271         a warning rather than an error.
9272
9273 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9274
9275         PR middle-end/45644
9276         * tree-sra.c (create_access): Check for bit-fields directly.
9277
9278 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
9279
9280         PR tree-optimization/45633
9281         * tree-cfg.c (verify_gimple_assign_binary): Allow
9282         MINUS_EXPR with lhs and rhs1 pointer vector and
9283         rhs2 sizetype vector.
9284         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
9285         or vector pointer use TER to optimize pointer subtraction.
9286
9287 2010-09-15  Jie Zhang  <jie@codesourcery.com>
9288
9289         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
9290         fcmpd to fcmps.
9291
9292 2010-09-15  Ian Lance Taylor  <iant@google.com>
9293
9294         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
9295
9296 2010-09-15  Ian Lance Taylor  <iant@google.com>
9297
9298         * function.c (get_arg_pointer_save_area): Set
9299         arg_pointer_save_area_init to true.
9300
9301 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9302
9303         * tree-sra.c (generate_subtree_copies): Updated comment.
9304         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
9305         obtained from the statement iterator instead.
9306         (load_assign_lhs_subreplacements): Removed parameters lhs and
9307         right_offset, which is obtained from top_racc instead.  Parameter lacc
9308         is now expected to be the root of the processed tree rather than root's
9309         first child.  Updated all callers.
9310
9311 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
9312
9313         * config/pdp11/pdp11.c (register_move_cost): Rename to
9314         pdp11_register_move_cost.
9315         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
9316         pdp11_register_move_cost.
9317         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
9318         pdp11_register_move_cost instead of register_move_cost.
9319
9320 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
9321
9322         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
9323         pattern for vmovn. Expansion in case of non
9324         -mvectorize-with-neon-quad.
9325         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
9326         non- -mvectorize-with-neon-quad case.
9327         (move_lo_quad_<mode>): New expansion to vmov into low part.
9328         (move_hi_quad_<mode>): New expansion to vmov into high part.
9329         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
9330         (move_lo_quad_v4sf): Likewise.
9331         (move_lo_quad_v8hi): Likewise.
9332         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
9333         low part.
9334         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
9335         high part.
9336         * config/arm/iterators.md (ANY128): New mode iterator.
9337         (V_narrow_pack): New mode attribute.
9338         (V_HALF): Add attribute.
9339         (V_DOUBLE): Add attribute.
9340         (V_mode_nunits): Add attribute.
9341
9342 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9343
9344         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
9345         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
9346
9347 2010-09-15  Olivier Hainque  <hainque@adacore.com>
9348             Jose Ruiz  <ruiz@adacore.com>
9349
9350         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
9351         * config/alpha/osf5-unwind.h: New file.
9352
9353 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9354
9355         PR bootstrap/45672
9356         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
9357         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9358         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9359
9360 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9361
9362         * c-lang.h (struct lang_type): Add variable_size GTY option.
9363
9364 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9365
9366         PR bootstrap/45672
9367         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9368
9369 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9370
9371         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
9372         result isn't used in memory address.
9373
9374 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9375
9376         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
9377         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
9378         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
9379         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
9380         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
9381         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
9382
9383         * target.def: Add units_per_simd_word to vectorize.
9384
9385         * targhooks.c (default_units_per_simd_word): New.
9386         * targhooks.h (default_units_per_simd_word): Likewise.
9387         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
9388         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9389         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
9390         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9391         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9392         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9393         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9394         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9395
9396         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
9397         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
9398
9399         * tree-vect-stmts.c: Don't include "tm_p.h".
9400         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
9401         with targetm.vectorize.units_per_simd_word.
9402
9403         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
9404
9405         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
9406
9407         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
9408         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9409
9410         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
9411         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
9412
9413         * doc/tm.texi: Regenerated.
9414
9415 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9416
9417         * tree-vect-stmts.c: Include "tm_p.h".
9418
9419         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
9420         out of RTX_CODE.
9421
9422 2010-09-14  Martin Jambor  <mjambor@suse.cz>
9423
9424         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
9425         location of generated statement.  Changed all callers.
9426         (build_ref_for_model): New parameter loc which used to set location of
9427         all generated expressions.  Changed all callers.
9428         (generate_subtree_copies): Likewise.
9429         (init_subtree_with_zero): Likewise.
9430         (sra_modify_expr): Set locations of all generated statements and
9431         expressions to the location the original statement.
9432         (handle_unscalarized_data_in_subtree): Likewise.
9433         (load_assign_lhs_subreplacements): Likewise.
9434         (sra_modify_constructor_assign): Likewise.
9435         (sra_modify_assign): Likewise.
9436
9437 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
9438
9439         PR target/45277
9440         PR target/45363
9441         PR target/45407
9442         * doc/install.texi (sparc*-*-*): New section.
9443         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
9444
9445 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9446
9447         PR middle-end/45567
9448         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
9449         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
9450         (expand_builtin): Adjust caller.
9451         (expand_builtin_unop): Only use subtarget if it has the right mode.
9452
9453 2010-09-14  Tristan Gingold  <gingold@adacore.com>
9454
9455         * configure.ac (plugins): Fix typos.
9456         * configure: Regenerate.
9457
9458 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9459
9460         PR debug/45660
9461         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
9462         gen_type_die for function/method return type.
9463
9464 2010-09-14  Ira Rosen  <irar@il.ibm.com>
9465
9466         PR tree-optimization/45470
9467         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9468         can throw an exception.
9469         * tree-vect-stmts.c (vectorizable_call): Likewise.
9470
9471 2010-09-14  DJ Delorie  <dj@redhat.com>
9472
9473         PR target/44749
9474         * config/mep/mep-protos.h (mep_save_register_info,
9475         mep_reinit_regs, mep_init_regs): Declare.
9476
9477         * config/mep/mep.c: Move all target definitions to the end of the
9478         file to avoid the need for duplicate declarations.
9479         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
9480         (mep_reorg_erepeat): Remove unused variables.
9481         (mep_expand_builtin): Likewise.
9482
9483         * config/mep/mep-pragma.c: Don't include rtl.h.
9484         (INVALID_REGNUM): New.
9485         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
9486         functions.
9487         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
9488         Avoid enum/integer math.
9489
9490 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
9491
9492         PR target/44749
9493         * config/mep/t-mep (GTM_H): Add insn-constants.h.
9494         * config/mep/mep.c (mep_conditional_register_usage): Take no
9495         parameters.
9496         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
9497         prototype.
9498         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
9499         call to mep_conditional_register_usage.
9500
9501 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
9502
9503         PR debug/43937
9504         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
9505         the DECL as well.
9506
9507 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
9508
9509         PR rtl-optimization/45617
9510         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
9511         even if low N bits of X aren't known to be zero.
9512
9513 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
9514
9515         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
9516
9517         * config/i386/i386.c (initial_ix86_tune_features): Add
9518         X86_TUNE_VECTORIZE_DOUBLE.
9519         (ix86_units_per_simd_word): New.
9520
9521         * config/i386/i386.h (ix86_tune_indices): Add
9522         X86_TUNE_VECTORIZE_DOUBLE.
9523         (TARGET_VECTORIZE_DOUBLE): New.
9524         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
9525
9526 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
9527
9528         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
9529         (new_temp_expr_table): Allocate call_cnt vector.
9530         (free_temp_expr_table): Free it.
9531         (process_replaceable): Add call_cnt parm and set in vector.
9532         (find_replaceable_in_bb): Skip replacement if def/use span a call.
9533         (debug_ter): Dump call_cnt value, remove stderr uses.
9534
9535 2010-09-13  Jan Hubicka  <jh@suse.cz>
9536
9537         * tree.c (build_zero_cst): New.
9538         * tree.h (build_zero_cst): Declare.
9539         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
9540         (get_base_constructor): Break out from ...
9541         (fold_const_aggregate_ref): Here; handle empty constructors.
9542
9543 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9544
9545         * config/arm/arm.md: (define_attr "conds"): Update comment.
9546         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
9547         conds attribute to clob.
9548         (arm_sync_compare_and_swapsi): Likewise.
9549         (arm_sync_compare_and_swap<mode>): Likewise.
9550         (arm_sync_lock_test_and_setsi): Likewise.
9551         (arm_sync_lock_test_and_set<mode>): Likewise.
9552         (arm_sync_new_<sync_optab>si): Likewise.
9553         (arm_sync_new_nandsi): Likewise.
9554         (arm_sync_new_<sync_optab><mode>): Likewise.
9555         (arm_sync_new_nand<mode>): Likewise.
9556         (arm_sync_old_<sync_optab>si): Likewise.
9557         (arm_sync_old_nandsi): Likewise.
9558         (arm_sync_old_<sync_optab><mode>): Likewise.
9559         (arm_sync_old_nand<mode>): Likewise.
9560
9561 2010-09-13  Olivier Hainque  <hainque@adacore.com>
9562
9563         * fwprop.c (forward_propagate_and_simplify): Only attach a
9564         REG_EQUAL note to an insn if the destination is a register.
9565         * gcse.c (try_replace_reg): Likewise.
9566
9567 2010-09-13  Richard Guenther  <rguenther@suse.de>
9568
9569         PR tree-optimization/45611
9570         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
9571         (copy_ref_info): Likewise.
9572
9573 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
9574
9575         PR debug/45604
9576         PR debug/45419
9577         PR debug/45408
9578         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9579         types of MEM_REF pointer types to the same type.
9580
9581 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
9582
9583         PR rtl-optimization/41087
9584         * ifcvt.c (noce_get_condition): Don't allow conditions with
9585         side-effects.
9586
9587 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
9588
9589         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9590         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
9591         * config/frv/frv.c (frv_register_move_cost): Make static. Change
9592         arguments type to reg_class_t. Add mode argument.
9593         (frv_memory_move_cost): New.
9594         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
9595
9596 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
9597
9598         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
9599         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
9600
9601 2010-09-10  Jan Hubicka  <jh@suse.cz>
9602
9603         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
9604
9605 2010-09-10  Richard Guenther  <rguenther@suse.de>
9606
9607         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
9608         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
9609         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
9610         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
9611         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
9612
9613 2010-09-10  Richard Guenther  <rguenther@suse.de>
9614
9615         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
9616         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
9617         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
9618         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
9619
9620 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
9621
9622         PR middle-end/45634
9623         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
9624         of string folding is of integral type.
9625
9626 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
9627
9628         * doc/invoke.texi (-x): Fix typo.
9629
9630 2010-09-10  Richard Guenther  <rguenther@suse.de>
9631
9632         PR debug/44115
9633         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
9634         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9635         Output DECL_DEBUG_EXPR.
9636         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9637         Input DECL_DEBUG_EXPR.
9638
9639 2010-09-10  Richard Guenther  <rguenther@suse.de>
9640
9641         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
9642         (build_index_type): Implement in terms of build_range_type.
9643         (build_range_type): Do not allow NULL_TREE type, improve
9644         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
9645         if we didn't hash.
9646         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
9647         create a distinct copy of the type.
9648
9649 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
9650
9651         * configure: Regenerated.
9652         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
9653
9654 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9655
9656         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
9657         * config/arm/cortex-a9-neon.md: New and partially generated.
9658         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
9659
9660 2010-09-10  Richard Guenther  <rguenther@suse.de>
9661
9662         * tree.h (build_index_2_type): Remove.
9663         * tree.c (build_index_2_type): Remove.
9664
9665 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
9666
9667         PR bootstrap/45630
9668         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
9669         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
9670         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
9671
9672 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9673
9674         PR tree-optimization/44972
9675         * tree-sra.c: Include toplev.h.
9676         (build_ref_for_offset): Entirely reimplemented.
9677         (build_ref_for_model): New function.
9678         (build_user_friendly_ref_for_offset): New function.
9679         (analyze_access_subtree): Removed build_ref_for_offset check.
9680         (propagate_subaccesses_across_link): Likewise.
9681         (create_artificial_child_access): Use
9682         build_user_friendly_ref_for_offset.
9683         (propagate_subaccesses_across_link): Likewise.
9684         (ref_expr_for_all_replacements_p): Removed.
9685         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
9686         (sra_modify_expr): Use build_ref_for_model.
9687         (load_assign_lhs_subreplacements): Likewise.
9688         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
9689         checks for return values of build_ref_for_offset.
9690         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
9691         build_ref_for_offset.
9692         * ipa-prop.h: Include gimple.h
9693         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
9694         (ipa_analyze_indirect_call_uses): Update comment.
9695         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
9696         (IPA_PROP_H): Likewise.
9697
9698 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9699
9700         PR tree-optimization/44972
9701         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
9702         calling build_ref_for_offset.
9703
9704 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9705
9706         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
9707         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
9708         * config/arm/arm-tune.md: Regenerate.
9709         * doc/invoke.texi (ARM Options): Document it.
9710
9711 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
9712
9713         * config/i386/i386.c: Include sched-int.h.
9714         (TARGET_SCHED_DISPATCH): Defined.
9715         (TARGET_SCHED_DISPATCH_DO): Defined.
9716         (DISPATCH_WINDOW_SIZE): Defined.
9717         (MAX_DISPATCH_WINDOWS): Defined.
9718         (MAX_INSN): Defined.
9719         (MAX_IMM): Defined.
9720         (MAX_IMM_SIZE): Defined.
9721         (MAX_IMM_32): Defined.
9722         (MAX_IMM_64): Defined.
9723         (MAX_LOAD): Defined.
9724         (MAX_STORE): Defined.
9725         (BIG): Defined.
9726         (dispatch_group): New.
9727         (num_allowable_groups): New.
9728         (group_name): New.
9729         (sched_insn_info_s): New.
9730         (dispatch_windows_s): New.
9731         (imm_info_s): New.
9732         (dispatch_window_list): New.
9733         (dispatch_window_list1): New.
9734         (get_mem_group): New.
9735         (is_cmp): New.
9736         (dispatch_violation): New.
9737         (is_branch): New.
9738         (is_prefetch): New.
9739         (init_window): New.
9740         (allocate_window): New.
9741         (init_dispatch_sched): New.
9742         (is_end_basic_block): New.
9743         (process_end_window): New.
9744         (allocate_next_window): New.
9745         (find_constant_1): New.
9746         (find_constant): New.
9747         (get_num_immediates): New.
9748         (has_immediate): New.
9749         (get_insn_path): New.
9750         (get_insn_group): New.
9751         (count_num_restricted): New.
9752         (fits_dispatch_window): New.
9753         (add_insn_window): New.
9754         (add_to_dispatch_window): New.
9755         (debug_dispatch_window_file): New.
9756         (debug_dispatch_window): New.
9757         (debug_insn_dispatch_info_file): New.
9758         (debug_ready_dispatch): New.
9759         (do_dispatch): New.
9760         (has_dispatch): New.
9761         * config/i386/i386.h (debug_ready_dispatch): Declared.
9762         (debug_dispatch_window): Declared.
9763         * config/i386/i386.opt (mdispatch-scheduler): New flag.
9764         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
9765         (TARGET_SCHED_DISPATCH_DO): New.
9766         * doc/tm.texi: Regererated.
9767         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
9768         ready_remove_first_dispatch
9769         (schedule_block): Call targetm.sched.dispatch and
9770         targetm.sched.dispatch_do.
9771         (sched_init): Call targetm.sched.dispatch and
9772         targetm.sched.dispatch_do.
9773         (ready_remove_first_dispatch): New.
9774         (number_in_ready): New.
9775         (get_ready_element): New.
9776         * hooks.c (hook_bool_rtx_int_false): New.
9777         (hook_void_rtx_int): New.
9778         * hooks.h (hook_bool_rtx_int_false): Declared.
9779         (hook_void_rtx_int): Declared.
9780         * sched-int.h (IS_DISPATCH_ON): Defined.
9781         (IS_CMP): Defined.
9782         (DISPATCH_VIOLATION): Defined.
9783         (FITS_DISPATCH_WINDOW): Defined.
9784         (DISPATCH_INIT): Defined.
9785         (ADD_TO_DISPATCH_WINDOW): Defined.
9786         (get_ready_element): Declared.
9787         (number_in_ready): Declared.
9788         * target.def (dispatch): Defined.
9789         (dispatch_do): Defined.
9790
9791 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9792
9793         PR middle-end/45312
9794         * reload1.c (merge_assigned_reloads): Remove.
9795         (reload_as_needed): Don't call it.
9796
9797 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
9798
9799         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
9800         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9801         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9802
9803 2010-09-09  Matthias Klose  <doko@ubuntu.com>
9804
9805         PR bootstrap/43847
9806         * configure.ac (--enable-plugin): Enhance for cross builds.
9807         * configure: Regenerate.
9808
9809 2010-09-09  Jan Hubicka  <jh@suse.cz>
9810
9811         PR tree-optimization/45598
9812         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
9813         string folding is of integral type.
9814
9815 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
9816
9817         * configure.ac (gnu_indirect_function): New test.
9818         * configure: Rebuilt.
9819         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
9820         * defaults.h (IFUNC_ASM_TYPE): Provide default.
9821
9822         * doc/extend.texi (Function Attributes): Document ifunc.
9823         * varasm.c (do_assemble_alias): Deal with ifuncs too.
9824
9825 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9826
9827         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
9828         epilogue instruction move.
9829
9830 2010-09-09  Jan Hubicka  <jh@suse.cz>
9831
9832         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
9833         command line to allow more partitions than input files.
9834
9835 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9836
9837         PR middle-end/44554
9838         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
9839
9840 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
9841
9842         PR middle-end/40386
9843         * ira.c (pseudo_for_reload_consideration_p): Don't use
9844         flag_ira_share_spill_slots.
9845
9846 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9847
9848         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
9849         point zero operands that fit into a single GPR.
9850         (s390_preferred_reload_class): Ensure we only return general-purpose
9851         register classes.
9852         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
9853         floating-point zero operands into GPRs.
9854         ("*mov<mode>_64"): Likewise.
9855         ("mov<mode>"): Likewise using lhi.
9856
9857 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9858
9859         * config/s390/s390.c (s390_symref_operand_p): Return false for
9860         literal pool references.
9861         (s390_check_qrst_address): Update caller.
9862
9863 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
9864
9865         * config/i386/predicates.md (ext_register_operand): Check that
9866         SUBREG_REG is really a register before looking for REGNO.
9867         (reg_not_xmm0_operand): Handle SUBREGs correctly.
9868         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
9869
9870 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
9871
9872         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
9873         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
9874         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
9875         * print-rtl.c (print_rtx): Likewise.
9876         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
9877         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
9878         for ADDR_EXPR with non-addressable object.
9879         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
9880         (struct dw_val_struct): Add v.val_decl_ref.
9881         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
9882         Handle DW_OP_GNU_implicit_pointer.
9883         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
9884         (get_ref_die_offset_label): New function.
9885         (implicit_ptr_descriptor): New function.
9886         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
9887         (loc_descriptor): Likewise.
9888         (gen_variable_die): Put even definitions into decl_die_table.
9889         (resolve_addr_in_expr): Resolve still unresolved
9890         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
9891         return false.
9892         (dwarf2out_finish): Call output_location_lists after outputting
9893         .debug_info and .debug_abbrev instead of before.
9894
9895 2010-09-09  Roland McGrath  <roland@redhat.com>
9896
9897         * dwarf2out.c (DWARF_REF_SIZE): Define.
9898         (size_of_loc_descr): Use it for DW_OP_call_ref.
9899
9900 2010-09-09  Alan Modra  <amodra@gmail.com>
9901
9902         * doc/invoke.text: Reinstate mcmodel=medium.
9903         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9904         CMODEL_MEDIUM as default.
9905         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
9906         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
9907         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
9908         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
9909
9910 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9911
9912         PR target/45250
9913         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
9914         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
9915         (builtin_longjmp): Likewise.
9916         (allocate_stack): Use hard_frame_pointer_rtx instead of
9917         frame_pointer_rtx.
9918         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
9919         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
9920         (pa_can_eliminate): Likewise.
9921         (TARGET_INTERNAL_ARG_POINTER): Define.
9922         (TARGET_CAN_ELIMINATE): Define.
9923         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
9924         pointer.
9925         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
9926         (pa_internal_arg_pointer, pa_can_eliminate,
9927         pa_initial_elimination_offset): New.
9928         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
9929         (HARD_FRAME_POINTER_REGNUM): Set to register three.
9930         (INITIAL_FRAME_POINTER_OFFSET): Delete.
9931         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
9932         Define.
9933         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
9934         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
9935         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
9936         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
9937         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
9938         new soft frame pointer.
9939         * config/pa/pa64-regs.h: Likewise.
9940
9941 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
9942
9943         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
9944         numerical constant.
9945         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
9946
9947 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
9948
9949         PR debug/45531
9950         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
9951
9952 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
9953
9954         PR debug/45419
9955         PR debug/45408
9956         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9957         qualifiers in otherwise equal MEM_REF pointer types.
9958         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
9959         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
9960
9961 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9962
9963         PR target/44392
9964         * config/arm/arm.md (bswapsi2): Handle condition correctly
9965         for armv6 and optimize_size.
9966
9967 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9968
9969         PR other/18555
9970         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
9971
9972 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
9973
9974         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
9975         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
9976         ix86_expand_strlen, legitimate_pic_address_disp_p,
9977         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
9978         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
9979         ix86_check_movabs, ix86_secondary_memory_needed): Change function
9980         prototype to bool.
9981         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
9982         return_in_memory_ms_64, ix86_check_movabs,
9983         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
9984         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
9985         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
9986         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
9987         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
9988         ix86_secondary_memory_needed): Change to bool.  Return
9989         "true" and "false" values.
9990         * config/i386/i386.md: Return "true" and "false" values.
9991
9992 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9993
9994         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9995         run_expensive_tests.
9996
9997 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9998
9999         * toplev.c (output_stack_usage): Use lbasename instead of basename.
10000
10001 2010-09-08  Martin Jambor  <mjambor@suse.cz>
10002
10003         PR other/45443
10004         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
10005         at -O3.
10006
10007 2010-09-08  Richard Guenther  <rguenther@suse.de>
10008
10009         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
10010         (visit): Adjust.
10011         (iterative_hash_gimple_type): Likewise.
10012         (gimple_type_hash): Likewise.
10013         (gimple_register_type): Likewise.
10014         (print_gimple_types_stats): Likewise.
10015         (free_gimple_type_tables): Likewise.
10016
10017 2010-09-08  Michael Matz  <matz@suse.de>
10018
10019         PR tree-optimization/43430
10020         * tree-vect-stmts.c (vectorizable_condition): Support multiple
10021         copies for conditional statements if it's not part of a reduction.
10022
10023 2010-09-08  Michael Matz  <matz@suse.de>
10024
10025         PR tree-optimization/33244
10026         * tree-ssa-sink.c (statement_sink_location): Don't sink into
10027         empty loop latches.
10028
10029 2010-09-08  Richard Guenther  <rguenther@suse.de>
10030
10031         PR tree-optimization/45578
10032         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
10033         Be more careful when transfering alignment information to
10034         the new induction variable.
10035         (copy_ref_info): Likewise.
10036
10037 2010-09-08  Richard Guenther  <rguenther@suse.de>
10038
10039         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
10040         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
10041
10042 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
10043
10044         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
10045         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
10046
10047 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
10048
10049         PR doc/45587
10050         * doc/md.texi: Fixed modes on several standard pattern names.
10051
10052 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
10053
10054         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
10055         (ashl<mode>3): ...this.
10056         (loongson_psra<V_suffix>): Rename to...
10057         (ashr<mode>3): ...this.
10058         (loongson_psrl<V_suffix>): Rename to...
10059         (lshr<mode>3): ...this.
10060         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
10061         (CODE_FOR_loongson_psllw): Define.
10062         (CODE_FOR_loongson_psrlh): Define.
10063         (CODE_FOR_loongson_psrlw): Define.
10064         (CODE_FOR_loongson_psrah): Define.
10065         (CODE_FOR_loongson_psraw): Define.
10066
10067 2010-09-07  Richard Henderson  <rth@redhat.com>
10068
10069         * tree-vect-data-refs.c: Include tm_p.h.
10070         * Makefile.in (tree-vect-data-refs.o): Update deps.
10071         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
10072         Move delarations outside #ifdef RTX_CODE.
10073
10074 2010-09-07  Richard Henderson  <rth@redhat.com>
10075
10076         * final.c (rest_of_handle_final): Unconditionally do
10077         output_function_exception_table before assemble_end_function.
10078
10079 2010-09-07  Jan Hubicka  <jh@suse.cz>
10080
10081         * tree-inline.c (tree_inlinable_function_p): Do not test
10082         DECL_REPLACEABLE_P.
10083         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
10084         update_callee_keys, cgraph_decide_inlining): Test function availability.
10085         * cif-code.def (OVERWRITABLE): New code.
10086
10087 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
10088             Jack Howarth  <howarth@bromo.med.uc.edu>
10089
10090         PR target/36502
10091         PR target/42313
10092         PR target/44651
10093         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
10094         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
10095         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
10096         MAX macro.
10097
10098 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10099
10100         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
10101         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
10102
10103 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10104
10105         * config.gcc: Don't append t-android for Android targets.
10106
10107         * config/t-android: Removed.
10108
10109 2010-09-07  Richard Henderson  <rth@redhat.com>
10110
10111         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
10112         * doc/tm.texi.in: Add doc marker.
10113         * doc/tm.texi: Rebuild.
10114         * except.c (switch_to_exception_section): Always build.
10115         (output_one_function_exception_table): Move section switch,
10116         personality output, and label output ...
10117         (output_function_exception_table): ... here.  Use the new
10118         personality hook.
10119
10120         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
10121         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
10122         TARGET_ASM_INIT_SECTIONS): New.
10123         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
10124         make static.
10125         (TARGET_ASM_UNWIND_EMIT): Update to match.
10126         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
10127
10128         * config/arm/arm.c (arm_asm_emit_except_personality): New.
10129         (arm_asm_init_sections): New.
10130         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
10131
10132 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10133
10134         * config/arm/arm.md: Remove unused variable.
10135
10136 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
10137
10138         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10139         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
10140         (m32r_memory_move_cost): New function.
10141
10142 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10143
10144         * config.gcc: Append t-android for Android targets.
10145
10146         * config/t-android: New.
10147
10148 2010-09-07  Richard Henderson  <rth@redhat.com>
10149
10150         * target.def (unwind_emit_before_insn): New hook.
10151         * doc/tm.texi.in: Add @hook marker for it.
10152         * doc/tm.texi: Rebuild.
10153         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
10154
10155 2010-09-07  Martin Jambor  <mjambor@suse.cz>
10156
10157         PR fortran/43665
10158         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
10159         are any type attributes.
10160
10161 2010-09-07  Jan Hubicka  <jh@suse.cz>
10162
10163         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
10164         array_ref_low_bound in string access folding.
10165
10166 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
10167
10168         PR target/45206
10169         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
10170         eh_return fixup sequence.
10171
10172 2010-09-07  Jan Hubicka  <jh@suse.cz>
10173
10174         * gimple-fold.c (maybe_fold_reference): Verify that operand is
10175         gimple_min_invariant.
10176
10177 2010-09-07  Richard Guenther  <rguenther@suse.de>
10178
10179         PR middle-end/45569
10180         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
10181         nor CONSTRUCTOR can trap.
10182         * tree-complex.c (update_complex_assignment): Update EH info.
10183
10184 2010-09-07  Richard Guenther  <rguenther@suse.de>
10185
10186         PR middle-end/45569
10187         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
10188         * passes.c (execute_function_todo): Do not verify anything if
10189         we saw errors.
10190
10191 2010-09-07  Richard Guenther  <rguenther@suse.de>
10192
10193         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
10194
10195 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
10196
10197         PR target/43137
10198         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
10199         New define_mode_attrs.
10200         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
10201         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
10202         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
10203         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
10204         Remove pool_range attribute.
10205         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
10206         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
10207         pool_range and neg_pool_range attributes.
10208         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
10209         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
10210         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
10211
10212 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10213
10214         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
10215         check glibc.
10216
10217 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10218
10219         PR target/22152
10220         * config/i386/mmx.md (*mov<mode>_internal_rex64,
10221         *mov<mode>_internal_avx, *mov<mode>_internal,
10222         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
10223         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
10224
10225 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
10226
10227         * c-typeck.c (do_warn_double_promotion): Remove.
10228         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
10229         Objective-C++ too.
10230
10231 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
10232
10233         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
10234         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
10235         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
10236         argument type to reg_class_t. Change result type to bool.
10237         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10238
10239 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10240
10241         PR libobjc/19850
10242         * gthr-posix.h (__gthread_objc_thread_detach): Use
10243         _objc_thread_attribs when detaching a thread.
10244         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
10245
10246 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10247
10248         PR target/45524
10249         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
10250         * configure: Regenerated.
10251
10252 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10253
10254         * combine.c (try_combine): Set subst_low_luid to i0.
10255
10256 2010-09-06  Richard Guenther  <rguenther@suse.de>
10257
10258         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
10259         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
10260         (build_aligned_type): Declare.
10261         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
10262         (check_aligned_type): New function.
10263         (build_aligned_type): Likewise.
10264         * expr.c (expand_assignment): Handle misaligned stores via
10265         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
10266         (expand_expr_real_1): Likewise.
10267         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
10268         * tree-vect-stmts.c (vectorizable_store): Do not build
10269         MISALIGNED_INDIRECT_REF but initialize alignment information.
10270         (vectorizable_load): Likewise.
10271         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
10272         handling.
10273         * cfgexpand.c (expand_debug_expr): Likewise.
10274         * dwarf2out.c (loc_list_from_tree): Likewise.
10275         * fold-const.c (maybe_lvalue_p): Likewise.
10276         (operand_equal_p): Likewise.
10277         (build_fold_addr_expr_with_type_loc): Likewise.
10278         * gimplify.c (gimplify_addr_expr): Likewise.
10279         (gimplify_expr): Likewise.
10280         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
10281         (verify_gimple_assign_single): Likewise.
10282         * tree-dump.c (dequeue_and_dump): Likewise.
10283         (tree_could_trap_p): Likewise.
10284         * tree-predcom.c (ref_at_iteration): Likewise.
10285         * tree-pretty-print.c (dump_generic_node): Likewise.
10286         (op_code_prio): Likewise.
10287         (op_symbol_code): Likewise.
10288         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
10289         * tree-ssa-loop-im.c (for_each_index): Likewise.
10290         (gen_lsm_tmp_name): Likewise.
10291         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
10292         (find_interesting_uses_address): Likewise.
10293         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
10294         * tree-ssa-operands.c (get_expr_operands): Likewise.
10295         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10296         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10297         (ao_ref_init_from_vn_reference): Likewise.
10298         * tree.c (staticp): Likewise.
10299         (build1_stat): Likewise.
10300         (reference_alias_ptr_type): Likewise.
10301         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10302         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
10303         MISALIGNED_INDIRECT_REF handling.
10304
10305 2010-09-06  Richard Guenther  <rguenther@suse.de>
10306
10307         PR tree-optimization/45534
10308         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
10309         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
10310         on the target.
10311         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
10312         valid on the target.
10313
10314 2010-09-06  Andreas Schwab  <schwab@redhat.com>
10315
10316         * configure.ac: Quote argument of AC_MSG_WARN.
10317         * configure: Regenerate.
10318
10319 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10320
10321         * sel-sched.c (move_cond_jump): Correct arguments to
10322         maybe_tidy_empty_bb.
10323         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10324
10325 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
10326
10327         PR rtl-optimization/44919
10328         * sel-sched.c (move_cond_jump): Remove assert, check that
10329         the several blocks case can only happen with mutually exclusive
10330         insns instead.  Rewrite the movement code to support moving through
10331         several basic blocks.
10332
10333 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10334
10335         * config/i386/i386.md (iptrsize): New mode attribute.
10336         (tp_seg): Ditto.
10337         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
10338         mode iterator.
10339         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
10340         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
10341         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
10342         (stack_tls_protect_set_<mode>): Ditto from
10343         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
10344         of thread base pointer load.
10345         (stack_tls_protect_test_<mode>): Ditto from
10346         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
10347         of thread base pointer load.
10348         (stack_protect_set): Rewrite using indirect functions.
10349         (stack_protect_test): Ditto.
10350         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
10351         (ix86_print_operand): Handle '@'.
10352
10353 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
10354
10355         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
10356         MINUS_EXPR.
10357
10358 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
10359
10360         * doc/invoke.texi: Document -Wdouble-promotion.
10361         * c-typeck.c (convert_arguments): Check for implicit conversions
10362         from float to double.
10363         (do_warn_double_promotion): New function.
10364         (build_conditional_expr): Use it.
10365         (build_binary_op): Likewise.
10366
10367 2010-09-05  Richard Guenther  <rguenther@suse.de>
10368
10369         PR tree-optimization/45535
10370         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
10371         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
10372         dereferencing it.
10373         (indirect_refs_may_alias_p): Likewise.
10374
10375 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
10376
10377         * config/sh/sh.c (sh_option_override): Make static.
10378         Adjust comments.  Declare.
10379         (sh_function_value_regno_p): Likewise.
10380         (sh_register_move_cost): Modify the arguments, make static.
10381         Adjust comments.  Declare.
10382         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
10383         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10384         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
10385         REGISTER_MOVE_COST): Delete.
10386         * config/sh/sh-protos.h (sh_override_options): Delete.
10387         (sh_register_move_cost): Delete.
10388         (sh_function_value_regno_p): Delete.
10389
10390 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
10391
10392         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
10393         m32r_function_value_regno_p): New functions.
10394         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10395         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
10396         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
10397         FUNCTION_VALUE_REGNO_P): Remove.
10398
10399 2010-09-04  Jan Hubicka  <jh@suse.cz>
10400
10401         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
10402         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
10403         fold_read_from_constant_string.
10404
10405         * gimple.h (canonicalize_constructor_val): Declare.
10406         * gimple-fold.c (canonicalize_constructor_val): New function.
10407         (get_symbol_constant_value):Use it.
10408         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10409
10410 2010-09-04  Jan Hubicka  <jh@suse.cz>
10411
10412         * tree-switch-conversion.c (build_one_array): Set constructor to be
10413         static.
10414         * varpool.c (varpool_finalize_decl): Compute const_value_known.
10415
10416 2010-09-04  Richard Guenther  <rguenther@suse.de>
10417
10418         PR bootstrap/45519
10419         * tree-flow.h (force_gimple_operand_1): Declare.
10420         (force_gimple_operand_gsi_1): Likewise.
10421         * gimplify.c (force_gimple_operand_1): New worker taking a
10422         gimple predicate for ...
10423         (force_gimple_operand): ... which now wraps it.
10424         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
10425         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
10426         last change.
10427         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
10428         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
10429         (create_mem_ref): Likewise.
10430
10431 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
10432
10433         * config/i386/predicates.md (sse_reg_operand): New predicate.
10434         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
10435         predicate for operand 1.
10436         (XFmode push splitter): Use fp_register_operand predicate
10437         for operand 1.
10438         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
10439         (SF-DF float_extend push splitter): Add reload_completed insn
10440         predicate.
10441         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
10442         MODEF mode macro.  Add reload_completed insn predicate.
10443
10444 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
10445
10446         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
10447         (struct df_extract_ref): Remove.
10448         (union df_ref_d): Remove extract_ref member.
10449         (df_ref_create): Remove last three arguments.
10450         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
10451         * df-scan.c (df_ref_record): Remove last three arguments, do not
10452         pass them to df_ref_create_structure.
10453         (df_uses_record): Remove first and last three arguments.  Replace
10454         first argument with DF_REF_REGULAR, adjust calls to remove the
10455         width, offset and mode.  Always call recursively on the second
10456         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
10457         (df_ref_create_structure): Remove first argument.
10458         (struct df_scan_problem_data): Remove ref_extract_pool.
10459         (df_scan_free_internal): Do not free it.
10460         (df_scan_alloc): Do not allocate it.
10461         (df_ref_create): Remove last three arguments, do not pass them to
10462         df_ref_create_structure.
10463         (df_free_ref): Remove DF_REF_EXTRACT case.
10464         (df_notes_rescan): Adjust call to df_uses_record.
10465         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
10466         Remove DF_REF_EXTRACT case.
10467         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
10468         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
10469         and SUBREG definitions.
10470         (df_get_conditional_uses): Remove references to width/offset/mode,
10471         adjust call to df_ref_create_structure.
10472         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
10473         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
10474         calls to df_uses_record and df_ref_record.
10475         * fwprop.c (update_df): Remove references to width/offset/mode,
10476         adjust call to df_ref_create.
10477
10478 2010-09-03  Jan Hubicka  <jh@suse.cz>
10479
10480         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
10481         (build_cdtor_fns): Update use of build_cdtor.
10482
10483 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
10484
10485         * doc/options.texi (SeparateAlias): Document.
10486         * opt-functions.awk (switch_flags): Handle SeparateAlias.
10487         * opth-gen.awk: Generate enumeration names for options marked
10488         SeparateAlias, but not for those marked Ignore.
10489         * opts-common.c (generate_canonical_option): Don't output separate
10490         argument for options marked CL_SEPARATE_ALIAS.
10491         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
10492         * opts.h (CL_SEPARATE_ALIAS): New.
10493         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
10494         CL_COMMON): Adjust definitions.
10495         * config/i386/darwin.opt, config/mips/sde.opt: New.
10496         * common.opt (fdump-final-insns): New.
10497         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10498         i386/darwin.opt.
10499         (mips*-sde-elf*): Add mips/sde.opt.
10500         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
10501         -mno-data-in-code and -mcode-xonly here.
10502         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
10503         * gcc.c (option_map): Add "j" to --dump entry.
10504         (translate_options): Don't translate -d to -foutput-class-dir= here.
10505
10506 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
10507
10508         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
10509         DR_IS_WRITE.
10510         (compute_all_dependences): Same.
10511         (create_rdg_edge_for_ddr): Same.
10512         * tree-data-ref.h (DR_IS_WRITE): New.
10513         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
10514         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
10515         (write_memrefs_written_at_least_once): Same.
10516         * tree-predcom.c (suitable_component_p): Same.
10517         (determine_roots_comp): Same.
10518         (execute_load_motion): Same.
10519         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
10520         (vect_enhance_data_refs_alignment): Same.
10521         (vect_analyze_group_access): Same.
10522
10523 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
10524
10525         PR testsuite/42843
10526         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
10527         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
10528
10529 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
10530
10531         * dwarf2out.c (file scope): Remove #if0'd code.
10532         (gen_subprogram_die): Same.
10533
10534 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10535
10536         PR middle-end/45484
10537         * dwarf2out.c (flush_queued_reg_saves): Rename to...
10538         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
10539         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
10540         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
10541         * config/i386/i386.c (output_set_got): Call it.
10542
10543 2010-09-03  Michael Matz  <matz@suse.de>
10544
10545         PR middle-end/45415
10546         * tree-sra.c (sra_modify_assign): If we modify the statement,
10547         say so.
10548
10549         * tree-ssa.c (verify_ssa): Check number of operands and links
10550         per statement to agree.
10551
10552 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10553             Iain Sandoe  <iains@gcc.gnu.org>
10554
10555         PR target/45476
10556         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
10557         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
10558         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10559
10560 2010-09-03  Richard Guenther  <rguenther@suse.de>
10561
10562         * lto-streamer-out.c (output_function): Output function
10563         start and end loci.
10564         * lto-streamer-in.c (input_function): Input function start
10565         and end loci.
10566
10567 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10568
10569         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
10570         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
10571         * configure: Regenerate.
10572         * aclocal.m4: Regenerate.
10573
10574 2010-09-03  Jan Hubicka  <jh@suse.cz>
10575
10576         PR lto/44812
10577         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
10578         on functions/variables in other partition.
10579
10580 2010-09-03  Jan Hubicka  <jh@suse.cz>
10581
10582         * cgraph.h (struct varpool_node): Add const_value_known.
10583         (varpool_decide_const_value_known): Declare.
10584         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
10585         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
10586         (input_varpool_node): Restore const_value_known.
10587         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
10588         initializer folding.
10589         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10590         function_and_variable_visibility): Compute const_value_known.
10591         * gimple-fold.c (get_symbol_constant_value): Use varpool for
10592         initializer folding.
10593         * varpool.c (varpool_decide_const_value_known): New function.
10594
10595 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10596
10597         * config/i386/i386.md: Remove empty preparation statements
10598         from splitters.
10599
10600 2010-09-03  Jan Hubicka  <jh@suse.cz>
10601
10602         * passes.c (rest_of_decl_compilation): Do not add local vars into
10603         varpool.
10604         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
10605         static or extern vars are in varpool.
10606         (varpool_finalize_decl): Sanity check that only static vars are
10607         finalized.
10608
10609 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10610
10611         PR debug/45500
10612         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
10613         not just generic vectors with BLKmode.
10614
10615 2010-09-03  Richard Guenther  <rguenther@suse.de>
10616
10617         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
10618         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
10619         * tree.h (TMR_SYMBOL): Remove.
10620         (TMR_BASE, TMR_OFFSET): Adjust.
10621         (TMR_INDEX2): New.
10622         * alias.c (ao_ref_from_mem): Use TMR_BASE.
10623         * builtins.c (get_object_alignment): Merge TMR_BASE and
10624         TMR_SYMBOL handling.
10625         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
10626         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
10627         handling.  Also allow TARGET_MEM_REF as base address.
10628         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
10629         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
10630         base.  Gimplify TMR_INDEX2.
10631         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
10632         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10633         (get_addr_base_and_unit_offset): Likewise.
10634         * tree-eh.c (tree_could_trap_p): Likewise.
10635         * tree-pretty-print.c (dump_generic_node): Likewise.
10636         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
10637         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
10638         base to index2.
10639         (get_address_description): Reconstruct addres description
10640         from merged TMR_BASE and TMR_INDEX2.
10641         (maybe_fold_tmr): Fold propagated addresses.
10642         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
10643         MEM_REF and TARGET_MEM_REF paths.
10644         (indirect_refs_may_alias_p): Likewise.
10645         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
10646         instead of TMR_SYMBOL.
10647         * tree-ssa-operands.c (get_tmr_operands): Simplify.
10648         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
10649         according to changes ...
10650         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
10651         Split TARGET_MEM_REF into two fields plus the base.
10652         * tree.c (mem_ref_offset): Simplify.
10653         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
10654         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
10655         Strip NOPs when folding MEM_REF addresses.
10656         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
10657         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
10658         (fold_gimple_assign): ... not here.
10659
10660 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
10661
10662         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
10663         * config/mips/mips.c (mips_shift_truncation_mask): New function.
10664         (TARGET_SHIFT_TRUNCATION_MASK): Define.
10665
10666 2010-09-02  Richard Henderson  <rth@redhat.com>
10667
10668         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
10669         instead of readelf in the test.
10670         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
10671         in the .debug_frame section for coff targets.
10672         * configure: Rebuild.
10673
10674 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10675
10676         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
10677         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
10678         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10679         (m32c_class_likely_spilled_p): Make static. Change argument type to
10680         reg_class_t. Change result type to bool.
10681
10682 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10683
10684         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
10685         to convert (double)(long) into a single FRIZ instruction or not
10686         when -ffast-math is used.
10687
10688         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
10689         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
10690         or FRIZ instruction if -ffast-math.
10691         * config/rs6000/rs6000.md (friz): Ditto.
10692
10693         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
10694
10695 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10696
10697         * opth-gen.awk (quote, comma): Remove unused variables.
10698
10699 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
10700
10701         * arm.c (arm_override_options): Correct fall-back code to use
10702         SUBTARGET_CPU_DEFAULT.
10703
10704 2010-09-02  Julian Brown  <julian@codesourcery.com>
10705
10706         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
10707         unspecs.
10708         (vcond<mode>, vcondu<mode>): New expanders.
10709         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
10710         comparisons with zero.
10711         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
10712         * config/arm/constraints.md (Dz): New constraint.
10713
10714 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10715
10716         * target.def (class_likely_spilled_p): New hook.
10717         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
10718         * doc/tm.texi: Regenerate.
10719         * targhooks.c (default_class_likely_spilled_p): New function.
10720         * targhooks.h (default_class_likely_spilled_p): Declare.
10721         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
10722         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
10723         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
10724         Use fixed_reg_set instead of fixed_regs.
10725         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10726         * calls.c (avoid_likely_spilled_reg): Ditto.
10727         * ira-conflicts.c (ira_build_conflicts): Ditto.
10728         * ira.c (update_equiv_regs): Ditto.
10729         * mode-switching.c (create_pre_exit): Ditto.
10730         * regmove.c (find_matches): Ditto.
10731         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10732         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
10733         (small_register_class_p): New inline function.
10734         (push_secondary_reload, find_reusable_reload, find_reloads): Use
10735         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
10736
10737         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
10738         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
10739         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10740
10741 2010-09-02  Richard Guenther  <rguenther@suse.de>
10742
10743         PR tree-optimization/44937
10744         PR tree-optimization/45412
10745         * ipa-split.c (split_function): Properly remove PHI nodes.
10746
10747 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10748
10749         * opts.h (struct cl_option): Add warn_message field.
10750         (struct cl_decoded_option): Add warn_message field.
10751         * doc/options.texi (Ignore, Warn): Document.
10752         * opt-functions.awk (needs_state_p): Don't consider aliases or
10753         ignored options to need state saved.
10754         * optc-gen.awk: Handle Warn and Ignore.
10755         * opth-gen.awk: Output OPT_SPECIAL_ignore.
10756         * opts-common.c (decode_cmdline_option): Set warn_message field.
10757         Handle ignored options.
10758         (decode_cmdline_options_to_array, generate_option,
10759         generate_option_input_file): Set warn_message field.
10760         (read_cmdline_option): Generate warnings from warn_message field.
10761         Handle ignored options.
10762         * common.opt (Wunreachable-code, fargument-alias,
10763         fargument-noalias, fargument-noalias-global,
10764         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
10765         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
10766         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
10767         ftree-salias): Mark Ignore.
10768         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
10769         -mintel-syntax and -mno-intel-syntax here.
10770         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
10771         using Warn.
10772         * opts.c (common_handle_option): Don't handle options marked as
10773         ignored.
10774         (enable_warning_as_error): Handle ignored options.
10775
10776 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10777
10778         PR driver/44076
10779         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
10780         alias_target fields.
10781         * opt-functions.awk (opt_sanitized_name): Don't handle
10782         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
10783         * optc-gen.awk: Generate alias fields.
10784         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
10785         Don't generate such constants for aliases.
10786         * opts-common.c (generate_canonical_option): New.
10787         (decode_cmdline_option): Handle aliases.  Use
10788         generate_canonical_option for known options instead of copying the
10789         input option text.
10790         * doc/options.texi (Alias): Document.
10791         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
10792         fstack-check, specs): Mark as aliases.
10793         * gcc.c (driver_handle_option): Canonicalize -L options to joined
10794         arguments.
10795         (driver_handle_option): Don't handle OPT_specs.
10796         * opts.c (common_handle_option): Don't handle options marked as
10797         aliases.
10798         (enable_warning_as_error): Handle aliases.
10799         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
10800         OPT_Wlarger_than_eq.
10801         * tree-optimize.c (tree_rest_of_compilation): Use
10802         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
10803
10804 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
10805
10806         * config/i386/i386.md (nonmemory_operand): New mode attribute.
10807         (push memory peephole2): Macroize peepholes using SWI mode iterator.
10808         (move immediate to memory peephole2): Macroize peepholes using
10809         SWI124 mode iterator.
10810         (non-pairable NOT peephole2): Macroize peepholes using SWI124
10811         mode iterator.
10812         (simple lea add peephole2): Macroize peepholes using SWI48
10813         mode iterator.
10814         (simple lea mult peephole2): Ditto.
10815         (imul by 3,5,9 to lea peephole2): Ditto.
10816         (mov $-1, reg peephole2): Macroize peepholes using SWI248
10817         mode iterator.
10818         (imul $32bit_imm,mem,reg peephole2): Ditto.
10819         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
10820
10821 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
10822
10823         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
10824
10825 2010-09-02  Olivier Hainque  <hainque@adacore.com>
10826
10827         PR middle-end/44763
10828         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
10829         (allocno_priority_compare_func): Use it instead of a straight
10830         difference computation over priorities.
10831
10832 2010-09-02  Andi Kleen  <ak@linux.intel.com>
10833
10834         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
10835
10836 2010-09-02  Ira Rosen  <irar@il.ibm.com>
10837
10838         * tree-vectorizer.h (get_later_stmt): New function.
10839         (vect_analyze_data_ref_dependences): Add argument.
10840         * tree-vect-loop.c (vect_analyze_loop): Update call to
10841         vect_analyze_data_ref_dependences.
10842         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
10843         New function.
10844         (vect_analyze_data_ref_dependence): Add argument for basic block
10845         dependencies. Check dependencies in basic block vectorization.
10846         (vect_analyze_data_ref_dependences): Add argument and update call to
10847         vect_analyze_data_ref_dependences.
10848         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
10849         (vect_bb_vectorizable_with_dependencies): New.
10850         (vect_slp_analyze_bb): Check dependencies in basic block.
10851         (vect_schedule_slp_instance): Insert stores before the last store in
10852         SLP instance.
10853
10854 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
10855
10856         PR target/45476
10857         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
10858         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10859
10860 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
10861
10862         PR middle-end/45458
10863         * bb-reorder.c (add_labels_and_missing_jumps): Treat
10864         bbs ending with throwing insns like blocks ending with a call.
10865         (fix_up_fall_thru_edges): Likewise.
10866
10867 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
10868
10869         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
10870         (m32c_function_arg_advance): Delete.
10871         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10872         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
10873         comments.  Take a const_tree and a bool.  Declare.
10874         (m32c_function_arg_advance): Likewise.
10875         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10876
10877 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
10878
10879         PR target/45476
10880         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
10881         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
10882         * config/i386/mingw32.h: ... here.
10883
10884 2010-09-01  Andi Kleen  <ak@linux.intel.com>
10885
10886         PR lto/45475
10887         * lto-streamer-in.c (lto_input_ts_target_option): Add.
10888         (lto_input_tree_pointers): Call lto_input_ts_target_option.
10889         * lto-streamer-out (lto_output_ts_target_option): Add.
10890         (lto_output_tree_pointers): Call lto_output_ts_target_option.
10891
10892 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
10893
10894         PR/target 45452
10895         * config/i386/cygwin.h: Change order of specified import libraries.
10896         * config/i386/mingw32.h: Likewise.
10897         * config/i386/t-cygwin: Likewise.
10898         * config/i386/t-mingw32: Likewise.
10899         * config/i386/t-mingw-w32: Likewise.
10900         * config/i386/t-mingw-w64: Likewise.
10901
10902 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10903
10904         * config/arm/neon-schedgen.ml (core): New type.
10905         (allCores): List of supported cores.
10906         (availability_table): Add supported cores.
10907         (collate_bypasses): Accept core as a parameter.
10908         (worst_case_latencies_and_bypasses): Accept core as a parameter.
10909         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
10910         and coreStr to get tune attribute and prefix for functional units.
10911         (emit_bypasses): Accept core name and use it.
10912         (calculate_per_core_availability_table): New.
10913         (filter_core): New.
10914         (calculate_core_availability_table): New.
10915         (main): Use calculate_core_availablity_table.
10916         * config/arm/cortex-a8-neon.md: Update copyright year.
10917         Regenerated from ml file and merged in.
10918         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
10919         cortex_a8_neon_mrc.
10920
10921 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
10922
10923         * Makefile.in (tree-switch-conversion.o): Update dependencies.
10924
10925 2010-09-01  Richard Guenther  <rguenther@suse.de>
10926
10927         * alias.c (ao_ref_from_mem): Adjust.
10928         * builtins.c (get_object_alignment): Likewise.
10929         * cfgexpand.c (expand_debug_expr): Likewise.
10930         * gimple.c (get_base_address): Likewise.
10931         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10932         (get_addr_base_and_unit_offset): Likewise.  Fix for
10933         both TMR_SYMBOL and TMR_BASE being set.
10934         * tree-eh.c (tree_could_trap_p): Likewise.
10935         * gimplify.c (gimplify_expr): Do not attempt to gimplify
10936         TMR_SYMBOL.  Always gimplify TMR_BASE.
10937         * tree-cfg.c (verify_types_in_gimple_reference): Verify
10938         TMR_BASE if there is a TMR_SYMBOL.
10939         * tree-pretty-print.c (dump_generic_node): Adjust.
10940         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
10941         (tree_mem_ref_addr): Likewise.
10942         (create_mem_ref_raw): Likewise.
10943         (move_fixed_address_to_symbol): Likewise.
10944         (create_mem_ref): Likewise.
10945         (dump_mem_address): Likewise.
10946         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
10947         Fix for both TMR_SYMBOL and TMR_BASE being set.
10948         (indirect_refs_may_alias_p): Likewise.
10949         * tree-ssa-operands.c (get_tmr_operands): Adjust.
10950         * tree.def (TARGET_MEM_REF): Adjust documentation.
10951
10952 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
10953
10954         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
10955         Rename from X86_TUNE_ADD_ESP_4.
10956         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
10957         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
10958         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
10959         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
10960         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
10961         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
10962         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
10963         * config/i386/i386.c (initial_ix86_tune_features)
10964         <X86_TUNE_SINGLE_POP>: Invert members.
10965         <X86_TUNE_DOUBLE_POP>: Ditto.
10966         <X86_TUNE_SINGLE_PUSH>: Ditto.
10967         <X86_TUNE_DOUBLE_PUSH>: Ditto.
10968         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
10969         No longer exported.
10970         (push peephole2 patterns): Macroize peepholes using P mode iterator.
10971         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
10972         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
10973         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
10974
10975 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
10976
10977         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
10978         a volatile LHS if the constructor has only one element.
10979
10980 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
10981
10982         PR bootstrap/45321
10983         * tree.c (stdarg_p): Make fntype parameter const.
10984         * tree.h (stdarg_p): Likewise.
10985         (function_args_iterator): Remove unused fntype field.
10986         (function_args_iter_init): Do not initialize fntype
10987         field.  Make fntype parameter const.
10988
10989 2010-09-01  Richard Guenther  <rguenther@suse.de>
10990
10991         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
10992         estimate.
10993         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
10994         (execute_vrp): Compute number of iteration estimates.
10995         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
10996         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
10997         * tree-data-ref.c (estimated_loop_iterations): Adjust.
10998         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
10999         Infer loop bounds from undefined behavior based on a new parameter.
11000         (estimate_numbers_of_iterations): Likewise.
11001         (scev_probably_wraps_p): Adjust.
11002         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
11003
11004 2010-09-01  Nick Clifton  <nickc@redhat.com>
11005
11006         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
11007         where appropriate.
11008         (xstormy16_legitimate_address_p): Use true and false instead of 1
11009         and 0.
11010         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
11011         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
11012         magic constant 2.
11013         (xstormy16_expand_call): Fix comment at start of function.
11014
11015 2010-09-01  Nick Clifton  <nickc@redhat.com>
11016
11017         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
11018         when pushing accumulator register.
11019         (rx_get_stack_layout): Always save call clobbered registers inside
11020         interrupt handlers.
11021         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
11022
11023 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11024
11025         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
11026         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
11027
11028         * libgcc-std.ver (GCC_4.6.0): Define version.
11029
11030 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11031
11032         * tree-nested.c (convert_all_function_calls): Iterate until after the
11033         sum of static chains in the nest doesn't change.
11034
11035 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
11036
11037         * config/m32c/m32c.c (classes_intersect): Remove.
11038         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
11039         reg_classes_intersect_p instead of classes_intersect.
11040         (class_can_hold_mode): Change arguments type from enum reg_class to
11041         reg_class_t.  Use reg_class_contents instead of class_contents.
11042         (m32c_register_move_cost): Make static. Change arguments type from
11043         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
11044         classes_intersect. Use reg_class_contents instead of class_contents.
11045         (m32c_memory_move_cost): Make static. Change arguments type from
11046         enum reg_class to reg_class_t.
11047         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11048         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11049         * config/m32c/m32c-protos.h (m32c_register_move_cost,
11050         m32c_memory_move_cost): Remove.
11051
11052 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11053
11054         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
11055         (arm_function_arg): Delete.
11056         (arm_needs_doubleword_align): Take a const_tree.
11057         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11058         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
11059         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
11060         (arm_function_arg): Make static.  Take a const_tree and a bool.
11061         (arm_function_arg_advance): Likewise.
11062         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11063
11064 2010-08-31  Andi Kleen  <ak@linux.intel.com>
11065
11066         * common.opt (fwhopr=): Update for -fwhopr=jobserver
11067         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
11068         * lto-wrapper.c (run_gcc): Add jobserver mode.
11069         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
11070         argument.
11071
11072 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
11073
11074         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
11075         (popsi1): Ditto.
11076         (*popdi1_epilogue): Ditto.
11077         (*popsi1_epilogue): Ditto.
11078         (popsi, popdi peephole2 patterns): Update peepholes for changed
11079         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
11080
11081         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
11082         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
11083
11084         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
11085         (override_options): Do not initialize removed ix86_gen_pop1.
11086         (gen_pop): New static function.
11087         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
11088         (release_scratch_register_on_entry): Ditto.
11089         (ix86_restore_reg_using_pop): Ditto.
11090         (ix86_expand_epilogue): Ditto.
11091
11092 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
11093
11094         PR middle-end/45461
11095         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
11096
11097 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11098
11099         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
11100         semicolons.
11101
11102 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11103
11104         * doc/extend.texi: Fix documentation of the return value of
11105         __builtin_choose_expr.
11106
11107 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11108
11109         * config/v850/v850-protos.h (function_arg): Delete.
11110         * config/v850/v850.h (FUNCTION_ARG): Delete.
11111         (FUNCTION_ARG_ADVANCE): Move code to...
11112         * config/v850/v850.c (v850_function_arg_advance): ...here.
11113         (v850_function_arg): Make static.  Take a const_tree and a bool.
11114         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11115
11116 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11117
11118         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
11119         these...
11120         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11121         ...and these...
11122         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
11123         ..to here..
11124         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11125         ...and here.
11126         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11127
11128 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11129
11130         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
11131         Delete.
11132         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11133         * config/rx/rx.c (rx_function_arg_size): Make static.
11134         (rx_function_arg): Likewise.
11135         (rx_function_arg_advance): New function.
11136         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11137
11138 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
11139
11140         * config/arm/arm.c (arm_override_options): Remove superfluous test.
11141         Fix indentation.
11142
11143 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11144
11145         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
11146         (dwarf2out_decl) <CONST_DECL>: Likewise.
11147
11148 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
11149
11150         Stack usage support
11151         * common.opt (-fstack-usage): New option.
11152         * doc/invoke.texi (Debugging options): Document it.
11153         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
11154         allocate_dynamic_stack_space.
11155         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
11156         and propagate it to allocate_dynamic_stack_space.
11157         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
11158         * calls.c (initialize_argument_information): Pass TRUE as 4th
11159         argument to allocate_dynamic_stack_space.
11160         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
11161         to 1 when pushing a variable-sized argument onto the stack.  Pass
11162         TRUE as 4th argument to allocate_dynamic_stack_space.
11163         Update current_function_pushed_stack_size.
11164         (emit_library_call_value_1): Likewise.
11165         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
11166         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
11167         attempt to find an upper bound.  Remove redundant code for the
11168         SETJMP_VIA_SAVE_AREA case.
11169         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
11170         * function.h (struct stack_usage): New structure.
11171         (current_function_static_stack_size): New macro.
11172         (current_function_dynamic_stack_size): Likewise.
11173         (current_function_pushed_stack_size): Likewise.
11174         (current_function_dynamic_alloc_count): Likewise.
11175         (current_function_has_unbounded_dynamic_stack_size): Likewise.
11176         (current_function_allocates_dynamic_stack_space): Likewise.
11177         (struct function): Add new field 'su'.
11178         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
11179         add the value of the dynamic offset to the dynamic stack usage.
11180         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
11181         for variable-sized objects.
11182         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
11183         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
11184         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
11185         BUILT_IN_ALLOCA for variable-sized objects.
11186         * output.h (output_stack_usage): Declare.
11187         * toplev.c (stack_usage_file): New file pointer.
11188         (output_stack_usage): New function.
11189         (open_auxiliary_file): Likewise.
11190         (lang_dependent_init): Open file if flag_stack_usage is set.
11191         (finalize): Close file if stack_usage_file is not null.
11192         * tree.h (ALLOCA_FOR_VAR_P): New macro.
11193         * config/alpha/alpha.c (compute_frame_size): New function.
11194         (alpha_expand_prologue): Use it.
11195         (alpha_start_function): Likewise.
11196         (alpha_expand_epilogue): Likewise.  Set stack usage info.
11197         * config/i386/i386.c (ix86_expand_prologue): Likewise.
11198         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
11199         * config/mips/mips.c (mips_expand_prologue): Likewise.
11200         * config/pa/pa.c (hppa_expand_prologue): Likewise.
11201         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
11202         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11203
11204 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
11205
11206         PR tree-optimization/45427
11207         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
11208         Handle the case that the exit is never taken correctly.
11209         (number_of_iterations_ne): Pass exit_must_be_taken to
11210         number_of_iterations_ne_max.
11211
11212 2010-08-30  Catherine Moore  <clm@codesourcery.com>
11213
11214         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
11215         Infer -mdspr2 for the the 74K.
11216
11217 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
11218
11219         PR debug/45419
11220         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
11221
11222         PR middle-end/45423
11223         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
11224         and TRUTH_{AND,OR,XOR}_EXPR.
11225         * c-parser.c (c_parser_omp_atomic): Handle boolean
11226         {PRE,POST}_{INC,DEC}REMENT.
11227
11228 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
11229
11230         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
11231         (function_arg): Delete.
11232         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11233         (FUNCTION_INCOMING_ARG): Delete.
11234         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
11235         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
11236         and a bool.
11237         (function_arg): Rename to...
11238         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
11239         a bool.
11240         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
11241         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11242         (TARGET_FUNCTION_INCOMING_ARG): Define.
11243
11244 2010-08-30  Richard Guenther  <rguenther@suse.de>
11245
11246         PR tree-optimization/21602
11247         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
11248         using points-to information.
11249
11250 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
11251
11252         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
11253
11254 2010-08-30  Richard Guenther  <rguenther@suse.de>
11255
11256         PR tree-optimization/45449
11257         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
11258         variables.
11259
11260 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
11261
11262         * opts.h (CL_ERR_NEGATIVE): Define.
11263         * opts.c (unknown_option_callback): Don't postpone warnings for
11264         options marked with CL_ERR_NEGATIVE.
11265         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
11266         for negative versions of CL_REJECT_NEGATIVE options.
11267
11268 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
11269
11270         * config/i386/i386.md (zero_extendsidi2_1): Rename from
11271         zero_extendsidi2_32.
11272         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
11273         using SWI12 mode iterator.
11274         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
11275         to define_insn_and_split pattern.
11276         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
11277         using SWI24 mode iterator.
11278         (*zero_extendqi<mode>2_and): Macroize insn from
11279         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
11280         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
11281         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
11282         SWI24 mode iterator.
11283         (*zero_extendqi<mode>2_movzbl): Ditto from
11284         *zero_extendqi{hi,si}2_movzbl.
11285         (extendsidi2_1): Rename from extendsidi2_32.
11286         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
11287         SWI12 mode iterator.
11288
11289 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
11290
11291         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
11292         general purpose registers.
11293         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
11294         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
11295         with general purpose registers and memory operands.  Add associated
11296         CCImode post-reload splitter.
11297         * config/ia64/div.md: Change BImode to CCImode throughout.
11298
11299 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
11300
11301         * config/ia64/ia64.md (cstorebi4): Fix thinko.
11302
11303 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
11304
11305         * config/picochip/picochip.c (reorder_var_tracking_notes): This
11306         function was dropping debug insns which caused PR45299.
11307
11308 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
11309
11310         * config/i386/sse.md (extsuffix): New code attribute.
11311         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
11312         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
11313         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
11314         and sse4_1_zero_extendv4qiv4si2.
11315         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
11316         and sse4_1_zero_extendv2qiv2di2.
11317         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
11318         and sse4_1_zero_extendv4hiv4si2.
11319         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
11320         and sse4_1_zero_extendv2hiv2di2.
11321         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
11322         and sse4_1_zero_extendv2siv2di2
11323
11324         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
11325         using any_extend code iterator.
11326         (*avx_<s>mulv8hi3_highpart): Macroize insn from
11327         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
11328         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
11329
11330         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
11331         gen_sse4_1_sign_extend* functions.
11332         (struct builtin_description bdesc_args): Ditto.
11333
11334 2010-08-27  Xinliang David Li  <davidxl@google.com>
11335
11336         PR/45422
11337         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
11338         (iv_ca_set_no_cp): Update used inv expr count.
11339         (iv_ca_set_cp): Ditto.
11340         (iv_ca_new): Initialize new member.
11341         (iv_ca_free): Free memory.
11342
11343 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11344
11345         * config/sh/sh-protos.h (sh_function_arg): Delete.
11346         (sh_function_arg_advance): Delete.
11347         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11348         (PASS_IN_REG_P): Eliminate cast.
11349         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
11350         const_tree and a bool.
11351         (sh_function_arg): Likewise.
11352         (sh_output_mi_thunk): Call sh_function_arg_advance) and
11353         sh_function_arg.
11354         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11355
11356 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
11357             Kaz Kojima  <kkojima@gcc.gnu.org>
11358
11359         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
11360         when possible.
11361         (sh_expand_epilogue): Likewise.
11362         * config/sh/sh.md (movml_push_banked): New insn.
11363         (movml_pop_banked): Likewise.
11364
11365 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
11366
11367         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
11368         gen_regexp_oneof, gen_regexp_sequence): Use the string found
11369         in vector element 0 rather than the original string when there's
11370         only one element.
11371         (gen_regexp): Remove extra semicolon.
11372
11373         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
11374         thumb2_movsf_vfp): Set attribute "insn".
11375         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
11376         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
11377         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
11378         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
11379         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
11380         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
11381         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
11382         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
11383         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
11384         if_not_arith, if_arith_not, cond_move_not): Likewise.
11385
11386 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11387
11388         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
11389         New declaration.
11390         (rs6000_allocate_stack_temp): Ditto.
11391         (rs6000_expand_convert_si_to_sfdf): Ditto.
11392
11393         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
11394         line.  Update the options set if power6 or power7 server/embedded
11395         type options are used.  If we give a warning for no vsx under
11396         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
11397         (rs6000_allocate_stack_temp): New function to allocate a stack
11398         tempoary and adjust the address so it meets either REG+OFFSET or
11399         REG+REG addressing requirements.
11400         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
11401         that they can be used with the LFIWAX/LFIWZX instrucitons.
11402         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
11403         converting signed/unsigned SImode to either SFmode/DFmode.
11404
11405         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
11406         whether certain instructions can be generated.
11407         (TARGET_FCTIDZ): Ditto.
11408         (TARGET_STFIWX): Ditto.
11409         (TARGET_LFIWAX): Ditto.
11410         (TARGET_LFIWZX): Ditto.
11411         (TARGET_FCFIDS): Ditto.
11412         (TARGET_FCFIDU): Ditto.
11413         (TARGET_FCFIDUS): Ditto.
11414         (TARGET_FCTIDUZ): Ditto.
11415         (TARGET_FCTIWUZ): Ditto.
11416
11417         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
11418         (UNSPEC_FCTID): Ditto.
11419         (UNSPEC_LFIWAX): Ditto.
11420         (UNSPEC_LFIWZX): Ditto.
11421         (UNSPEC_FCTIWUZ): Ditto.
11422         (rreg): Use correct constraints.
11423         (SI_CONVERT_FP): New mode attribute for floating point conversion
11424         tests.
11425         (E500_CONVERT): Ditto.
11426         (lfiwax): New insns for converting from integer to floating point
11427         utilizing newer instructions.  Attempt to optimize conversions
11428         that come from memory so that we don't load the value into a GPR,
11429         spill it to the stack and reload it into a FPR.
11430         (floatsi<mode>2_lfiwax): Ditto.
11431         (floatsi<mode>2_lfiwax_mem): Ditto.
11432         (floatsi<mode>2_lfiwax_mem2): Ditto.
11433         (lfiwzx): Ditto.
11434         (floatunssi<mode>2_lfiwzx): Ditto.
11435         (floatunssi<mode>2_lfiwzx_mem): Ditto.
11436         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
11437         (floatdidf2_mem): Ditto.
11438         (floatunsdidf2_fcfidu): Ditto.
11439         (floatunsdidf2_mem): Ditto.
11440         (floatunsdisf2): Ditto.
11441         (floatunsdisf2_fcfidus): Ditto.
11442         (floatunsdisf2_mem): Ditto.
11443         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
11444         Use FCFID on 32-bit hosts that support it.
11445         (floatsidf2_internal): Ditto.
11446         (floatunssisf2): Ditto.
11447         (floatunssidf2): Ditto.
11448         (floatunssidf2_internal): Ditto.
11449         (floatsisf2): Ditto.
11450         (floatdidf2): Ditto.
11451         (floatdidf2_fpr): Ditto.
11452         (floatunsdidf2): Ditto.
11453         (floatdisf2): Ditto.
11454         (floatdisf2_fcfids): Ditto.
11455         (floatdisf2_internal1): Ditto.
11456         (fixuns_truncsfsi2): Delete, merge into common pattern for both
11457         SF/DF.  Add power7 support.
11458         (fix_truncsfsi2): Ditto.
11459         (fixuns_truncdfsi2): Ditto.
11460         (fixuns_truncdfdi2): Ditto.
11461         (fix_truncdfsi2): Ditto.
11462         (fix_truncdfsi2_internal): Ditto.
11463         (fix_truncdfsi2_internal_gfxopt): Ditto.
11464         (fix_truncdfsi2_mfpgpr): Ditto.
11465         (fctiwz): Ditto.
11466         (btruncdf2): Ditto.
11467         (btruncdf2_fpr): Ditto.
11468         (btructsf2): Ditto.
11469         (ceildf2): Ditto.
11470         (ceildf2_fpr): Ditto.
11471         (ceilsf2): Ditto.
11472         (floordf2): Ditto.
11473         (floordf2_fpr): Ditto.
11474         (floorsf2): Ditto.
11475         (rounddf2): Ditto.
11476         (rounddf2_fpr): Ditto.
11477         (roundsf2): Ditto.
11478         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
11479         (fix_trunc<mode>di2): Ditto.
11480         (fixuns_trunc<mode>si2): Ditto.
11481         (fixuns_trunc<mode>di2): Ditto.
11482         (fctiwz_<mode>): Ditto.
11483         (btrunc<mode>2): Ditto.
11484         (btrunc<mode>2_fpr): Ditto.
11485         (ceil<mode>2): Ditto.
11486         (ceil<mode>2_fpr): Ditto.
11487         (floor<mode>2): Ditto.
11488         (float<mode>2_fpr): Ditto.
11489         (round<mode>2): Ditto.
11490         (round<mode>2_fpr): Ditto.
11491         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
11492         (fixuns_trunc<mode>si2_stfiwx): Ditto.
11493         (fix_truncdfsi2_internal): Ditto.
11494         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
11495         converted value on stack, loaded into GPR, and then stored into
11496         the final destination.
11497         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
11498         FCTIDZ.
11499         (lrint<mode>di2): New insn, provide the lrint builtin functions.
11500         (ftruncdf2): Delete, unused.
11501         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
11502
11503         * config/rs6000/vsx.md (toplevel): Update copyright year.
11504         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
11505         (VSr3): Ditto.
11506
11507 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
11508             Jeremie Salvucci  <jeremie.salvucci@free.fr>
11509
11510         * gengtype.c (output_type_enum): Test the right union member.
11511
11512 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
11513
11514         PR target/41484
11515         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
11516         operands for operand 1.
11517         (sse4_1_extendv4qiv4si2): Ditto.
11518         (sse4_1_extendv2qiv2di2): Ditto.
11519         (sse4_1_extendv4hiv4si2): Ditto.
11520         (sse4_1_extendv2hiv2di2): Ditto.
11521         (sse4_1_extendv2siv2di2): Ditto.
11522         (sse4_1_zero_extendv8qiv8hi2): Ditto.
11523         (sse4_1_zero_extendv4qiv4si2): Ditto.
11524         (sse4_1_zero_extendv2qiv2di2): Ditto.
11525         (sse4_1_zero_extendv4hiv4si2): Ditto.
11526         (sse4_1_zero_extendv2hiv2di2): Ditto.
11527         (sse4_1_zero_extendv2siv2di2): Ditto.
11528         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
11529         (*sse4_1_extendv4qiv4si2): Ditto.
11530         (*sse4_1_extendv2qiv2di2): Ditto.
11531         (*sse4_1_extendv4hiv4si2): Ditto.
11532         (*sse4_1_extendv2hiv2di2): Ditto.
11533         (*sse4_1_extendv2siv2di2): Ditto.
11534         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
11535         (*sse4_1_zero_extendv4qiv4si2): Ditto.
11536         (*sse4_1_zero_extendv2qiv2di2): Ditto.
11537         (*sse4_1_zero_extendv4hiv4si2): Ditto.
11538         (*sse4_1_zero_extendv2hiv2di2): Ditto.
11539         (*sse4_1_zero_extendv2siv2di2): Ditto.
11540
11541 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11542
11543         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
11544         (mips_function_arg): Delete.
11545         (mips_function_arg_boundary): Take a const_tree.
11546         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
11547         (mips_arg_info): Likewise.
11548         (mips_setup_incoming_varargs): Call mips_function_arg_advance
11549         instead of FUNCTION_ARG_ADVANCE.
11550         (mips_function_arg_advance): Adjust prototype.  Make static.
11551         (mips_function_arg): Likewise.
11552         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11553         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
11554
11555 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11556
11557         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11558         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
11559         (function_arg): Delete.
11560         (function_arg_boundary): Take a const_tree.
11561         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
11562         (rs6000_spe_function_arg): Likewise.
11563         (rs6000_parm_start): Likewise.
11564         (rs6000_arg_size): Likewise.
11565         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
11566         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
11567         (rs6000_mixed_function_arg): Likewise.
11568         (function_arg): Rename to...
11569         (rs6000_function_arg): ...this.
11570         (function_arg_advance): Rename to...
11571         (rs6000_function_arg_advance_1): ...this
11572         (rs6000_function_arg_advance): New function.  Call it.
11573         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
11574         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
11575         (rs6000_function_value): Likewise.
11576         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11577
11578 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11579
11580         * config/arm/arm.md (enabled): Test the value of arch_enabled
11581         rather than just using it.
11582
11583 2010-08-27  Olivier Hainque  <hainque@adacore.com>
11584             Eric Botcazou  <ebotcazou@adacore.com>
11585
11586         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
11587         cover all the possible offsets from this base.
11588         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
11589
11590 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
11591
11592         PR tree-optimization/44485
11593         * calls.c (flags_from_decl_or_type): For const or pure
11594         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
11595         together with ECF_CONST resp. ECF_PURE.
11596         * builtins.c (expand_builtin): Use flags_from_decl_or_type
11597         instead of querying flags directly.
11598         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
11599         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
11600
11601 2010-08-26  Richard Guenther  <rguenther@suse.de>
11602
11603         PR tree-optimization/45255
11604         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
11605         and externals are also invariant.
11606
11607 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11608
11609         PR rtl-optimization/44858
11610         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
11611         newi2pat, make sure they don't affect newpat.
11612
11613         PR rtl-optimization/45400
11614         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
11615         SUBREG_REG if both modes are of MODE_INT class.
11616
11617 2010-08-25  Julian Brown  <julian@codesourcery.com>
11618
11619         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
11620         * config/arm/arm.md (generic_sched): No for Cortex-A5.
11621         (generic_vfp): Likewise.
11622         (cortex-a5.md): Include.
11623         * config/arm/cortex-a5.md: New.
11624
11625 2010-08-25  Richard Guenther  <rguenther@suse.de>
11626
11627         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
11628         * gimple.c (gimple_get_alias_set): Remove special handling
11629         for pointers.
11630
11631 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11632
11633         PR middle-end/45355
11634         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
11635         dead_or_set_p when computing i0_feeds_i2_n.
11636
11637         * combine.c (find_split_point): Undo canonicalization of multiply-add
11638         to (minus x (mult)) when it seems likely that this will increase the
11639         chances of a split.
11640
11641 2010-08-25  Richard Guenther  <rguenther@suse.de>
11642
11643         PR lto/44562
11644         * lto-streamer.c (lto_record_common_node): Do not mess with
11645         TYPE_CANONICAL when not in lto.
11646         * gimple.c (gimple_register_type): Likewise.
11647
11648 2010-08-25  Richard Guenther  <rguenther@suse.de>
11649
11650         PR tree-optimization/45316
11651         * tree-ssa-pre.c (eliminate): Properly clean EH info.
11652
11653 2010-08-25  Richard Guenther  <rguenther@suse.de>
11654
11655         PR tree-optimization/45393
11656         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
11657         and clean EH info.  Avoid SSA update.
11658         (execute_cse_sincos): Cleanup the CFG if it has changed.
11659
11660 2010-08-25  Richard Guenther  <rguenther@suse.de>
11661
11662         PR middle-end/45379
11663         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
11664         TARGET_MEM_REF in alignment computation.
11665
11666 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11667
11668         PR tree-optimization/45059
11669         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
11670         type conversions from newop{1,2}.  Assert t is a comparison and
11671         newop{1,2} after the stripping are gimple vals.
11672
11673 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
11674
11675         * config/arm/iterators.md (VU, SE, V_widen_l): New.
11676         (V_unpack, US): New.
11677         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
11678         (vec_unpack<US>_lo_<mode>): Likewise.
11679         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
11680         (neon_vec_unpack<US>_lo_<mode>): Likewise.
11681         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
11682         (vec_widen_<US>mult_hi_<mode>): Likewise.
11683         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
11684         (neon_vec_<US>mult_hi_<mode>"): Likewise.
11685         (neon_unpack<US>_<mode>): Widening move intermediate step for
11686         vectorizing without -mvectorize-with-neon-quad.
11687         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
11688         for vectorizing without -mvectorize-with-neon-quad.
11689         * config/arm/predicates.md (vect_par_constant_high): Check for
11690         high-half lanes of a vector.
11691         (vect_par_constant_low): Check for low-half lanes of a vector.
11692
11693 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11694
11695         * tree-if-conv.c (struct ifc_dr): New.
11696         (IFC_DR): New.
11697         (DR_WRITTEN_AT_LEAST_ONCE): New.
11698         (DR_RW_UNCONDITIONALLY): New.
11699         (memref_read_or_written_unconditionally): Use the cached values
11700         when possible.
11701         (write_memref_written_at_least_once): Same.
11702         (if_convertible_loop_p): Initialize and free DR->aux fields.
11703
11704 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11705
11706         * gimple.c (gimple_could_trap_p_1): Not static anymore.
11707         Pass an extra bool parameter include_mem.
11708         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
11709         (gimple_assign_rhs_could_trap_p): Same.
11710         * gimple.h (gimple_could_trap_p_1): Declared.
11711         * tree-data-ref.h (same_data_refs_base_objects): New.
11712         (same_data_refs): New.
11713         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
11714         (write_memrefs_written_at_least_once): New.
11715         (ifcvt_memrefs_wont_trap): New.
11716         (operations_could_trap): New.
11717         (ifcvt_could_trap_p): New.
11718         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
11719         Gets a vector of data refs.
11720         (if_convertible_stmt_p): Same.
11721         (if_convertible_loop_p_1): New.
11722         (if_convertible_loop_p): Call if_convertible_loop_p_1.
11723
11724 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11725
11726         * common.opt (ftree-loop-if-convert-stores): New flag.
11727         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
11728         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
11729         the created statement before GSI.
11730         (if_convertible_phi_p): Allow virtual phi nodes when
11731         flag_loop_if_convert_stores is set.
11732         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
11733         Do not handle types that do not match is_gimple_reg_type.
11734         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
11735         when flag_loop_if_convert_stores is set, as LHS can contain
11736         memory refs.
11737         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
11738         to if_convertible_gimple_assign_stmt_p.
11739         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
11740         (replace_phi_with_cond_gimple_assign_stmt): Renamed
11741         predicate_scalar_phi.  Do not handle virtual phi nodes.
11742         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
11743         Call predicate_scalar_phi.
11744         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
11745         just after the labels for flag_loop_if_convert_stores, otherwise
11746         insert the predicate in the end of the BB.
11747         (predicate_mem_writes): New.
11748         (combine_blocks): Call predicate_all_scalar_phis.  When
11749         flag_loop_if_convert_stores is set, call predicate_mem_writes.
11750         (tree_if_conversion): Call mark_sym_for_renaming when
11751         flag_loop_if_convert_stores is set.
11752         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
11753         flag_loop_if_convert_stores is set.
11754
11755 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
11756
11757         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
11758         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
11759         (pa_function_value): Make static.
11760         (override_options): Rename to...
11761         (pa_option_override): ...this. Make static.
11762         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
11763         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
11764         TARGET_OPTION_OVERRIDE): Define.
11765         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
11766         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
11767         Remove.
11768         * config/pa/pa-protos.h (override_options): Remove.
11769
11770 2010-08-24  Richard Guenther  <rguenther@suse.de>
11771
11772         PR middle-end/45379
11773         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
11774         if addr->index is NULL or zero.
11775         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
11776         TARGET_MEM_REF more properly.
11777         (indirect_ref_may_alias_decl_p): Likewise.
11778         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
11779         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
11780
11781 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
11782
11783         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
11784         (m32c_override_options): Rename to...
11785         (m32c_option_override): ...this. Make static.
11786         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
11787         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
11788         Remove.
11789         * config/m32c/m32c-protos.h (m32c_override_options,
11790         m32c_function_value_regno_p): Remove.
11791
11792 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
11793
11794         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
11795         Fix a typo in a previous commit.
11796
11797 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
11798
11799         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
11800         Pre-initialize innerloop_iters to one.
11801
11802 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
11803
11804         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
11805         existing static function global.
11806
11807         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
11808         is changed to global.
11809
11810         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
11811         may_be_nonaddressable_p on base, and don't collect this reference
11812         if the address of the base could not be taken.
11813
11814 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11815
11816         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
11817         enable the compiler to autovectorize mathmetical functions for
11818         power7 using the Mathematical Acceleration Subsystem library.
11819
11820         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
11821         handle which vector math library we have.
11822         (rs6000_override_options): Add -mveclibabi=mass support.
11823         (rs6000_builtin_vectorized_libmass): New function to handle auto
11824         vectorizing math functions that are in the MASS library.
11825         (rs6000_builtin_vectorized_function): Call it.
11826
11827         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
11828         -mveclibabi=mass.
11829
11830 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11831
11832         PR boehm-gc/34544
11833         * gthr-posix.h (__gthread_active_init): Delete.
11834         (__gthread_active_p): Do activity check here.
11835         Don't include errno.h on hppa-hpux.  Update comment.
11836         * gthr-posix95.h (__gthread_active_init): Delete.
11837         (__gthread_active_p): Do activity check here.
11838         Don't include errno.h on hppa-hpux.  Update comment.
11839         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
11840         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
11841         add -lpthread when -mt or -pthread is specified.
11842         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
11843         (LINK_GCC_C_SEQUENCE_SPEC): Define.
11844         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
11845         (stublib.c, pthread_default_stacksize_np-stub.o,
11846         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
11847         $(T)libgcc_stub.a): Add methods.
11848         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
11849         (stublib.c, pthread_default_stacksize_np-stub.o,
11850         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
11851         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
11852         pthread_mutex_unlock): New stubs.
11853
11854 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
11855
11856         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
11857         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
11858         options.
11859         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
11860         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
11861         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
11862         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
11863         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
11864         "-l".
11865         * cppspec.c: Include opts.h.
11866         (lang_specific_driver): Use cl_decoded_option structures.
11867         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
11868         * doc/tm.texi: Regenerate.
11869         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
11870         (driver_handle_option): Allow driver options needing no special
11871         processing.
11872         (process_command): Decode options before call to
11873         lang_specific_driver.  Pass decoded options to
11874         lang_specific_driver.
11875         * gcc.h (lang_specific_driver): Update prototype.
11876         * gccspec.c: Include opts.h.
11877         (lang_specific_driver): Use cl_decoded_option structures.
11878         * opts-common.c (option_ok_for_language, generate_option,
11879         generate_option_input_file): New.
11880         (decode_cmdline_option): Use option_ok_for_language.
11881         (decode_cmdline_options_to_array): Use generate_option_input_file.
11882         (handle_generated_option): Use generate_option.
11883         * opts.h (generate_option, generate_option_input_file): Declare.
11884
11885 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
11886
11887         * config/mips/mips.c (mips_override_options): Rename to...
11888         (mips_option_override): ...this. Make static.
11889         (TARGET_OPTION_OVERRIDE): Define.
11890         (mips_in_small_data_p): Update comment.
11891         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
11892         (FIXED_REGISTERS): Update comment.
11893         * config/mips/mips-protos.h (mips_override_options): Remove.
11894
11895 2010-08-21  Olivier Hainque  <hainque@adacore.com>
11896
11897         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
11898
11899 2010-08-21  Olivier Hainque  <hainque@adacore.com>
11900
11901         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
11902         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
11903
11904 2010-08-20  Jan Hubicka  <jh@suse.cz>
11905
11906         * tree-pass.h (pass_ipa_cdtor_merge): New function.
11907         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
11908         heap allocated.
11909         (record_cdtor_fn): Move to ipa.c; do not test for
11910         have_ctors_dtors.
11911         (build_cdtor): Move to ipa.c; add code avoiding construction
11912         when target have ctors/dtors and there is only one ctor/dtor at given
11913         priority.
11914         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
11915         sort; reverse order of constructors.
11916         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
11917         (cgraph_finalize_function): Do not call record_cdtor_fn.
11918         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
11919         (cgraph_build_static_cdtor): Move to ipa.c.
11920         * ipa.c: Include target.h and tree-iterator.h.
11921         (cgraph_build_static_cdtor, static_ctors, static_dtors,
11922         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
11923         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
11924         pass_ipa_cdtor_merge): New.
11925         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
11926         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
11927         bounds access.
11928
11929 2010-08-20  Jan Hubicka  <jh@suse.cz>
11930
11931         PR c++/45307
11932         PR c++/17736
11933         * cgraph.h (cgraph_only_called_directly_p,
11934         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
11935         static cdtors.
11936         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
11937         are not needed.
11938         (cgraph_finalize_function): Static cdtors are reachable.
11939         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
11940
11941 2010-08-20  Jan Hubicka  <jh@suse.cz>
11942
11943         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
11944         flag_wpa.
11945         * lto-streamer-out.c (lto_output): Likewise.
11946         * passes.c (ipa_write_optimization_summaries): Initialize statement
11947         uids.
11948
11949 2010-08-20  Olivier Hainque  <hainque@adacore.com>
11950
11951         * tree.h (alias_diag_flags): New enum.
11952         (alias_pair): Add an 'emitted_diags' field.
11953         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
11954         (assemble_alias): Initialize emitted_diags of new pairs.
11955
11956 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
11957
11958         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
11959         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11960         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
11961         (STACK_CHECK_PROTECT): Define.
11962         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
11963         (output_probe_stack_range): Likewise.
11964         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
11965         builtin stack checking is enabled.
11966         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
11967         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
11968         (probe_stack_range): New insn.
11969
11970 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
11971
11972         PR target/45336
11973         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
11974         short first.
11975
11976         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
11977         char first.
11978
11979 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11980
11981         PR target/45336
11982         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
11983         to cover zero extension into 64-bit register.
11984         (*sse2_pextrw): Likewise.
11985         (*sse4_1_pextrd_zext): New insn.
11986
11987 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
11988
11989         revert r163410, partially revert r163267.
11990         * config/rs6000/darwin.h (LIB_SPEC): Remove.
11991         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
11992         Darwin versions.
11993
11994 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
11995
11996         PR middle-end/44974
11997         * builtins.c (expand_builtin): Don't optimize away
11998         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
11999
12000 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
12001
12002         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
12003         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
12004         alternative 1 of operand 2.
12005
12006 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12007             Paolo Bonzini  <bonzini@gnu.org>
12008
12009         * simplify-rtx.c (simplify_unary_operation_1): Optimize
12010         (sign_extend (zero_extend (...)) and
12011         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
12012
12013 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12014
12015         PR rtl-optimization/45353
12016         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
12017         after bb_note is a BARRIER.
12018
12019 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
12020
12021         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
12022         linking libgcc.a.
12023
12024 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12025             Michael Matz  <matz@suse.de>
12026
12027         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
12028
12029 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12030
12031         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
12032         (ggc_mark_roots): ...here.
12033
12034 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12035
12036         * vec.h (FOR_EACH_VEC_ELT): Define.
12037         * c-decl.c: Use it.
12038         * cfgloop.c: Likewise.
12039         * cfgloopmanip.c: Likewise.
12040         * cgraph.c: Likewise.
12041         * cgraphunit.c: Likewise.
12042         * combine.c: Likewise.
12043         * config/bfin/bfin.c: Likewise.
12044         * config/mips/mips.c: Likewise.
12045         * config/rs6000/rs6000.c: Likewise.
12046         * dbxout.c: Likewise.
12047         * df-scan.c: Likewise.
12048         * dominance.c: Likewise.
12049         * dse.c: Likewise.
12050         * dwarf2out.c: Likewise.
12051         * except.c: Likewise.
12052         * expr.c: Likewise.
12053         * function.c: Likewise.
12054         * gcse.c: Likewise.
12055         * genattr.c: Likewise.
12056         * ggc-common.c: Likewise.
12057         * gimplify.c: Likewise.
12058         * graphite-blocking.c: Likewise.
12059         * graphite-clast-to-gimple.c: Likewise.
12060         * graphite-dependences.c: Likewise.
12061         * graphite-interchange.c: Likewise.
12062         * graphite-poly.c: Likewise.
12063         * graphite-scop-detection.c: Likewise.
12064         * graphite-sese-to-poly.c: Likewise.
12065         * graphite.c: Likewise.
12066         * haifa-sched.c: Likewise.
12067         * ifcvt.c: Likewise.
12068         * implicit-zee.c: Likewise.
12069         * ipa-prop.c: Likewise.
12070         * ipa-struct-reorg.c: Likewise.
12071         * ipa.c: Likewise.
12072         * ira-build.c: Likewise.
12073         * ira-color.c: Likewise.
12074         * ira-emit.c: Likewise.
12075         * lambda-code.c: Likewise.
12076         * loop-invariant.c: Likewise.
12077         * loop-unroll.c: Likewise.
12078         * lower-subreg.c: Likewise.
12079         * lto-cgraph.c: Likewise.
12080         * lto-opts.c: Likewise.
12081         * lto-streamer-in.c: Likewise.
12082         * lto-streamer-out.c: Likewise.
12083         * lto-streamer.c: Likewise.
12084         * lto-symtab.c: Likewise.
12085         * matrix-reorg.c: Likewise.
12086         * opts.c: Likewise.
12087         * predict.c: Likewise.
12088         * print-tree.c: Likewise.
12089         * sdbout.c: Likewise.
12090         * sel-sched-dump.c: Likewise.
12091         * sel-sched-ir.c: Likewise.
12092         * sel-sched.c: Likewise.
12093         * sese.c: Likewise.
12094         * stor-layout.c: Likewise.
12095         * tree-cfg.c: Likewise.
12096         * tree-cfgcleanup.c: Likewise.
12097         * tree-chrec.c: Likewise.
12098         * tree-data-ref.c: Likewise.
12099         * tree-emutls.c: Likewise.
12100         * tree-inline.c: Likewise.
12101         * tree-into-ssa.c: Likewise.
12102         * tree-loop-distribution.c: Likewise.
12103         * tree-loop-linear.c: Likewise.
12104         * tree-mudflap.c: Likewise.
12105         * tree-outof-ssa.c: Likewise.
12106         * tree-parloops.c: Likewise.
12107         * tree-predcom.c: Likewise.
12108         * tree-pretty-print.c: Likewise.
12109         * tree-scalar-evolution.c: Likewise.
12110         * tree-ssa-live.c: Likewise.
12111         * tree-ssa-loop-im.c: Likewise.
12112         * tree-ssa-loop-ivcanon.c: Likewise.
12113         * tree-ssa-loop-ivopts.c: Likewise.
12114         * tree-ssa-loop-manip.c: Likewise.
12115         * tree-ssa-loop-niter.c: Likewise.
12116         * tree-ssa-loop-prefetch.c: Likewise.
12117         * tree-ssa-phiprop.c: Likewise.
12118         * tree-ssa-pre.c: Likewise.
12119         * tree-ssa-reassoc.c: Likewise.
12120         * tree-ssa-sccvn.c: Likewise.
12121         * tree-ssa-structalias.c: Likewise.
12122         * tree-ssa.c: Likewise.
12123         * tree-vect-data-refs.c: Likewise.
12124         * tree-vect-loop-manip.c: Likewise.
12125         * tree-vect-loop.c: Likewise.
12126         * tree-vect-patterns.c: Likewise.
12127         * tree-vect-slp.c: Likewise.
12128         * tree-vect-stmts.c: Likewise.
12129         * tree-vrp.c: Likewise.
12130         * tree.c: Likewise.
12131         * value-prof.c: Likewise.
12132         * var-tracking.c: Likewise.
12133         * varasm.c: Likewise.
12134         * vmsdbgout.c: Likewise.
12135
12136 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
12137             Richard Guenther  <richard.guenther@gmail.com>
12138
12139         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
12140         copy the src value and return a copy.
12141         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
12142         (C++ Volatiles): Adjust to describe C++ semantics only.
12143
12144 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
12145
12146         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
12147         be zero or nonzero.
12148         * doc/tm.texi: Regenerate.
12149         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
12150         * df-scan.c (df_get_exit_block_use_set), reginfo.c
12151         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
12152         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
12153         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
12154         to 1.
12155
12156 2010-08-20  Olivier Hainque  <hainque@adacore.com>
12157
12158         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
12159         an extra nop past a sibling call at the very end.
12160
12161 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12162
12163         PR bootstrap/45350
12164         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
12165         a comment.
12166
12167 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12168
12169         * target.def (function_arg, function_incoming_arg): Remove const
12170         qualifier on CUMULATIVE_ARGS parameter.
12171         * targhooks.h (default_function_arg, default_function_incoming_arg):
12172         Likewise.
12173         * targhooks.c (default_function_arg, default_function_incoming_arg):
12174         Likewise.
12175         * config/i386/i386.c (ix86_function_arg): Likewise.
12176
12177 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
12178
12179         PR target/45336
12180         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
12181         SIGN_EXTENDs or ZERO_EXTENDs.
12182
12183 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12184
12185         PR target/42172
12186         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
12187         Take its cost into account if nonnull.
12188         (insn_a_feeds_b): New static function.
12189         (combine_instructions): Look for four-insn combinations.
12190         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
12191         them into account when computing all_adjacent and looking for other
12192         uses.
12193         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
12194         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
12195         (try_combine): New arg I0.  Handle four-insn combinations.
12196         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
12197         like ELIM_I1.
12198
12199 2010-08-19  Jason Merrill  <jason@redhat.com>
12200
12201         PR c++/45307
12202         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
12203         if ctor is empty.
12204         (gimplify_modify_expr_rhs): Adjust.
12205
12206 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12207
12208         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
12209         bitmap_bit_p.
12210         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
12211         * dominance.c (iterate_fix_dominators): Likewise.
12212         * dse.c (set_usage_bits): Likewise.
12213         (set_position_unneeded, record_store): Likewise.
12214         * gimple-fold.c (get_maxval_strlen): Likewise.
12215         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
12216         * ipa-inline.c (update_caller_keys): Likewise.
12217         * ipa-split.c (verify_non_ssa_vars): Likewise.
12218         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
12219         (close_type_exposed_parameter, close_type_full_escape): Likewise.
12220         (close_addressof_down): Likewise.
12221         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
12222         (setup_allocno_left_conflicts_size): Likewise.
12223         (ira_reassign_conflict_allocnos): Likewise.
12224         (ira_reassign_pseudos): Likewise.
12225         * ira-emit.c (change_loop): Likewise.
12226         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
12227         * lto-streamer-out.c (write_symbol): Likewise.
12228         * predict.c (expr_expected_value_1): Likewise.
12229         * regstat.c (regstat_bb_compute_ri): Likewise.
12230         * sel-sched.c (create_block_for_bookkeeping): Likewise.
12231         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
12232         * stmt.c (expand_case): Likewise.
12233         * tree-eh.c (emit_eh_dispatch): Likewise.
12234         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
12235         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
12236         Likewise.
12237         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
12238         (rdg_build_components): Likewise.
12239         * tree-object-size.c (collect_object_sizes_for): Likewise.
12240         * tree-sra.c (convert_callers): Likewise.
12241         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
12242         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
12243         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
12244
12245 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12246
12247         * config/i386/i386.md (*lea_1): Use P mode iterator.
12248         (lea add splitter): Also handle DImode operands.
12249         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
12250         predicate.  Do not use ix86_lea_for_add_ok.
12251         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
12252         (lea ashift splitter): Also handle DImode operands.
12253         (DImode lea ashift splitter): Remove splitter.
12254
12255 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12256
12257         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
12258         ix86_binary_operator_ok.
12259
12260 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
12261
12262         PR rtl-optimization/44691
12263         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
12264         is not a register.
12265
12266 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12267
12268         PR target/45070
12269         * config/arm/arm.c (arm_output_epilogue): Ensure that return
12270          value of size 1-3 is handled correctly.
12271
12272 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12273
12274         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
12275         type for the conditional has wide enough range.
12276
12277 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12278
12279         PR target/45327
12280         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
12281         ix86_binary_operator_ok.
12282
12283 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12284
12285         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
12286         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
12287         code to output insn mnemonic.  Fix comment.
12288         (*addsi_1_zext): Add r-r-0 alternative 1.
12289         <TYPE_LEA>: Split insn to lea.
12290         <default>: Handle alternative 1.
12291         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
12292         multi-level if_then_else RTX to set "type" attribute.
12293         <default>: Handle alternative 2.
12294         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
12295         Use cond RTX instead of multi-level if_then_else RTX to set
12296         "type" attribute.
12297         <default>: Handle alternatives 2 and 4.
12298         (lea splitters): Update calls to ix86_lea_for_add_ok.
12299
12300         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
12301         argument.
12302         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
12303
12304 2010-08-18  Richard Guenther  <rguenther@suse.de>
12305
12306         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
12307         use operand helpers.
12308
12309 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
12310
12311         PR middle-end/45292
12312         * optabs.c (expand_bool_compare_and_swap): Expand pending
12313         pops before trying the optab.
12314
12315 2010-08-18  Yao Qi  <yao@codesourcery.com>
12316
12317         PR target/45094
12318         * config/arm/arm.c (output_move_double): Fix typo generating
12319         instructions ('ldr'->'str').
12320
12321 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
12322
12323         PR rtl-optimization/42575
12324         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
12325         live ranges.
12326
12327 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12328
12329         * config/arm/arm-protos.h (arm_expand_sync): New.
12330         (arm_output_memory_barrier, arm_output_sync_insn): New.
12331         (arm_sync_loop_insns): New.
12332         * config/arm/arm.c (FL_ARCH7): New.
12333         (FL_FOR_ARCH7): Include FL_ARCH7.
12334         (arm_arch7): New.
12335         (arm_print_operand): Support %C markup.
12336         (arm_legitimize_sync_memory): New.
12337         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
12338         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
12339         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
12340         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
12341         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
12342         (arm_process_output_sync_insn, arm_output_sync_insn): New.
12343         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
12344         * config/arm/arm.h (struct arm_sync_generator): New.
12345         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
12346         (TARGET_HAVE_MEMORY_BARRIER): New.
12347         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
12348         * config/arm/arm.md: Include sync.md.
12349         (UNSPEC_MEMORY_BARRIER): New.
12350         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
12351         (VUNSPEC_SYNC_OP):New.
12352         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
12353         (sync_result, sync_memory, sync_required_value): New attributes.
12354         (sync_new_value, sync_t1, sync_t2): Likewise.
12355         (sync_release_barrier, sync_op): Likewise.
12356         (length): Add logic to length attribute defintion to call
12357         arm_sync_loop_insns when appropriate.
12358         * config/arm/sync.md: New file.
12359
12360 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12361
12362         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
12363         ENABLE_TREE_CHECKING.
12364         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
12365         and GCC >= 4.3.
12366
12367 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
12368
12369         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
12370         or optimizing for size, always avoid lea if possible.
12371
12372         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
12373
12374 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
12375
12376         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
12377         Dunmmy function with NULL return unless the target is
12378         OSX >= 10.6 (Darwin10).
12379
12380 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
12381
12382         * gcc.c (spec_function): Add remove-outfile.
12383         (remove_outfile_spec_function): New function.
12384         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
12385         * invoke.texi (replace-outfile): Document.
12386
12387 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
12388
12389         PR target/45296
12390         * reginfo.c (globalize_reg): Reject stack registers.
12391
12392 2010-08-17  Richard Guenther  <rguenther@suse.de>
12393
12394         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
12395         list of conditional equivalences.
12396         (free_all_edge_infos): Adjust.
12397         (record_equivalences_from_incoming_edge): Likewise.
12398         (record_cond): Likewise.
12399         (build_and_record_new_cond): Likewise.
12400         (record_conditions): Likewise.
12401         (dom_opt_leave_block): Likewise.
12402
12403 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
12404
12405         * doc/invoke.texi (ms-extension): Add documentation.
12406
12407 2010-08-17  Richard Guenther  <rguenther@suse.de>
12408
12409         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
12410
12411 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
12412
12413         PR c/40563
12414         * c-decl.c (diagnose_uninitialized_cst_member): New function.
12415         (finish_decl): Use it to issue a -Wc++-compat warning about
12416         uninitialized const field in struct or union.
12417
12418         (finish_struct): Use strip_array_types.
12419
12420 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12421
12422         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
12423         functions.
12424         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
12425         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
12426         call block_nreverse here.
12427         (blocks_nreverse): Rename decl temporary to block.
12428
12429 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
12430
12431         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
12432         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
12433         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
12434         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
12435         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
12436         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
12437         thumb2_iorsi3): Delete.
12438         (orsi_notsi_si): No longer a named pattern.
12439         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
12440         * config/arm/predicates.md (shift_amount_operand): New.
12441         (mult_operator): New.
12442         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
12443         attr enabled): New.
12444         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
12445         arch matches t2.
12446         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
12447         (not_shiftsi_compare0): Likewise, renamed from
12448         arm_notsi_shiftsi_compare0.
12449         (not_shiftsi_compare0_scratch): Likweise, renamed from
12450         arm_notsi_shiftsi_compare0_scratch.
12451         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
12452         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
12453         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
12454         so that the register alternative is disabled when the shift_operator
12455         is MULT.  Use "M" as the constraint for constants.
12456         (arith_shiftsi splitter): Enable for TARGET_32BIT.
12457         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
12458         constraint for constants.
12459         (arith_shiftsi_compare0_scratch): Likewise.
12460         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
12461         Handle Thumb2 alternative.
12462
12463 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12464
12465         * doc/options.texi (NoDriverArg): Document.
12466         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
12467         -MDX and -MMDX.
12468         * opt-functions.awk (switch_flags): Handle NoDriverArg.
12469         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
12470         marking for CL_NO_DRIVER_ARG options when in the driver.
12471         * opts.h (CL_NO_DRIVER_ARG): Define.
12472         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12473         CL_COMMON): Update values.
12474
12475 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12476
12477         * common.opt: Add driver options.
12478         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
12479         * doc/options.texi (Driver, RejectDriver): Document.
12480         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
12481         print_prog_name, print_multi_directory, print_sysroot,
12482         print_multi_os_directory, print_multi_lib,
12483         print_sysroot_headers_suffix, report_times, combine_flag,
12484         use_pipes, wrapper_string): Remove.
12485         (save_switch, driver_unknown_option_callback,
12486         driver_wrong_lang_callback, driver_post_handling_callback,
12487         driver_handle_option): New.
12488         (spec_lang, last_language_n_infiles): Make file-scope static
12489         instead of local to process_command.
12490         (process_command): Use decode_cmdline_options_to_array and
12491         read_cmdline_option for option processing.  Compute have_c in
12492         prescan of decoded options.
12493         * opt-functions.awk (switch_flags): Handle Driver and
12494         RejectDriver.
12495         (var_type, var_type_struct): Handle Separate options as generating
12496         const char * variables.
12497         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
12498         CL_TARGET to be passed by caller if required.
12499         (decode_cmdline_options_to_array): Update comment.
12500         * opts.c (complain_wrong_lang): Handle options only valid for the
12501         driver.
12502         (decode_options): Update call to decode_cmdline_options_to_array.
12503         (print_filtered_help): Ignore driver-only options.
12504         (print_specific_help): Ignore CL_DRIVER.
12505         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
12506         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
12507         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
12508         Update values.
12509
12510 2010-08-16  Richard Guenther  <rguenther@suse.de>
12511
12512         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12513         TARGET_MEM_REF a bit.
12514         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
12515         (create_mem_ref_raw): Always create TMR_OFFSET, store the
12516         alias pointer type via it.
12517         (copy_mem_ref_info): Adjust.
12518         (maybe_fold_tmr): Likewise.
12519         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
12520         (reference_alias_ptr_type): Likewise.
12521         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
12522         adjust documentation of TMR_OFFSET operand.
12523         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
12524         use the alias pointer type.
12525         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
12526         initialize mem attrs but the TMR itself.
12527         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
12528         similar to MEM_REF.
12529         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
12530         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
12531         (unshare_and_remove_ssa_names): Likewise.
12532         (copy_ref_info): Adjust.
12533         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
12534         TARGET_MEM_REF case.
12535         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
12536         at TMR_ORIGINAL.
12537         * tree.h (TMR_ORIGINAL): Remove.
12538         * gimple.c (get_base_address): For TARGET_MEM_REF with a
12539         symbol return that.
12540         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
12541         with a symbol.
12542         (get_addr_base_and_unit_offset): Likewise.
12543         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
12544         TARGET_MEM_REFs.
12545         (indirect_ref_may_alias_decl_p): Likewise.
12546         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
12547
12548 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
12549
12550         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
12551         with GCC version 4.6, the default setting (when not optimizing
12552         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
12553         been changed to -fomit-frame-pointer.
12554
12555 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
12556
12557         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
12558         Darwin10.  Do not link libgcc.a for Darwin >= 9.
12559
12560 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
12561
12562         * doc/invoke.texi (Warning Options): Fix terminology and markup
12563         in the description of how unknown warning options are handled.
12564
12565 2010-08-15  Ira Rosen  <irar@il.ibm.com>
12566
12567         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
12568         in basic blocks.
12569         (vect_supportable_dr_alignment): Check alignment for basic blocks.
12570         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
12571         data references.
12572         (vect_bb_vectorization_profitable_p): New function.
12573         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
12574         check if it's worthwhile to vectorize the basic block.
12575
12576 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
12577
12578         * reload.h (register_move_cost, memory_move_secondary_cost,
12579         secondary_reload_class): Adjust prototype.
12580         * rtl.h (reg_class_subset_p): Adjust prototype.
12581         * reload.c (secondary_reload_class): Change arguments type from
12582         enum reg_class to reg_class_t. Change result type to reg_class_t.
12583         * reginfo.c (register_move_cost, reg_class_subset_p): Change
12584         arguments type from enum reg_class to reg_class_t.
12585         (memory_move_secondary_cost): Change arguments type from
12586         enum reg_class to reg_class_t. Change type of saved_flags to
12587         reg_class_t.
12588
12589         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12590         Remove macros.
12591         (mips_cost): Remove.
12592         (struct mips_rtx_cost_data): Moved to mips.c.
12593         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
12594         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
12595         (mips_cost): Make static.
12596         (mips_canonicalize_move_class): Change argument type to reg_class_t.
12597         Change result type to reg_class_t.
12598         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
12599         type from enum reg_class to reg_class_t.
12600         (mips_register_move_cost): Make static. Change arguments
12601         type from enum reg_class to reg_class_t.
12602         (mips_memory_move_cost): New function.
12603         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12604
12605 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
12606
12607         PR rtl-optimization/43358
12608         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
12609         of a single hard register, using simplify_subreg_regno to decide
12610         what that register should be.
12611
12612 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
12613
12614         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
12615         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
12616         (loongson_pmull<V_suffix>): Rename to...
12617         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
12618
12619 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
12620
12621         * configure.ac: Enable -fomit-frame-pointer on darwin
12622         which support dwarf2.
12623         * config/i386/i386.c (override_options): Same.
12624
12625 2010-08-13  Jie Zhang  <jie@codesourcery.com>
12626
12627         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
12628
12629 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
12630
12631         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
12632         -MMD.
12633
12634 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
12635
12636         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
12637         up dot_prod pattern searching if a stmt is outside the loop.
12638
12639 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
12640             Uros Bizjak  <ubizjak@gmail.com>
12641
12642         * config.gcc: Handle --enable-frame-pointer.
12643
12644         * configure.ac: Add --enable-frame-pointer.
12645         * configure: Regenerated.
12646
12647         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
12648         (override_options): If not configured with --enable-frame-pointer,
12649         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
12650         optimizing for size), -fasynchronous-unwind-tables and
12651         -maccumulate-outgoing-args by default.
12652
12653 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12654
12655         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
12656
12657         PR middle-end/45262
12658         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
12659         -a overflows.  Normalize the range.
12660
12661 2010-08-12  Richard Guenther  <rguenther@suse.de>
12662
12663         PR tree-optimization/45232
12664         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
12665         for types with undefined overflow.
12666         (reassociate_bb): Allow re-associating of bit and min/max
12667         operations for types with undefined overflow.
12668         * tree-ssa-forwprop.c (associate_plusminus): New function.
12669         (tree_ssa_forward_propagate_single_use_vars): Call it.
12670
12671 2010-08-12  Richard Guenther  <rguenther@suse.de>
12672
12673         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
12674         * tree-ssa-alias.c (get_ptr_info): Move ...
12675         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
12676         align and misalign fields conservatively.
12677         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
12678         derive alignment information.
12679         (evaluate_stmt): Derive alignment information from memory
12680         allocation functions.
12681         * tree.h (get_pointer_alignment): Make unsigned.
12682         * builtins.c (get_object_alignment): Use alignment information we
12683         have computed for pointers.
12684         (get_pointer_alignment): Likewise.  Make conservative, return
12685         and unsigned value.
12686         (expand_builtin_strlen): Adjust.
12687         (expand_builtin_memcmp): Likewise.
12688         (expand_builtin_strcmp): Likewise.
12689         (expand_builtin_strncmp): Likewise.
12690         (get_builtin_sync_mem): Use at least mode alignment.
12691         (fold_builtin_memset): Adjust.
12692         (fold_builtin_memory_op): Likewise.
12693         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
12694         information also dump pointer alignment knowledge.
12695         (dump_gimple_stmt): Likewise.
12696
12697 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
12698
12699         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
12700         (EMPTY_FIELD_BOUNDARY): Remove.
12701         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
12702
12703 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12704
12705         PR debug/45259
12706         * caller-save.c (save_call_clobbered_regs): Only swap notes with
12707         DEBUG_INSNs if n_regs_saved.
12708
12709 2010-08-12  Wei Guozhi  <carrot@google.com>
12710
12711         PR target/44999
12712         * config/arm/arm.md (andsi3): Change to zero extension if possible.
12713         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
12714
12715 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
12716
12717         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
12718
12719         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
12720
12721 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12722
12723         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
12724         the case removed in the previous patch, when the only phi argument
12725         is defined in the same loop as the phi node itself.  Handle it
12726         separately from the invariant case by both propagating it outside
12727         the region and replacing the phi node with an assign.
12728
12729 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12730
12731         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
12732         constant phi nodes with one argument are is_gimple_min_invariant
12733         and SSA_NAME_IS_DEFAULT_DEF.
12734
12735 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12736
12737         * graphite-cloog-util.c (oppose_constraint):
12738         Extend loop counter's value range (CLOOG_ORG).
12739         (cloog_matrix_to_ppl_constraint): Same.
12740         (new_Constraint_System_from_Cloog_matrix): Same.
12741         * graphite-cloog-compat.h (matrix_num_type): New.
12742
12743 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12744
12745         * graphite.c (graphite_initialize): Do not initialize
12746         CLooG and initialize the Parma Polyhedra Library
12747         manually when using CLOOG_ORG.
12748         (graphite_finalize): Do not finalize CLooG and finalize
12749         the Parma Polyhedra Library manually when using CLOOG_ORG.
12750         * graphite-cloog-compat.h (cloog_initialize): Hide function
12751         when using CLOOG_ORG.
12752         (cloog_finalize): Same.
12753
12754 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12755
12756         * graphite-clast-to-gimple.c (free_scattering): Change
12757         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
12758         (CLOOG_ORG).
12759         (build_cloog_prog): Same.
12760         * graphite-cloog-compat.h (cloog_domain): Removed.
12761         (cloog_scattering): New.
12762         (cloog_set_domain): Removed.
12763         (cloog_set_scattering): New.
12764         (cloog_next_domain): Removed.
12765         (cloog_next_scattering): New.
12766         (cloog_set_next_domain): Removed.
12767         (cloog_set_next_scattering): New.
12768         (CloogScatteringList): New.
12769         (CloogScattering): New.
12770         (cloog_scattering_free): New.
12771         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
12772         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
12773         New.
12774
12775 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12776
12777         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
12778         CloogState.
12779         (set_cloog_options): Same.
12780         (print_clast_stmt): Same.
12781         (scop_to_clast): Same.
12782         (print_generated_program): Same.
12783         (gloog): Same.
12784         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
12785         (scop_to_clast): Extend with CloogState.
12786         * graphite-cloog-util.c: Include graphite-cloog-compat.h
12787         (new_Cloog_Domain_from_ppl_Polyhedron):
12788         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
12789         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
12790         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
12791         * graphite-cloog-util.h (build_cloog_prog): Same.
12792         * graphite-cloog-copat.h (build_cloog_prog): New.
12793         (CloogState): New.
12794         (cloog_state_malloc): New.
12795         (cloog_state_free): New.
12796         (cloog_loop_malloc): New.
12797         (cloog_options_malloc): New.
12798         (cloog_statement_alloc): New.
12799         (cloog_domain_from_cloog_matrix): New.
12800         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
12801         (new_Cloog_Domain_from_ppl_Polyhedron): New.
12802
12803 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12804
12805         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
12806         type of NAME now depends on used CLooG version.
12807         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
12808         (gcc_type_for_clast_expr): Same.
12809         (print_clast_stmt): Replace pprint with clast_pprint.
12810         * graphite-cloog-compat.h: Provide compatibility macros for
12811         CLooG Legacy.
12812         (clast_name_p): New.
12813         (clast_expr_term): New.
12814         (clast_expr_red): New.
12815         (clast_expr_bin): New.
12816         (clast_pprint): New.
12817
12818 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12819
12820         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
12821         compatible to newer CLooG releases (CLOOG_ORG).
12822         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
12823         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
12824         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
12825         (build_cloog_prog) : New.
12826         (cloog_program_extract_scalars): New.
12827         (cloog_program_scatter): New.
12828
12829 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12830
12831         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
12832         conditionally (CLOOG_ORG).
12833         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
12834         (cloog_statement_usr): New.
12835         (cloog_domain): Same.
12836         (cloog_set_domain): Same.
12837         (cloog_next_domain): Same.
12838         (cloog_set_next_domain): Same.
12839         (cloog_program_nb_scattdims): Same.
12840         (cloog_program_set_nb_scattdims): Same.
12841         (cloog_program_names): Same.
12842         (cloog_program_set_names): Same.
12843         (cloog_program_set_context): Same.
12844         (cloog_program_set_loop): Same.
12845         (cloog_program_blocklist): Same.
12846         (cloog_program_set_blocklist): Same.
12847         (cloog_program_scaldims): Same.
12848         (cloog_program_set_scaldims): Same.
12849         (cloog_names_nb_parameters): Same.
12850         (cloog_names_set_nb_parameters): Same.
12851         (cloog_names_parameters): Same.
12852         (cloog_names_set_parameters): Same.
12853         (cloog_names_set_nb_iterators): Same.
12854         (cloog_names_set_iterators): Same.
12855         (cloog_names_set_nb_scattering): Same.
12856         (cloog_names_set_scattering): Same.
12857         (cloog_statement_set_usr): Same.
12858         (cloog_loop_set_next): Same.
12859         (cloog_loop_set_domain): Same.
12860         (cloog_loop_set_block): Same.
12861         (cloog_block_list_next): Same.
12862         (cloog_block_list_set_next):
12863         (cloog_block_list_set_block): Same.
12864
12865 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12866
12867         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
12868         a bool.
12869         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
12870         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
12871         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
12872         when something has been changed.
12873         (rewrite_commutative_reductions_out_of_ssa): Same.
12874
12875 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12876
12877         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
12878         handle the case when def is in the sese region.
12879         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
12880         for invariant expressions.
12881         (rewrite_cross_bb_phi_deps): Removed.
12882         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
12883         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
12884         rewrite_cross_bb_phi_deps.
12885
12886 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12887
12888         * graphite-sese-to-poly.c
12889         (rewrite_commutative_reductions_out_of_ssa_loop): Call
12890         scev_analyzable_p only on is_gimple_reg
12891
12892 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12893
12894         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
12895         (rewrite_close_phi_out_of_ssa): Propagate constant values or
12896         parametric expressions outside the scop region.
12897         (rewrite_cross_bb_scalar_deps): Same.
12898         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
12899
12900 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12901
12902         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
12903         SSA_NAME_DEF_STMT only on SSA_NAMEs.
12904
12905 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12906
12907         * tree-scalar-evolution.c (instantiate_scev_name): Do not
12908         instantiate default definitions.
12909
12910 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
12911             Sebastian Pop  <sebastian.pop@amd.com>
12912
12913         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
12914         (loop_exits_from_bb_p): New.
12915         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
12916         (loop_exits_from_bb_p): Declared.
12917         * graphite-scop-detection.c (scopdet_basic_block_info): Call
12918         loop_exits_to_bb_p.
12919
12920 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12921
12922         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
12923         extra parameter for the region.  Call scev_analyzable_p.
12924         (rewrite_reductions_out_of_ssa): Update call to
12925         rewrite_close_phi_out_of_ssa.
12926         (rewrite_cross_bb_phi_deps): Same.
12927         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
12928         parameter for the region.  Call scev_analyzable_p.
12929         (rewrite_commutative_reductions_out_of_ssa): Update call to
12930         rewrite_commutative_reductions_out_of_ssa_loop.
12931
12932 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12933
12934         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
12935
12936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12937
12938         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
12939         SSA scalar phi nodes that can be scev_analyzable_p.
12940
12941 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12942
12943         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
12944         handle SSA_NAME_IS_DEFAULT_DEF.
12945
12946 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12947
12948         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
12949
12950 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12951
12952         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
12953         case non close-phi nodes with one argument.
12954
12955 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12956
12957         * sese.h (scev_analyzable_p): Scevs could be expressions without
12958         chrecs and still be scev_analyzable_p.
12959
12960 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12961
12962         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
12963
12964 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12965
12966         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
12967         * cfgloop.h (struct loop): Remove single_iv field.
12968         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
12969         (scop_canonicalize_loops): Removed.
12970         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
12971         over all the loop phi nodes in loop->header.
12972         (build_poly_scop): Remove use of scop_canonicalize_loops.
12973
12974 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12975
12976         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
12977         handle GIMPLE_CALL.
12978
12979 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12980
12981         * tree-chrec.c (chrec_apply): Should only apply to the specified
12982         variable.  Also handle multivariate chains of recurrences that
12983         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
12984
12985 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12986
12987         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
12988         (debug_clast_name_indexes_1): Removed.
12989         (debug_clast_name_indexes): Removed.
12990         (pbb_to_depth_to_oldiv): Removed.
12991         (build_iv_mapping): Replace the use of rename_map with iv_map.
12992         (translate_clast_user): Remove uses of rename_map.  Allocate and
12993         free iv_map.
12994         (translate_clast_for_loop): Remove uses of rename_map.
12995         (translate_clast_for): Same.
12996         (translate_clast_guard): Same.
12997         (translate_clast): Same.
12998         (gloog): Same.
12999         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
13000         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
13001         * sese.c (set_rename): Now static.
13002         (rename_variables_in_stmt): Removed.
13003         (rename_uses): New.
13004         (is_parameter): Removed.
13005         (is_iv): Removed.
13006         (expand_scalar_variables_call): Removed.
13007         (expand_scalar_variables_ssa_name): Removed.
13008         (expand_scalar_variables_expr): Removed.
13009         (expand_scalar_variables_stmt): Removed.
13010         (expand_scalar_variables): Removed.
13011         (rename_variables): Removed.
13012         (remove_condition): Removed.
13013         (get_true_edge_from_guard_bb): Removed.
13014         (get_false_edge_from_guard_bb): Removed.
13015         (struct igp): Removed.
13016         (default_before_guard): Removed.
13017         (convert_for_phi_arg): Removed.
13018         (add_guard_exit_phis): Removed.
13019         (insert_guard_phis): Removed.
13020         (graphite_copy_stmts_from_block): Now also uses iv_map and a
13021         region.  Do not copy conditions.  Do not copy induction variables.
13022         Call rename_uses.
13023         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
13024         the translated statement.  Use the iv_map for the induction
13025         variable renaming.
13026         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
13027         (set_rename): Removed declaration.
13028         (scev_analyzable_p): ...here.
13029         * tree-chrec.c (chrec_apply_map): New.
13030         * tree-chrec.h (chrec_apply_map): Declared.
13031
13032 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13033
13034         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
13035         insert_loop_close_phis.
13036         * sese.c (name_defined_in_loop_p): Removed.
13037         (expr_defined_in_loop_p): Removed.
13038         (alive_after_loop): Removed.
13039         (close_phi_not_yet_inserted_p): Removed.
13040         (struct alep): Removed.
13041         (add_loop_exit_phis): Removed.
13042         (insert_loop_close_phis): Removed.
13043
13044 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13045
13046         * graphite-cloog-util.c
13047         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
13048         * graphite-poly.c
13049         (psct_scattering_dim_for_loop_depth): Same.
13050
13051 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13052
13053         * graphite-cloog-util.h: Added cloog.h.
13054         * graphite-blocking.c: Removed cloog.h.
13055         * graphite-dependences.c: Same.
13056         * graphite-interchange.c: Same.
13057         * graphite-poly.c: Same.
13058         * graphite-ppl.c: Same.
13059         * graphite-scop-detection.c: Same.
13060         * graphite-sese-to-poly.c:
13061         Removed cloog.h.
13062         Removed graphite-clast-to-gimple.h.
13063         (check_poly_representation): Removed (unused).
13064         * graphite-sese-to-poly.h
13065         (check_poly_representation): Removed (unused).
13066
13067 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13068
13069         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
13070         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
13071         (graphite-cloog-util.o): New.
13072         (graphite-ppl.o): Added graphite-cloog-util.h.
13073         * graphite-clast-to-gimple.c:
13074         Added graphite-cloog-util.h to include statements.
13075         * graphite-cloog-util.c: New.
13076         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
13077         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13078         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13079         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13080         (insert_constraint_into_matrix): Same.
13081         (ppl_Constrain_System_number_of_constraints): Same.
13082         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13083         (oppose_constraint): Same.
13084         (cloog_matrix_to_ppl_constraint): Same.
13085         (new_Constraint_System_from_Cloog_Matrix): Same.
13086         * graphite-cloog-util.h: New.
13087         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
13088         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13089         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13090         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13091         (insert_constraint_into_matrix): Same.
13092         * graphite-ppl.c:
13093         Added graphite-cloog-util.h to include statements.
13094         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
13095         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13096         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13097         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13098         (insert_constraint_into_matrix): Same.
13099         (ppl_Constrain_System_number_of_constraints): Same.
13100         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13101         (oppose_constraint): Same.
13102         (cloog_matrix_to_ppl_constraint): Same.
13103         (new_Constraint_System_from_Cloog_Matrix): Same.
13104         * graphite-ppl.h:
13105         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
13106         graphite-cloog-util.h.
13107         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13108         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13109         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13110         (insert_constraint_into_matrix): Same.
13111
13112 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13113
13114         * graphite-clast-to-gimple.c
13115         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
13116         (precision_for_interval): Same.
13117         (gcc_type_for_interval): Same.
13118         (compute_type_for_level): Same.
13119         * graphite-interchange.c
13120         (lst_interchange_profitable_p): Same.
13121         * graphite-poly.c
13122         (psct_scattering_dim_for_loop_depth): Same.
13123         * graphite-ppl.c
13124         (ppl_max_for_le_pointset): Same.
13125         (ppl_min_for_le_pointset): Same.
13126
13127 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13128
13129         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
13130         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
13131
13132 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13133
13134         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
13135         rewrite_close_phi_out_of_ssa.
13136
13137 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13138
13139         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
13140
13141 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13142
13143         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
13144         rename_map.
13145         * sese.c (debug_rename_map): Same.
13146         (get_rename): Same.
13147         (set_rename): Same.
13148         (rename_variables_in_stmt): Same.
13149         (expand_scalar_variables_call): Same.
13150         (expand_scalar_variables_ssa_name): Same.
13151         (expand_scalar_variables_expr): Same.
13152         (expand_scalar_variables_stmt): Same.
13153         (expand_scalar_variables): Same.
13154         (rename_variables): Same.
13155         (graphite_copy_stmts_from_block): Same.
13156         (copy_bb_and_scalar_dependences): Same.
13157
13158 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13159
13160         * graphite-clast-to-gimple.c (copy_renames): Removed.
13161         (translate_clast_for): Do not call copy_renames.
13162         (translate_clast_guard): Same.
13163
13164 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13165
13166         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
13167         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
13168         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
13169         before rewrite_cross_bb_scalar_deps.
13170
13171 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13172
13173         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
13174         Early return in when flag_associative_math is not set.
13175
13176 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13177
13178         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
13179         of SSA copies on edges except for loop->latch.
13180
13181 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13182
13183         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
13184         Split out of rewrite_reductions_out_of_ssa.
13185         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
13186         Declared.
13187         * graphite.c (graphite_transform_loops): Call it.
13188
13189 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13190
13191         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
13192
13193 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
13194
13195         * dbgcnt.def (graphite_scop): New counter.
13196         * graphite.c: Include dbgcnt.h.
13197         (graphite_transform_loops): Use new counter to limit transformations.
13198         * Makefile.in (graphite.o): Depend on DBGCNT_H.
13199
13200 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13201
13202         * passes.c (init_optimization_passes): Add pass_graphite.
13203         Schedule a pass_copy_prop before pass_graphite_transforms.
13204         * timevar.def (TV_GRAPHITE): Declared.
13205         * tree-pass.h (pass_graphite): Declared.
13206         * tree-ssa-loop.c (pass_graphite): New.
13207
13208 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13209
13210         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
13211         Remove calls to rename_nb_iterations and rename_sese_parameters.
13212         * graphite-clast-to-gimple.h (gloog): Update declaration.
13213         * graphite.c (graphite_transform_loops): Update call to gloog.
13214         * sese.c (rename_variables_in_expr): Removed.
13215         (rename_nb_iterations): Removed.
13216         (rename_sese_parameters): Removed.
13217         * sese.h (rename_nb_iterations): Removed.
13218         (rename_sese_parameters): Removed.
13219
13220 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13221
13222         * graphite-clast-to-gimple.c (gloog): Remove call to
13223         sese_adjust_liveout_phis.
13224         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
13225         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
13226         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
13227         rewrite_phi_out_of_ssa.
13228         * sese.c (get_vdef_before_sese): Removed.
13229         (sese_adjust_vphi): Removed.
13230         (sese_adjust_liveout_phis): Removed.
13231         * sese.h (sese_adjust_liveout_phis): Removed.
13232
13233 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13234
13235         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
13236         argument for the place after which to insert the out of SSA copy.
13237         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
13238         (rewrite_phi_out_of_ssa): Same.
13239         (rewrite_cross_bb_scalar_deps): Same.
13240         (insert_copyout): Removed.
13241         (insert_copyin): Removed.
13242         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
13243         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
13244         insert_copyin.
13245
13246 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13247
13248         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
13249         (rewrite_reductions_out_of_ssa): Same.
13250         (rewrite_commutative_reductions_out_of_ssa): Same.
13251         (build_poly_scop): Do not call these functions.
13252         * graphite-sese-to-poly.h (build_poly_scop): Declared.
13253         (rewrite_reductions_out_of_ssa): Declared.
13254         (rewrite_commutative_reductions_out_of_ssa): Declared.
13255         * graphite.c (graphite_transform_loops): Call on every scop
13256         rewrite_commutative_reductions_out_of_ssa before calling
13257         rewrite_reductions_out_of_ssa and build_scop_bbs.
13258
13259 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13260
13261         * graphite-dependences.c (dot_deps): Make system call to dotty run
13262         in background.
13263         (dot_deps_stmt): Same.
13264         * graphite-poly.c (dot_lst): Same.
13265
13266 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13267
13268         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
13269         phi_arg_in_outermost_loop.
13270         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
13271         (remove_invariant_phi): Same.
13272
13273 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
13274
13275         * target.def (output_addr_const_extra): New hook.
13276         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
13277         * doc/tm.texi: Regenerate.
13278         * targhooks.c (default_asm_output_addr_const_extra): New function.
13279         * targhooks.h (default_asm_output_addr_const_extra): Declare.
13280         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
13281         target hook.
13282
13283         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13284         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
13285         * config/i386/i386.h (output_addr_const_extra): Rename to...
13286         (i386_asm_output_addr_const_extra): ...this. Make static.
13287         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13288
13289 2010-08-11  Richard Henderson  <rth@redhat.com>
13290
13291         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
13292
13293 2010-08-11  Nick Clifton  <nickc@redhat.com>
13294
13295         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
13296         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
13297         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
13298         stormy16-lib2-cmpsi.c.
13299
13300         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
13301         -O2.
13302
13303 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
13304
13305         * opts.h (struct cl_option_handler_func): Make handler take
13306         cl_decoded_option structure as parameter, not individual elements.
13307         (struct cl_option_handlers): Make callbacks take cl_decoded_option
13308         structure as parameter, not individual elements.
13309         (handle_option): Take cl_decoded_option structure as parameter,
13310         not individual elements.
13311         (handle_generated_option): Declare.
13312         * opts-common.c (handle_option): Take cl_decoded_option structure
13313         as parameter, not individual elements.  Update calls to callback
13314         and handler functions.
13315         (handle_generated_option): New.
13316         (read_cmdline_option): Update calls to callback functions and
13317         handle_option.
13318         * opts.c (common_handle_option, complain_wrong_lang,
13319         unknown_option_callback, post_handling_callback,
13320         lang_handle_option, target_handle_option): Take cl_decoded_option
13321         structure as parameter, not individual elements.
13322         (lang_handle_option, target_handle_option, common_handle_option):
13323         Assert option has at most one argument.
13324         (enable_warning_as_error): Call handle_generated_option instead of
13325         handle_option.  Do not pass -Werror argument as argument of
13326         generated option.
13327
13328 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13329
13330         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13331         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13332         (SUBWORD_BOOL_CAS): Likewise.
13333         (SUBWORD_SYNC_OP): Likewise.
13334         (SUBWORD_TEST_AND_SET): Likewise.
13335         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13336         (SUBWORD_SYNC_OP): Likewise.
13337         (OP_AND_FETCH_WORD): Likewise.
13338
13339 2010-08-10  Xinliang David Li  <davidxl@google.com>
13340
13341         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
13342         compute max/min offset in address.
13343
13344 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
13345
13346         * ira-live.c: Include sbitmap.h.
13347         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
13348         Compress live ranges even more.
13349
13350 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13351
13352         * coverage.c (ctr_labels): Delete.
13353
13354 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13355
13356         PR bootstrap/45177
13357         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
13358         test here from arm_gen_load_multiple_1.
13359         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
13360         multiple_operation_profitable_p.
13361
13362 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13363
13364         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
13365         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
13366
13367 2010-08-10  Richard Henderson  <rth@redhat.com>
13368
13369         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
13370         after saving registers.  Assert that SSE registers are only saved
13371         with a sufficiently aligned frame.
13372         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
13373         remove stack_realign_fp handling.
13374         (ix86_expand_prologue): Save int registers before stack_realign_fp,
13375         and do not mark the stack alignment as frame related.
13376         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
13377
13378         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
13379         saves when re-aligning the stack.
13380
13381 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13382
13383         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
13384         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
13385         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
13386
13387 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13388
13389         * dwarf2out.c (struct die_struct): Move die_tag to the end.
13390
13391 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
13392
13393         * config/arm/iterators.md: New file.
13394         * config/arm/arm.md: Include iterators.md.
13395         (QHSI): Move to new file.
13396         (LTUGEU, cnb, optab, ior_xor): Likewise.
13397         * config/arm/iwmmxt.md (VMMX): Move to new file.
13398         (VSHFT, MMX_char): Likewise.
13399         * config/arm/neon.md (VD): Move to new file.
13400         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
13401         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
13402         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
13403         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
13404         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
13405         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
13406         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
13407         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
13408         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
13409         (Is_d_reg, V_mode_nunits): Likewise.
13410         * config/arm/vec-common.md (VALL): Move to new file.
13411         (VALLW, VINT, VINTW): Likewise.
13412
13413 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13414
13415         PR middle-end/45182
13416         * combine.c (make_compound_operation): Don't try to convert
13417         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
13418
13419 2010-08-10  Richard Guenther  <rguenther@suse.de>
13420
13421         * tree.h (get_object_alignment): Adjust prototype.
13422         * builtins.c (get_object_alignment): Return unsigned int,
13423         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
13424         and TARGET_MEM_REF properly.
13425         (get_pointer_alignment): Adjust.
13426         * emit-rtl.c (get_mem_align_offset): Adjust comment.
13427         (set_mem_attributes_minus_bitpos): Adjust.
13428         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
13429
13430 2010-08-10  Richard Guenther  <rguenther@suse.de>
13431
13432         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
13433         (copy_prop_visit_assignment): Simplify.
13434         (copy_prop_visit_stmt): Also visit assignments from
13435         constants.
13436         (copy_prop_visit_phi_node): Use operand_equal_p.
13437
13438 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13439
13440         * ipa-split.c (find_split_points): Free stack.
13441
13442 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13443
13444         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
13445         * tree.c (tree_node_kind): Delete corresponding entries.
13446
13447 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
13448
13449         * alias.c (may_alias_p): Remove unused ret.
13450
13451 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
13452
13453         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
13454         alias_sets_conflict_p.
13455         (walk_mems_1): Moved from alias.c.
13456         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
13457         in alias.c.
13458         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
13459         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
13460         * alias.c (walk_mems_2): Moved to ddg.c.
13461         (walk_mems_1): Ditto.
13462         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
13463         to ddg.c.
13464         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
13465         disambiguation.
13466         *(may_alias_p): New function to check whether two memory expression
13467         may alias or not. Currently used in buidling inter-iteration memory
13468         dependence.
13469         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
13470         (insn_alias_sets_conflict_p): Removed
13471         *rtl.h (may_alias_p): New function prototype.
13472
13473 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13474
13475         * tree.c (nreverse): Assert that we don't have a BLOCK.
13476
13477 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13478
13479         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
13480         * config/arm/arm.c (arm_get_pcs_model): Likewise.
13481         * config/avr/avr.c (init_cumulative_args): Likewise.
13482         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
13483         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
13484         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
13485         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
13486         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
13487         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13488         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
13489         * dwarf2out.c (gen_subprogram_die): Likewise.
13490         * function.c (allocate_struct_function): Likewise.
13491         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
13492         (deserves_ellipsis): Delete.
13493
13494 2010-08-09  Richard Guenther  <rguenther@suse.de>
13495
13496         * tree-ssa-copy.c (cached_last_copy_of): Remove.
13497         (valueize_val): New function.
13498         (get_last_copy_of): Remove.
13499         (set_copy_of_val): Simplify.
13500         (dump_copy_of): Likewise.
13501         (copy_prop_visit_cond_stmt): Use valueize_val.
13502         (copy_prop_visit_phi_node): Properly handle unvisited names.
13503         Drop code managing copy-of chains.
13504         (init_copy_prop): Adjust.
13505         (fini_copy_prop): Likewise.
13506         (execute_copy_prop): Remove obsolete comment.
13507
13508 2010-08-09  Richard Guenther  <rguenther@suse.de>
13509
13510         PR middle-end/44632
13511         * function.c (gimplify_parameters): Do not clear addressable
13512         bit of the original parameter.
13513
13514 2010-08-09  Richard Guenther  <rguenther@suse.de>
13515
13516         PR middle-end/45212
13517         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
13518         alignment from MEM_REF offset only if we took it from the
13519         base object.
13520
13521 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
13522
13523         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
13524
13525 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13526
13527         * c-tree.h (build_arg_info): Declare.
13528         * c-decl.c (build_arg_info): Define.
13529         (get_parm_info): Call it.  Delete initialization code.
13530         * c-parser.c (c_parser_parms_declarator): Likewise.
13531         (c_parser_parms_list_declaractor): Likewise.
13532
13533 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13534
13535         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
13536         (struct c_arg_info): Change type of tags field.
13537         * c-decl.c (grokdeclarator): Update for changed type of tags field.
13538         (get_parm_info): Likewise.
13539         (store_parm_decls_newstyle): Likewise.
13540
13541 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13542
13543         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
13544         (branch_island_list): Delete.
13545         (branch_islands): Declare.
13546         (add_compiler_branch_island): Adjust for branch_islands instead of
13547         branch_island_list.
13548         (macho_branch_islands): Likewise.
13549         (no_previous_def): Likewise.
13550         (get_prev_label): Likewise.
13551
13552 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13553
13554         PR boehm-gc/34544
13555         * gthr-posix.h (__gthread_start): Delete.
13556         (__gthread_active_init): Use pthread_default_stacksize_np instead of
13557         pthread_create to determine if hpux pthreads are active.
13558         * gthr-posix95.h (__gthread_start): Delete.
13559         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
13560
13561 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
13562
13563         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
13564         _WIN64 not expanded.
13565
13566 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
13567             H.J. Lu  <hongjiu.lu@intel.com>
13568
13569         PR target/45213
13570         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
13571         to output 32bit SFmode immediate as 8 byte sign extended value.
13572
13573 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13574
13575         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13576         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13577         (SUBWORD_BOOL_CAS): Likewise.
13578         (SUBWORD_SYNC_OP): Likewise.
13579         (SUBWORD_TEST_AND_SET): Likewise.
13580         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13581         (SUBWORD_SYNC_OP): Likewise.
13582         (OP_AND_FETCH_WORD): Likewise.
13583
13584 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13585
13586         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
13587         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
13588         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
13589         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
13590         generic part.
13591         (cortex_a9_sched_adjust_cost): New function.
13592         (xscale_sched_adjust_cost): New function.
13593         * config/arm/arm-protos.h (struct tune_params): New field
13594         sched_adjust_cost.
13595         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
13596
13597 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
13598
13599         PR target/44942
13600         * config/sparc/sparc.c (function_arg_advance): Always take into account
13601         the padding, if any.
13602
13603 2010-08-06  Richard Guenther  <rguenther@suse.de>
13604
13605         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
13606         (dump_lattice_value): Dump it.
13607         (get_default_value): Adjust.
13608         (get_constant_value): Likewise.
13609         (set_value_varying): Likewise.
13610         (set_lattice_value): Make sure to not go up the lattice
13611         with bitwise constant values.
13612         (get_value_for_expr): Handle ADDR_EXPRs.
13613         (value_to_double_int): New function.
13614         (get_value_from_alignment): Likewise.
13615         (do_dbg_cnt): Adjust.
13616         (ccp_lattice_meet): Handle partially constant values.
13617         (bit_value_unop_1): New function.
13618         (bit_value_binop_1): Likewise.
13619         (bit_value_unop): Likewise.
13620         (bit_value_binop): Likewise.
13621         (evaluate_stmt): Track partially constant values if
13622         flag_tree_bit_ccp is set.
13623         (ccp_fold_stmt): Dump if we folded a predicate.
13624         (ccp_visit_stmt): Adjust.
13625         * common.opt (ftree-bit-ccp): New flag.
13626         * doc/invoke.texi (ftree-bit-ccp): Document.
13627         * opts.c (decode_options): Enable bit-CCP at -O1.
13628
13629 2010-08-06  Alan Modra  <amodra@gmail.com>
13630
13631         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
13632         and -mrelocatable-lib description.
13633
13634 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
13635
13636         From Martin Thuresson  <martint@google.com>
13637         * postreload.c (reload_cse_simplify_operands): Use
13638         SET_REGNO_RAW instead of SET_REGNO.
13639         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
13640         SET_REGNO.
13641         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
13642         instead of SET_REGNO.
13643         * rtl.h (SET_REGNO_RAW): New macro.
13644
13645 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
13646
13647         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
13648         computations.  Fix formatting issues.
13649         (num_sign_bit_copies1): Likewise.
13650         (canonicalize_condition): Likewise.
13651
13652 2010-08-05  Richard Henderson  <rth@redhat.com>
13653
13654         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
13655         (floor_log2): Use clz_hwi.
13656         (exact_log2): Use ctz_hwi.
13657         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
13658         * builtins.c (fold_builtin_bitop): Use them.
13659         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
13660         * combine.c (get_pos_from_mask): Use ctz_hwi.
13661         * double-int.c (double_int_ctz): Likewise.
13662         * explow.c (force_reg): Likewise.
13663         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
13664
13665 2010-08-05  Richard Henderson  <rth@redhat.com>
13666
13667         PR target/45189
13668         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
13669         the alignment constant is properly sign-extended.
13670
13671 2010-08-05  Richard Guenther  <rguenther@suse.de>
13672
13673         * expr.c (store_expr): Use emit_block_move only if both
13674         source and target are MEMs.  Use store_bit_field if only
13675         the target is a MEM.
13676
13677 2010-08-05  Richard Henderson  <rth@redhat.com>
13678
13679         PR debug/45188
13680         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
13681         (INCOMING_RETURN_ADDR_RTX): Likewise.
13682         (dwarf2out_do_frame): Remove conditional compilation.
13683         (dwarf2out_frame_init): Likewise.
13684
13685 2010-08-05  Nicolas Setton  <setton@adacore.com>
13686
13687         * gcov.c (flag_display_progress): New static variable.
13688         (main): Display progress info on standard output if requested.
13689         (options): Add -d/--display-progress.
13690         (print_usage): Print them.
13691         (process_args): Handle them.
13692         * doc/gcov.texi: Document them.
13693
13694 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13695
13696         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
13697         (ipcp_insert_stage): Redirect only edges not flagged with
13698         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
13699         discovered constants.
13700
13701 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13702
13703         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
13704         (struct ipa_param_descriptor): New fields types and
13705         cannot_devirtualize.
13706         (ipa_param_cannot_devirtualize_p): New function.
13707         (ipa_param_types_vec_empty): Likewise.
13708         (ipa_make_edge_direct_to_target): Declare.
13709         * ipa-cp.c: Fixed first stage driver name in initial comment,
13710         described devirtualization there too.
13711         (ipcp_analyze_node): Call ipa_analyze_params_uses.
13712         (ipcp_print_all_lattices): Print devirtualization info.
13713         (ipa_set_param_cannot_devirtualize): New function.
13714         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
13715         lattice to BOTTOM.
13716         (ipcp_init_stage): Merged into...
13717         (ipcp_generate_summary): ...its caller.
13718         (ipcp_change_tops_to_bottom): Also process type lists.
13719         (ipcp_add_param_type): New function.
13720         (ipcp_copy_types): Likewise.
13721         (ipcp_propagate_types): Likewise.
13722         (ipcp_propagate_stage): Also propagate types.
13723         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
13724         Also return true if propagated types require it.
13725         (ipcp_update_callgraph): Dump redirection info.
13726         (ipcp_process_devirtualization_opportunities): New function.
13727         (ipcp_const_param_count): Include known type information.
13728         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
13729         on new node.  Fixed formatting.
13730         * ipa-prop.c (make_edge_direct_to_target): Renamed to
13731         ipa_make_edge_direct_to_target and changed all callers.  Made
13732         externally visible.
13733         (ipa_node_duplication_hook): Duplicate types vector.
13734         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
13735         redirect outgoing calls for which we can't get a decl from the
13736         statement.  Check that we can get a decl from the call statement.
13737         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13738         ipa_analyze_params_uses only when ipa-cp is disabled.
13739         * tree-inline.c (get_indirect_callee_fndecl): Removed.
13740         (expand_call_inline): Do not call get_indirect_callee_fndecl.
13741         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
13742         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
13743
13744 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13745
13746         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
13747         temporary. Emit move from temporary to accum, so REG_EQUAL note will
13748         be attached to this insn in correct mode.
13749
13750 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13751
13752         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
13753         using REGNO of base_reg directly.
13754
13755 2010-08-05  Jie Zhang  <jie@codesourcery.com>
13756
13757         PR tree-optimization/45144
13758         * tree-sra.c (type_consists_of_records_p): Return false
13759         if the record contains bit-field.
13760
13761 2010-08-04  Richard Henderson  <rth@redhat.com>
13762
13763         * config/i386/i386.c (struct ix86_frame): Remove padding and
13764         to_allocate members.
13765         (ix86_compute_frame_layout): Don't store them.
13766         (ix86_can_use_return_insn_p): Use a more direct and more obviously
13767         correct condition for the position of the stack pointer.
13768         (ix86_expand_prologue): Compute remaining stack allocation based
13769         on the ultimate stack pointer offset.
13770         (ix86_expand_epilogue): Use more obvious expressions testing for
13771         the stack pointer already pointing to the saved registers.
13772
13773         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
13774         duplication deconstructing the frame pointer.  Simplify
13775         deallocation of the local stack frame.
13776
13777         * reg-notes.def (CFA_EXPRESSION): New.
13778         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
13779         (dwarf2out_frame_debug_cfa_expression): New.
13780         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
13781
13782         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
13783         * config/i386/i386.c (ix86_expand_prologue): Set it.
13784         (ix86_expand_epilogue): Clear it.
13785         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
13786         context, add REG_CFA_EXPRESSION notes.
13787
13788         * config/i386/i386.h (struct machine_frame_state): Rename from
13789         machine_cfa_state.  Add members tracking SP and FP regardless
13790         of the current CFA register.
13791         (ix86_cfa_state): Remove.
13792         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
13793         and sse_reg_save_offset members.
13794         (ix86_compute_frame_layout): Set them.
13795         (gen_push): Increment sp_offset too.
13796         (choose_baseaddr_len, choose_baseaddr): New.
13797         (ix86_emit_save_reg_using_mov): New.
13798         (ix86_emit_save_regs_using_mov): Use it.
13799         (ix86_emit_save_sse_regs_using_mov): Likewise.
13800         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
13801         compare vs the saved red_zone_offset.
13802         (pro_epilogue_adjust_stack): Adjust sp_offset.
13803         (ix86_adjust_stack_and_probe): Likewise.
13804         (ix86_expand_prologue): Set up, use, and validate the new
13805         frame_state_info members.  Use gen_frame_mem.
13806         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
13807         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
13808         new frame_state_info members.
13809         (ix86_emit_leave): Likewise.
13810         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
13811         out-of-range stack pointer offsets here.
13812         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13813         (ix86_expand_epilogue): Use and validate the new frame_state_info
13814         members.  Break up and simplify the logic selecting the
13815         restore_regs_via_mov code path.  Ensure that there will be no
13816         out-of-range stack pointer offsets.
13817
13818         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
13819
13820         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
13821         argument name to reflect the expected tree; fix indentation.
13822         (ix86_asm_output_function_label): Output the entire 32-bit
13823         ms_hook here as bytes ...
13824         (ix86_expand_prologue): ... not here as insns.  Attach the
13825         unwind info for the ms_hook to a blockage insn.
13826         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
13827         (ix86_ms_bitfield_layout_p): Fix indentation.
13828         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
13829
13830         * config/i386/i386.c (ix86_using_red_zone): New.
13831         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
13832         ix86_expand_prologue, ix86_force_to_memory): Use it.
13833
13834         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
13835         saving the int registers.
13836
13837         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
13838         and DWARF2_UNWIND_INFO conditional compilation.
13839
13840 2010-08-04  Richard Henderson  <rth@redhat.com>
13841
13842         PR debug/45171
13843         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
13844         an is_naming_typedef_decl.
13845
13846 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
13847
13848         PR rtl-optimization/45162
13849         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
13850         * dce.c (word_dce_process_block): Likewise.
13851
13852 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
13853
13854         PR target/44583
13855         * config/ia64/constraints.md (Z): New.
13856         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
13857         (xfreg_or_signed_fp01_operand): New.
13858         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
13859         with fr_reg_or_signed_fp01_operand and constraint G with Z.
13860         (subsf3): Ditto.
13861         (*maddsf4): Ditto.
13862         (*msubsf4): Ditto.
13863         (adddf3): Ditto.
13864         (adddf3_trunc): Ditto.
13865         (subdf3): Ditto.
13866         (*subdf3_trunc): Ditto.
13867         (*madddf4): Ditto.
13868         (*madddf4_trunc): Ditto.
13869         (*msubdf4): Ditto.
13870         (*msubdf4_trunc): Ditto.
13871         (addxf3): Replace xfreg_or_fp01_operand with
13872         xfreg_or_signed_fp01_operand and constraint G with Z.
13873         (*addxf3_truncsf): Ditto.
13874         (*addxf3_truncdf): Ditto.
13875         (subxf3): Ditto.
13876         (*subxf3_truncsf): Ditto.
13877         (*subxf3_truncdf): Ditto.
13878         (*maddxf4): Ditto.
13879         (*maddxf4_truncsf): Ditto.
13880         (*maddxf4_truncdf): Ditto.
13881         (*msubxf4): Ditto.
13882         (*msubxf4_truncsf): Ditto.
13883         (*msubxf4_truncdf): Ditto.
13884
13885 2010-08-04  Richard Guenther  <rguenther@suse.de>
13886
13887         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
13888         if either alias-set is zero.
13889
13890 2010-08-04  Richard Guenther  <rguenther@suse.de>
13891
13892         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
13893         * tree-ssa-ccp.c: ... here.
13894         * tree-ssa-copy.c: ... and here.
13895         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
13896         value_range_t): Move ...
13897         * tree-vrp.c: ... here.
13898         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
13899         (substitute_and_fold): Adjust prototype.
13900         * tree-ssa-propagate.c (replace_uses_in): Adjust.
13901         (replace_phi_args_in): Likewise.
13902         (substitute_and_fold): Take callback to query lattice instead
13903         of pointer to lattice.  Replace SSA name defs with lattice
13904         values first.
13905         * tree-ssa-ccp.c (ccp_finalize): Adjust.
13906         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
13907         (get_value): New function.
13908         (fini_copy_prop): Adjust.
13909         * tree-vrp.c (vrp_finalize): Adjust.
13910
13911 2010-08-04  Richard Guenther  <rguenther@suse.de>
13912
13913         PR middle-end/45176
13914         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
13915         points-to set for original MEM_REF.
13916
13917 2010-08-04  Richard Guenther  <rguenther@suse.de>
13918
13919         * tree-ssa-ccp.c (get_constant_value): New function.
13920         (get_rhs_assign_op_for_ccp): Remove.
13921         (valueize_op): New function.
13922         (ccp_fold): Use get_constant_value and valueize_op.
13923         (fold_const_aggregate_ref): Likewise.
13924         (ccp_fold_stmt): Likewise.
13925         (visit_assignment): Simplify.
13926
13927 2010-08-04  Richard Guenther  <rguenther@suse.de>
13928
13929         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
13930         * double-int.h (double_int_ctz): Declare.
13931         * double-int.c (double_int_ctz): New function.
13932
13933 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
13934
13935         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
13936         Define.
13937         picochip_expand_movmemhi : Expand movmem pattern.
13938         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
13939         Declare.
13940         * config/picochip/picochip.md (movmemhi) : New pattern.
13941
13942 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
13943
13944         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
13945
13946 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
13947
13948         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
13949         NEG as operand of a MULT by merging it with the other operand.
13950         * combine.c (make_compound_operation): Use trunc_int_for_mode when
13951         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
13952         MULT.
13953         * config/arm/constraints.md (M): Examine only 32 bits of a
13954         HOST_WIDE_INT.
13955         * config/arm/predicates.md (power_of_two_operand): Likewise.
13956
13957 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13958
13959         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
13960         non-NOTE insns.
13961
13962 2010-08-03  Jan Hubicka  <jh@suse.cz>
13963
13964         * ipa-split.c (struct split_point): Add split_part_set_retval.
13965         (find_retval): Forward declare.
13966         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
13967         (consider_split): Compute current->split_part_set_retval.
13968         (visit_bb): Do not look into return value.
13969         (split_function): Handle !split_part_set_retval
13970
13971 2010-08-03  Martin Jambor  <mjambor@suse.cz>
13972
13973         * tree-sra.c (completely_scalarize_record): New parameter REF, create
13974         its own access->expr intead of using build_ref_for_offset.
13975
13976 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
13977
13978         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
13979         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
13980         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
13981         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
13982         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
13983         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
13984         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
13985         DEFAULT_SWITCH_TAKES_ARG.
13986         * config/rx/rx.opt (-patch=): Remove option.
13987         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
13988         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
13989         * doc/invoke.texi (RX Options): Remove -patch=.
13990         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
13991         (option_map): Remove --profile-blocks, --quiet and --silent.
13992
13993 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
13994
13995         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
13996         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
13997         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
13998         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
13999         Update calls to ix86_expand_compare and ix86_expand_branch.
14000         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
14001         ix86_expand_compare.
14002         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
14003         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
14004         Make static.
14005         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
14006         and ix86_compare_op1.  Update calls to ix86_expand_compare.
14007         (ix86_expand_int_movcc): Ditto.
14008         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
14009         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
14010         (ix86_expand_setcc): Ditto.
14011         (ix86_expand_compare): Remove prototype.
14012         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
14013         ix86_compare_op0 and ix86_compare_op1.  Update calls
14014         to ix86_expand_branch to directly pass operands[1] and operands[2].
14015         (cbranchxf4): Ditto.
14016         (cbranch<MODEF:mode>4): Ditto.
14017         (cbranchcc4): Ditto.
14018         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
14019         Update calls to ix86_expand_setcc to directly pass operands[2] and
14020         operands[3].
14021         (cstorexf4): Ditto.
14022         (cstore<MODEF:mode>4): Ditto.
14023         (cstorecc4): Ditto.
14024
14025 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14026
14027         PR target/45063
14028         * caller-save.c (save_call_clobbered_regs): Remove regs from
14029         hard_regs_saved when they are set.
14030
14031 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
14032
14033         PR target/41089
14034         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
14035         as volatile.
14036
14037 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
14038
14039         * common.opt (ftree-loop-distribute-patterns): New.
14040         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
14041         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
14042         at -O3.
14043         * tree-data-ref.c (stores_zero_from_loop): New.
14044         * tree-data-ref.h (stores_zero_from_loop): Declared.
14045         * tree-loop-distribution.c (tree_loop_distribution): Call
14046         stores_zero_from_loop.
14047         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
14048
14049 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14050
14051         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
14052         into account.
14053
14054         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
14055         * config/arm/arm.c (thumb1_code): New variable.
14056         (arm_override_options): Set it.
14057         (thumb1_final_prescan_insn): Keep track of condition code status.
14058         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
14059         jumps that depend on them.
14060         * config/arm/arm.h (thumb1_code): Declare variable.
14061         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
14062         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
14063         thumb1_cc_mode.
14064         (CC_STATUS_INIT): New macro.
14065         * config/arm/constraints.md (Pd): New constraint.
14066         * config/arm/predicates.md (noov_comparison_operator): New predicate.
14067         * config/arm/arm.md (is_thumb1): New define_attr.
14068         (conds): Set default to "clob" when generating Thumb1 code.
14069         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
14070         code are set.  Use two-operand assembly syntax.
14071         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
14072         pattern.
14073         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
14074         codes are set.  Use two-operand assembly syntax.
14075         (zero_extendhisi splitter): Remove constraints.
14076         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
14077         thumb1_movsf_insn): Set conds attribute as appropriate.
14078         (cbranchsi4_insn): Use condition code status from struct
14079         machine_function to determine whether the comparison can be eliminated.
14080         Discourage the alternative using high registers.
14081         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
14082         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
14083         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
14084         subsi3_cbranch): Delete.
14085         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
14086         one subtract and one cbranch insn.
14087
14088         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
14089         thumb2_movdf_soft_insn): Delete patterns.
14090         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
14091         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
14092         (pool_range, neg_pool_range): Use them to define defaults.
14093         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
14094         and allow for TARGET_32BIT.
14095
14096         PR target/40457
14097         * config/arm/arm.h (arm_regs_in_sequence): Declare.
14098         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
14099         load_multiple_sequence, store_multiple_sequence): Delete
14100         declarations.
14101         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
14102         declarations.
14103         * config/arm/ldmstm.md: New file.
14104         * config/arm/arm.c (arm_regs_in_sequence): New array.
14105         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
14106         CHECK_REGS.  All callers changed.
14107         If SAVED_ORDER is nonnull, copy the computed order into it.
14108         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
14109         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
14110         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
14111         If SAVED_ORDER is nonnull, copy the computed order into it.
14112         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
14113         like REGS.  Handle Thumb mode.
14114         (arm_gen_load_multiple_1): New function, broken out of
14115         arm_gen_load_multiple.
14116         (arm_gen_store_multiple_1): New function, broken out of
14117         arm_gen_store_multiple.
14118         (arm_gen_multiple_op): New function, with code from
14119         arm_gen_load_multiple and arm_gen_store_multiple moved here.
14120         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
14121         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
14122         changed.
14123         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
14124         * config/arm/predicates.md (commutative_binary_operator): New.
14125         (load_multiple_operation, store_multiple_operation): Handle more
14126         variants of these patterns with different starting offsets.  Handle
14127         Thumb-1.
14128         * config/arm/arm.md: Include "ldmstm.md".
14129         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
14130         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
14131         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
14132         peepholes): Delete.
14133         * config/arm/ldmstm.md: New file.
14134         * config/arm/arm-ldmstm.ml: New file.
14135
14136         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
14137         if statement which adds extra costs to frame-related expressions.
14138
14139 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14140
14141         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
14142
14143 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
14144
14145         PR target/45142
14146         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
14147         alternative 2.
14148         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
14149         split V4SI operands.
14150
14151 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
14152
14153         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14154         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
14155         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
14156         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
14157
14158 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
14159
14160         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
14161         LOCAL_INCLUDE_DIR.
14162
14163 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
14164
14165         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
14166         used in the call to optab_for_tree_code.  Fix the second
14167         is_widening_mult_p call.  Check that both unwidened operands
14168         have the same sign.
14169
14170 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
14171
14172         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
14173
14174 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
14175
14176         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14177
14178 2010-07-30  DJ Delorie  <dj@redhat.com>
14179
14180         * config/rx/predicates.md (rx_constshift_operand): New.
14181         * config/rx/rx.md (zs_cond): New.
14182         (cbranchsi4): Remove mode.
14183         (*cbranchsi4_<code>): Likewise.
14184         (*tstbranchsi4_<code>): New.
14185         (*tstbranchsi4r_<code>): New.
14186         (*tstbranchsi4m_eq): New.
14187         (*tstbranchsi4m_ne): New.
14188         (cbranchsf4): Remove mode.
14189         (*cbranchsf4_<code>): Likewise.
14190
14191 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
14192
14193         * rtlanal.c (simplify_subreg_regno): Don't treat
14194         HARD_FRAME_POINTER_REGNUM specially.
14195
14196 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
14197
14198         * common.opt (-G): Don't define option here.
14199         * config/g.opt: New.
14200         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
14201         rs6000/powerpc and score targets.
14202         * opts.c (common_handle_option): Don't handle -G here.
14203         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
14204         * config/frv/frv.c (frv_handle_option): Handle -G.
14205         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
14206         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
14207         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
14208         * config/mips/mips.c (mips_handle_option): Handle -G.
14209         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
14210         * config/score/score.c (score_handle_option): Handle -G.
14211
14212 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
14213
14214         * config/mmix/mmix.c: Include basic-block.h.
14215
14216 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
14217
14218         PR debug/45055
14219         PR rtl-optimization/45137
14220         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
14221         prototypes.
14222         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
14223         New functions.
14224         * combine.c (next_nonnote_nondebug_insn): Removed.
14225         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
14226         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
14227         * sched-deps.c (sched_analyze_insn): Likewise.
14228         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
14229         * rtlanal.c (canonicalize_condition): Likewise.
14230         * postreload.c (reload_combine_recognize_pattern): Likewise.
14231         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
14232
14233 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
14234
14235         * config/i386/i386.md (int_cond): Remove code iterator.
14236         (fp_cond): Ditto.
14237         (cbranch<mode>4): Use ordered_comparison_operator predicate
14238         for operator0.
14239         (cstore<mode>4): Ditto for operator1.
14240         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
14241         (add<mode>cc): ditto.
14242
14243 2010-07-30  Richard Guenther  <rguenther@suse.de>
14244
14245         PR middle-end/45141
14246         * expr.c (expand_expr_real_1): Check for not handled base address.
14247
14248 2010-07-30  Richard Guenther  <rguenther@suse.de>
14249
14250         * ipa-prop.c (ipa_modify_formal_parameters): Use
14251         build_distinct_type_copy.
14252
14253 2010-07-30  Anthony Green  <green@moxielogic.com>
14254
14255         * config/moxie/rtems.h: New file.
14256         * config.gcc: Add moxie-rtems support.
14257
14258 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14259
14260         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
14261         df flags as in run_fast_df_dce.
14262
14263 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14264
14265         Revert:
14266         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14267
14268         * rtl.def (NOTE): Swap operands 4 and 5.
14269         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
14270         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
14271         Adjust accordingly.
14272         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
14273
14274 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14275
14276         PR debug/45110
14277         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
14278         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
14279         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
14280         formal parameters.
14281         (gen_decl_die): Change return type to dw_die_ref, return what
14282         gen_formal_parameter_die returned.
14283
14284 2010-07-29  Martin Jambor  <mjambor@suse.cz>
14285
14286         * dbgcnt.def (eipa_sra): New counter.
14287         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
14288
14289 2010-07-29  Xinliang David Li  <davidxl@google.com>
14290
14291         PR bootstrap/45119
14292         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
14293         in revision 162652.
14294
14295 2010-07-29  Richard Guenther  <rguenther@suse.de>
14296
14297         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
14298         (TV_TREE_STORE_CCP): Likewise.
14299         (TV_TREE_REDPHI): Likewise.
14300
14301 2010-07-29  Richard Guenther  <rguenther@suse.de>
14302
14303         * double-int.h (double_int_and_not): New function.
14304         * combine.c (try_combine): Use it.
14305         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
14306
14307 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14308
14309         PR rtl-optimization/42575
14310         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
14311         Argument AU removed.  All callers changed.  Ignore artificial refs.
14312         Use return value of df_word_lr_simulate_defs to decide whether an insn
14313         is necessary.
14314         (fast_dce): Rename arg to WORD_LEVEL.
14315         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
14316         static.
14317         (pass_fast_rtl_byte_dce): Delete.
14318         * dce.h (run_word_dce): Declare.
14319         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
14320         All callers changed.  Simplify code to only deal with two-word regs.
14321         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
14322         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
14323         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
14324         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
14325         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
14326         (df_word_lr_mark_ref): Declare.
14327         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
14328         df_word_lr_simulate_uses): Declare or rename from byte variants.
14329         (df_byte_lr_simulate_artificial_refs_at_top,
14330         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14331         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
14332         declarations.
14333         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
14334         (enum df_mm): Delete.
14335         * df-byte-scan.c: Delete file.
14336         * df-problems.c (df_word_lr_problem_data): Renamed from
14337         df_byte_lr_problem_data, all members deleted except for
14338         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
14339         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
14340         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14341         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
14342         df_byte_lr_confluence_0): Delete functions.
14343         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
14344         callers changed.
14345         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
14346         Don't initialize members that were deleted, don't try to discover data
14347         about registers.  Ignore hard regs.
14348         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
14349         (df_word_lr_mark_ref): New function.
14350         (df_word_lr_bb_local_compute): Renamed from
14351         df_byte_bb_lr_local_compute; all callers changed.  Use
14352         df_word_lr_mark_ref.  Assert that artificial refs don't include
14353         pseudos.  Ignore hard registers.
14354         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
14355         Assert that exit block uses don't contain pseudos.
14356         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
14357         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
14358         callers changed.  Ignore hard regs.
14359         (df_word_lr_transfer_function): Renamed from
14360         df_byte_lr_transfer_function; all callers changed.
14361         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
14362         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
14363         changed.
14364         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
14365         callers changed.
14366         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
14367         confluence operator 0 set to NULL.
14368         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
14369         callers changed.
14370         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
14371         Return bool, true if bitmap changed or insn otherwise necessary.
14372         All callers changed.  Simplify using df_word_lr_mark_ref.
14373         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
14374         all callers changed.  Simplify using df_word_lr_mark_ref.
14375         * lower-subreg.c: Include "dce.h"
14376         (decompose_multiword_subregs): Call run_word_dce if df available.
14377         * Makefile.in (lower-subreg.o): Adjust dependencies.
14378         (df-byte-scan.o): Delete.
14379         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
14380
14381 2010-07-29  Richard Guenther  <rguenther@suse.de>
14382
14383         * tree.c (build_vector): Assert that the vector constant
14384         has enough elements.
14385         (build_vector_from_ctor): Pad with trailing zeros.
14386
14387 2010-07-29  Richard Guenther  <rguenther@suse.de>
14388
14389         PR tree-optimization/45120
14390         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14391         Handle offset in DEREFs properly.
14392         (get_constraint_for_1): Handle MEM_REF offset properly.
14393
14394 2010-07-29  Richard Guenther  <rguenther@suse.de>
14395
14396         PR middle-end/45034
14397         * convert.c (convert_to_integer): Always use an unsigned
14398         type for narrowed negate and bitwise not.
14399
14400 2010-07-29  Ira Rosen  <irar@il.ibm.com>
14401
14402         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
14403         to outer loop when creating reduction epilogue for double reduction,
14404         and switch back to the inner loop when updating the phi nodes.
14405         Update uses of outer loop exit phi nodes in double reduction (instead
14406         of uses of reduction).
14407
14408 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
14409
14410         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
14411         popcount on power7 and parity on power6 systems.
14412         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
14413         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
14414         instructions.
14415
14416         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
14417         (UNSPEC_PARITY): Ditto.
14418         (SFDF): New iterator for SF/DF.
14419         (rreg2): New mode attribute for floating register constraint.
14420         (TARGET_FLOAT): New mode attribute for whether single/double float
14421         is supported.
14422         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
14423         pattern.
14424         (parity<mode>2_cmpb): New insn for parity on power6 and newer
14425         machines.
14426         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
14427         pattern.  Add support for fcpsgn instruction added in power6.
14428         (copysignsf3): Delete.
14429         (copysigndf3): Delete.
14430         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
14431         instead of if_then_else in RTL to avoid problems with -0.
14432
14433         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
14434         of if_then_else to mirror scalar code.
14435         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
14436         rs6000.md.
14437
14438         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
14439         instead of if_then_else.
14440
14441 2010-07-28  Xinliang David Li  <davidxl@google.com>
14442
14443         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
14444         (dump_cand): Dump var_before/after.
14445         (htab_inv_expr_eq): New function.
14446         (htab_inv_expr_hash): New function.
14447         (tree_ssa_iv_optimize_init): Support pseudo invariants.
14448         (add_candidate_1): consider base type precision.
14449         (set_use_iv_cost): New parameter.
14450         (adjust_setup_cost): Use profile information.
14451         (get_address_cost): Do not hard code width in computing address
14452         offset limits.
14453         (compare_aff_trees): New function.
14454         (get_loop_invariant_expr_id): New function.
14455         (get_computation_cost_at): New parameter and use profile information.
14456         (get_computation_cost): New parameter.
14457         (determine_use_iv_cost_generic): Pass new parameter.
14458         (determine_use_iv_cost_address): Ditto.
14459         (determine_use_iv_cost_condition): Ditto.
14460         (autoinc_possible_for_pair): Ditto.
14461         (determine_use_iv_costs): More dumps.
14462         (iv_ca_get_num_inv_exprs): New function.
14463         (iv_ca_recount_cost): Consider loop invariants in register pressure
14464         cost.
14465         (iv_ca_add_use): New parameter.
14466         (iv_ca_dump): Better dumping.
14467         (iv_ca_extend): New parameter.
14468         (try_add_cand_for): Attempt to get better partial solution.
14469         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
14470         (create_new-ivs): More dumps.
14471         (rewrite_use_compare): Ditto.
14472         (free_loop_data): More cleanup.
14473         (treee_ssa_iv_optimize_finalize): Ditto.
14474
14475 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
14476
14477         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
14478         * config/i386/i386.c (ix86_profile_before_prologue): New.
14479         (override_options): Add special handling for -mfentry.
14480         (ix86_function_regparm): Likewise.
14481         (ix86_function_sseregparm): Likewise.
14482         (ix86_frame_pointer_required): Likewise.
14483         (ix86_expand_prologue): Check for ms_hook_prologue.
14484         (x86_function_profiler): Adjust mcount output.
14485         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
14486         * config/i386/i386.opt (mfentry): New.
14487         * doc/invoke.texi (mfentry): Add documentation.
14488         * doc/tm.texi: Regenerated..
14489         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
14490         * final.c (final_start_function): Replace macro
14491         PROFILE_BEFORE_PROLOGUE by target hook.
14492         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14493         * target.def (profile_before_prologue): New hook.
14494         * targhooks.c (default_profile_before_prologue): New.
14495         * targhooks.h (default_profile_before_prologue): New.
14496
14497 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
14498
14499         PR debug/45105
14500         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
14501
14502         PR debug/45103
14503         * dwarf2out.c (dwarf2out_var_location): Always consider
14504         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
14505
14506 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14507
14508         PR rtl-optimization/45107
14509         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
14510
14511 2010-07-28  Richard Guenther  <rguenther@suse.de>
14512
14513         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
14514         (set_lattice_value): Do not query an old default value.
14515         (get_value_for_expr): New function.  Properly canonicalize
14516         float values.
14517         (ccp_visit_phi_node): Use it.
14518
14519 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
14520
14521         * config/arm/arm.c (arm_pcs_default): Remove static.
14522         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
14523         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
14524         (arm_pcs_default): Declare.
14525
14526 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
14527
14528         * config/rs6000/rs6000.c (rs6000_override_options):
14529         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
14530         ... to darwin_rs6000_override_options.
14531         (rs6000_return_in_memory): Update preceding comment for darwin
14532         64 bit ABI.  Use TARGET_MACHO inline.
14533         (rs6000_darwin64_struct_check_p): New.
14534         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
14535         (function_arg): Likewise.
14536         (rs6000_arg_partial_bytes): Likewise.
14537         (rs6000_function_value): Likewise.
14538
14539 2010-07-28  Andi Kleen  <ak@linux.intel.com>
14540
14541         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
14542
14543 2010-07-28  Richard Guenther  <rguenther@suse.de>
14544
14545         PR middle-end/44903
14546         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
14547         targets try harder to not generate unaligned accesses.
14548
14549 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14550
14551         PR rtl-optimization/45101
14552         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
14553         for gcse-las.
14554
14555 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14556
14557         PR tree-optimization/44885
14558         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
14559         with non-aliased component.
14560
14561 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
14562
14563         * config/darwin-driver.c (SWITCH_TAKES_ARG,
14564         WORD_SWITCH_TAKES_ARG): Remove.
14565         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
14566         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
14567         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
14568         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
14569         definitions from gcc.c.
14570         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
14571         defaults.h.
14572         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
14573         Move to defaults.h.
14574         * opts-common.c: Include tm.h.
14575         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
14576         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
14577         Handle more than one argument.  Set canonical_option_num_elements.
14578         (decode_cmdline_options_to_array): Set
14579         canonical_option_num_elements and trailing elements of
14580         canonical_option.
14581         * opts.h (struct cl_decoded_option): Allow four elements in
14582         canonical_option.  Add field canonical_option_num_elements.
14583         * Makefile.in (opts-common.o): Update dependencies.
14584
14585 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14586
14587         PR middle-end/44790
14588         PR middle-end/44993
14589         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
14590         sure the base has address_mode before adding the offset.
14591
14592 2010-07-27  Xinliang David Li  <davidxl@google.com>
14593
14594         * tree-flow.h (create_mem_ref): Add one new parameter.
14595         * tree-ssa-address.c (create_mem_ref): New parameter.
14596         (addr_to_parts): Ditto.
14597         (move_variant_to_index): New function.
14598         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
14599
14600 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14601
14602         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
14603         4 and 5.
14604         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
14605         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
14606         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
14607         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
14608         CODE_LABELs and NOTEs.
14609         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
14610         * combine.c (try_combine): Likewise.
14611         * ira.c (setup_prohibited_mode_move_regs): Likewise.
14612         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
14613
14614 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14615
14616         * coretypes.h (struct cl_option_handlers): Declare.
14617         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
14618         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
14619         * langhooks-def.h (lhd_handle_option): Declare.
14620         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
14621         * langhooks.c (lhd_handle_option): New.
14622         * langhooks.h (struct lang_hooks): Update prototype and return
14623         value type of handle_option hook.
14624         * optc-gen.awk: Generate target_flags_explicit definition for the
14625         driver.
14626         * opts-common.c: Include diagnostic.h.
14627         (handle_option): Move from opts.c.  Update prototype and return
14628         value type.  Use handlers structure.
14629         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
14630         handlers structure.
14631         (set_option): Move from opts.c.
14632         * opts.c (common_handle_option): Update prototype and return value
14633         type.  Update calls to handle_option and enable_warning_as_error.
14634         (unknown_option_callback, post_handling_callback,
14635         lang_handle_option, target_handle_option): New.
14636         (handle_option, read_cmdline_option): Move to opts-common.c.
14637         (read_cmdline_options): Update prototype.  Update call to
14638         read_cmdline_option.
14639         (decode_options): Initialize and use handlers structure.
14640         (set_option): Move to opts-common.c.
14641         (enable_warning_as_error): Update prototype.  Update call to
14642         handle_option.
14643         * opts.h (struct cl_option_handler_func, struct
14644         cl_option_handlers): New.
14645         (handle_option, enable_warning_as_error): Update prototypes.
14646         (read_cmdline_option): Declare.
14647         * Makefile.in (opts-common.o): Update dependencies.
14648
14649 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14650
14651         * config/arm/arm.c (params.h): Include.
14652         (arm_override_options): Tune gcse-unrestricted-cost.
14653         * config/arm/t-arm (arm.o): Define dependencies.
14654
14655 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14656
14657         PR target/42495
14658         PR middle-end/42574
14659         * basic-block.h (get_dominated_to_depth): Declare.
14660         * dominance.c (get_dominated_to_depth): New function, use
14661         get_all_dominated_blocks as a base.
14662         (get_all_dominated_blocks): Use get_dominated_to_depth.
14663
14664         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
14665         (hoist_exprs): Remove.
14666         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
14667         (compute_code_hoist_vbeinout): Add debug print outs.
14668         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
14669
14670         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
14671         quadratic behavior.
14672         * params.h (MAX_HOIST_DEPTH): New macro.
14673         * doc/invoke.texi (max-hoist-depth): Document.
14674
14675 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14676
14677         PR rtl-optimization/40956
14678         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
14679         constants.
14680
14681 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14682
14683         PR target/42495
14684         PR middle-end/42574
14685         * config/arm/arm.c (legitimize_pic_address): Use
14686         gen_calculate_pic_address pattern to emit calculation of PIC address.
14687         (will_be_in_index_register): New function.
14688         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
14689         (thumb1_legitimate_address_p): Use it provided !strict_p.
14690         * config/arm/arm.md (calculate_pic_address): New expand and split.
14691
14692 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14693
14694         PR target/42495
14695         PR middle-end/42574
14696         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
14697         * config/arm/arm.md (define_split "J", define_split "K"): Make
14698         IRA/reload friendly.
14699
14700 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14701
14702         * gcse.c (insert_insn_end_basic_block): Update signature, remove
14703         unused checks.
14704         (pre_edge_insert, hoist_code): Update.
14705
14706 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14707
14708         PR target/42495
14709         PR middle-end/42574
14710         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
14711
14712 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14713
14714         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
14715
14716 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14717
14718         PR rtl-optimization/40956
14719         PR target/42495
14720         PR middle-end/42574
14721         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
14722         for hoisting.
14723         (hoist_code): Count occurences in current block too.
14724
14725 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14726
14727         * gcse.c (struct expr:max_distance): New field.
14728         (doing_code_hoisting_p): New static variable.
14729         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
14730         simple expressions, don't change behavior for PRE.  Set max_distance.
14731         (insert_expr_in_table): Set new max_distance field.
14732         (hash_scan_set): Update.
14733         (hoist_expr_reaches_here_p): Stop search after max_distance
14734         instructions.
14735         (find_occr_in_bb): New static function.  Use it in ...
14736         (hoist_code): Calculate sizes of basic block before any changes are
14737         done.  Pass max_distance to hoist_expr_reaches_here_p.
14738         (one_code_hoisting_pass): Set doing_code_hoisting_p.
14739
14740         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
14741         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
14742         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
14743         macros.
14744         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
14745         Document.
14746
14747 2010-07-27  Jeff Law  <law@redhat.com>
14748             Maxim Kuvyrkov  <maxim@codesourcery.com>
14749
14750         * gcse.c (compute_transpout, transpout): Remove, move logic
14751         to prune_expressions.
14752         (compute_pre_data): Move pruning of trapping expressions ...
14753         (prune_expressions): ... here.  New static function.
14754         (compute_code_hoist_data): Use it.
14755         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
14756
14757 2010-07-27  Xinliang David Li  <davidxl@google.com>
14758
14759         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
14760         (rewrite_use_address): Adjust iv update position when needed.
14761
14762 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14763
14764         * dbgcnt.def (hoist_insn): New debug counter.
14765         * gcse.c (hoist_code): Use it.
14766
14767 2010-07-27  Xinliang David Li  <davidxl@google.com>
14768
14769         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
14770         (niter_for_single_dom_exit): Passes additional parameter.
14771         (iv_period): Fix comments.
14772         (may_eliminate_iv): Handles multiple exit loops properly.
14773         (free_tree_niter_desc): New function.
14774         (free_loop_data): Frees up loop iteration descriptors.
14775
14776 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14777
14778         PR target/44542
14779         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
14780         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
14781         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
14782         (expand_one_var): Don't consider DECL_ALIGN for variables for
14783         which expand_one_stack_var_at has been already called.
14784
14785         PR testsuite/44701
14786         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
14787         constraints on IA-64.
14788
14789 2010-07-27  Jie Zhang  <jie@codesourcery.com>
14790
14791         PR target/44290
14792         Revert:
14793         2010-07-23  Jie Zhang  <jie@codesourcery.com>
14794
14795         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
14796         false if ! tree_versionable_function_p.
14797
14798 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14799
14800         * dwarf2out.c (add_data_member_location_attribute): Use
14801         add_AT_unsigned instead of add_AT_int if offset is non-negative.
14802
14803 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14804
14805         * postreload.c (try_replace_in_use): New static function.
14806         (reload_combine_recognize_const_pattern): Use it here.  Allow
14807         substituting into a final add insn, and substituting into a memory
14808         reference in an insn that sets the reg.
14809
14810 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14811
14812         * common.opt (o): Add MissingArgError.
14813         * doc/options.texi (MissingArgError): Document.
14814         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
14815         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
14816         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
14817         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
14818         * langhooks.h (struct lang_hooks): Remove missing_argument.
14819         * optc-gen.awk: Handle MissingArgError and output new structure
14820         field initializers.
14821         * opts.c (read_cmdline_option): Use missing_argument_error field
14822         instead of missing_argument langhook.
14823         * opts.h (struct cl_option): Add missing_argument_error field.
14824         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
14825
14826 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
14827
14828         PR target/29090
14829         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
14830         Darwin64 ABI, for zero-sized objects.
14831
14832 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
14833
14834         PR target/35491
14835         PR target/29090
14836
14837         Merge from Apple local 4.2.1.
14838         2005-05-11  Stan Shebs  <shebs@apple.com>
14839         Fix 64-bit varargs for Darwin (Radar 4028089).
14840         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
14841         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
14842         Add argument, add case for 8-byte register half-filled with a float.
14843         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
14844         single-precision floats specially.
14845
14846 2010-07-27  Ira Rosen  <irar@il.ibm.com>
14847
14848         PR tree-optimization/44152
14849         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
14850         complex numbers for further check.
14851         (vect_supported_load_permutation_p): Check nodes with
14852         complex numbers.
14853
14854 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14855
14856         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
14857         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
14858         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
14859         (LANG_HOOKS_INITIALIZER): Add new hooks.
14860         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
14861         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
14862         and complain_wrong_lang_p.  Update init_options prototype.
14863         * c-objc-common.c (c_initialize_diagnostics): First call
14864         c_common_initialize_diagnostics.
14865         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
14866         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
14867         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
14868         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
14869         (hook_uint_void_0): New.
14870         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
14871         (hook_uint_void_0): New.
14872         * opts-common.c (decode_cmdline_option,
14873         decode_cmdline_options_to_array): Also fill in canonical_option field.
14874         * opts.c (complain_wrong_lang): Use langhook to determine whether
14875         to complain instead of special-casing LTO.
14876         (decode_options): Separate lang_mask determination with
14877         option_lang_mask hook from call of init_options hook.
14878         * opts.h (struct cl_decoded_option): Add canonical_option.
14879
14880 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
14881
14882         PR tree-optimization/45083
14883         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
14884
14885 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14886
14887         * postreload.c (reload_combine_recognize_const_pattern): Move test
14888         for limiting the insn movement to the right scope.
14889
14890         PR rtl-optimization/45051
14891         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
14892         than reg_mentioned_p.
14893
14894 2010-07-26  Richard Henderson  <rth@redhat.com>
14895
14896         PR target/44132
14897         * tree-emutls.c: New file.
14898         * Makefile.in (OBJS-common): Add it.
14899         * tree-pass.h (pass_ipa_lower_emutls): Declare.
14900         * passes.c (init_optimization_passes): Add it.
14901
14902         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
14903         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
14904         * expr.c (emutls_var_address): Delete.
14905         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
14906         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
14907         (emutls_finish): Delete.
14908         * toplev.c (compile_file): Don't call it.
14909         * tree.h (emutls_decl): Delete.
14910         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
14911         (emutls_finish, emutls_finalize_control_var): Delete.
14912         (emutls_object_type): Move to tree-emutls.c.
14913         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
14914         default_emutls_var_fields, get_emutls_object_type,
14915         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
14916         default_emutls_var_init): Likewise.
14917         (get_variable_section): Don't special case emutls.
14918         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
14919         default_elf_select_section, default_unique_section,
14920         default_encode_section_info): Likewise.
14921         * varpool.c (decide_is_variable_needed): Likewise.
14922         * gimple-iterator.c (update_call_edge_frequencies): New
14923         (gsi_insert_on_edge_immediate): Use it.
14924         (gsi_insert_seq_on_edge_immediate): Likewise.
14925         (gsi_commit_one_edge_insert): Likewise.
14926
14927         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
14928         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
14929         (x86_64_elf_unique_section): Likewise.
14930
14931 2010-07-26  Jan Hubicka  <jh@suse.cz>
14932
14933         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
14934         GTY((skip)).
14935
14936 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
14937
14938         * target.def (output_source_filename): New hook.
14939         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
14940         * doc/tm.texi: Regenerate.
14941         * toplev.c (output_file_directive) Remove function.
14942         * toplev.h (output_file_directive) Remove.
14943         * output.h (default_asm_output_source_filename,
14944         output_file_directive): Declare.
14945         * varasm.h (default_asm_output_source_filename,
14946         output_file_directive): New functions.
14947
14948         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14949         * config/mips/mips-protos.h (mips_output_filename): Remove.
14950         * config/mips/mips.c (mips_output_filename): Make Static.
14951         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
14952
14953 2010-07-26  Richard Guenther  <rguenther@suse.de>
14954
14955         PR tree-optimization/43784
14956         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
14957         if the destination is used by the call.
14958
14959 2010-07-26  Richard Guenther  <rguenther@suse.de>
14960
14961         PR middle-end/45073
14962         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
14963         SSA updating on being in SSA form.
14964
14965 2010-07-26  Richard Guenther  <rguenther@suse.de>
14966
14967         PR middle-end/45056
14968         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
14969
14970 2010-07-26  Richard Guenther  <rguenther@suse.de>
14971
14972         PR tree-optimization/45071
14973         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
14974         adjust op->opcode.
14975
14976 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
14977
14978         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
14979         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
14980         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
14981         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
14982         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
14983         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
14984         save_r31, return_r31, save_interrupt, return_interrupt,
14985         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
14986         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
14987         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
14988         new ABI requirements.
14989         (save_r6_r9, L_callt_save_r6_r9): Remove.
14990         * config/v850/predicates.md (even_reg_operand, disp23_operand,
14991         const_float_1_operand const_float_0_operand): New Predicates.
14992         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
14993         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
14994         * config/v850/t-v850: Update multilibs for new target variants.
14995         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
14996         * config/v850/t-v850e: Likewise.
14997         * config/v850/v850.c (v850_issue_rate): New.
14998         (v850_strict_argument_naming): New.
14999         (function_arg): Modify to generate a different ABI.
15000         (print_operand): Update case 'z' to support float modes.
15001         (output_move_single): Modify to generate appropriate and better
15002         assembly.
15003         (v850_float_z_comparison_operator, v850_select_cc_mode,
15004         v850_float_nz_comparison_operator,  v850_gen_float_compare,
15005         v850_gen_compare): New functions to support comparison of float values.
15006         (ep_memory_offset): Add support for V850E2 targets.
15007         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
15008         (INTERRUPT_REGPARM_NUM): Remove.
15009         (compute_register_save_size): Add extra case to save/restore long call.
15010         (use_prolog_function): New function to support prologue.
15011         (expand_prologue): Add support for V850E2 targets and modified
15012         as per the current ABI requirements.
15013         (expand_epilogue): Likewise.
15014         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
15015         (construct_save_jarl): Likewise.
15016         (construct_dispose_instruction): Update as per the current ABI
15017         requirements.
15018         (construct_prepare_instruction): Likewise.
15019         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
15020         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
15021         (CPP_SPEC): Updated to support v850e2 targets.
15022         (STRICT_ALIGNMENT): Modified.
15023         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
15024         (FIXED_REGISTERS): Likewise.
15025         (CALL_USED_REGISTERS): Likewise.
15026         (CONDITIONAL_REGISTER_USAGE): Updated.
15027         (HARD_REGNO_MODE_OK): Updated.
15028         (reg_class): Updated to add even registers.
15029         (REG_CLASS_NAMES): Likewise.
15030         (REG_CLASS_CONTENTS): Likewise.
15031         (REGNO_REG_CLASS): Updated for CC registers.
15032         (REG_CLASS_FROM_LETTER): Added support for even registers.
15033         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
15034         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
15035         ARG_POINTER_REGNUM): Updated.
15036         (FUNCTION_ARG_ADVANCE): Define.
15037         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
15038         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
15039         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
15040         (GO_IF_LEGITIMATE_ADDRESS): Updated.
15041         (SELECT_CC_MODE): Define.
15042         (REGISTER_NAMES): Updated to add psw and fcc registers.
15043         (ADDITIONAL_REGISTER_NAMES): Updated.
15044         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
15045         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
15046         * config/v850/v850.md (define_constants): Define new constants.
15047         (type): Update store,bit1,macc,div,fpu and single attributes.
15048         (cpu): New attribute.
15049         (cc): Add set_z attribute.
15050         (unsign23byte_load, sign23byte_load, unsign23hword_load,
15051         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
15052         23word_store): New instructions for 23-bit displacement load and store.
15053         (movqi_internal, movhi_internal): Update the attributes.
15054         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
15055         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
15056         the attributes.
15057         (v850_tst1): Modified using CC_REGNUM.
15058         (tstsi): Remove.
15059         (cmpsi): Modified as define_expand from define_insn.
15060         (cmpsi_insn, cmpsf, cmpdf): New instructions.
15061         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
15062         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
15063         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
15064         one_cmplsi2): Clobber the CC_REGNUM register.
15065         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
15066         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
15067         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
15068         (setf_insn, set_z_insn, set_nz_insn): New instructions for
15069         v850e2v3 target.
15070         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
15071         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
15072         targets.
15073         (sasf_1, sasf_2): Remove.
15074         (sasf): New instruction.
15075         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
15076         targets. CC_REGNUM register is clobbered and attributes are
15077         updated.
15078         (branch_z_normal, branch_z_invert, branch_nz_normal,
15079         branch_nz_invert): New branch related instructions.
15080         (jump): Updated the attributes.
15081         (switch): Update to support new targets. CC_REGNUM register is
15082         clobbered and attributes are updated.
15083         (call_internal_short, call_internal_long, call_value_internal_short,
15084         call_value_internal_long): Updated the attributes.
15085         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
15086         clobbered and attributes are updated.
15087         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
15088         Update to support new targets. CC_REGNUM register is clobbered.
15089         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
15090         instructions.
15091         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
15092         are updated.
15093         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
15094         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
15095         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
15096         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
15097         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
15098         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
15099         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
15100         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
15101         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
15102         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
15103         point instructions defined for V850e2v3 target.
15104         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
15105         Add support for V850E2 targets and CC_REGNUM register is clobbered.
15106         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
15107         support for new targets.
15108         * config/v850/v850-modes.def: New file.
15109         * config/v850/v850.opt(mstrict-align): Remove.
15110         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
15111         mv850e2v3): New command line options for V850.
15112         * config.gcc: Update the newly added files.
15113         * doc/invoke.texi: Update the newly added command line options for
15114         V850 target.
15115
15116 2010-07-26  Richard Guenther  <rguenther@suse.de>
15117
15118         PR tree-optimization/45052
15119         * ipa-pure-const.c (check_stmt): Check volatileness.
15120
15121 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15122
15123         PR target/44707
15124         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
15125         * config/sparc/sparc.c: Include reload.h.
15126         (legitimize_tls_address): Rename into...
15127         (sparc_legitimize_tls_address): ...this.
15128         (legitimize_pic_address): Rename into...
15129         (sparc_legitimize_pic_address): ...this.
15130         (sparc_expand_move): Adjust to above renaming.
15131         (sparc_tls_referenced_p): Likewise.
15132         (sparc_legitimize_tls_address): Likewise.
15133         (sparc_legitimize_pic_address): Likewise.
15134         (sparc_legitimize_address): Likewise.
15135         (sparc_output_mi_thunk): Likewise.
15136         (sparc_legitimize_reload_address): New global function.  Recognize
15137         (lo_sum (high ...) ...) patterns generated by earlier passes.
15138         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
15139
15140 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15141
15142         PR target/44484
15143         * config/sparc/predicates.md (memory_reg_operand): Delete.
15144         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
15145         (*sync_compare_and_swap): Encode the address form in the pattern.
15146         (*sync_compare_and_swapdi_v8plus): Likewise.
15147
15148 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
15149
15150         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
15151         Streamline paragraph on compatibility with the system compiler.
15152
15153 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
15154
15155         PR middle-end/45035
15156         * alias.c (true_dependence_1): Fix thinko in merge of old
15157         true_dependence and canon_true_dependence.
15158
15159 2010-07-23  Jan Hubicka  <jh@suse.cz>
15160
15161         * lto-streamer-out.c (write_symbol): Fix visibilities of external
15162         references.
15163
15164 2010-07-23  Le-Chun Wu  <lcwu@google.com>
15165
15166         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
15167         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
15168         and an unnecessary assignment.
15169         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
15170         self-assign warning.
15171         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
15172         unnecessary self-init.
15173
15174 2010-07-23  Richard Guenther  <rguenther@suse.de>
15175
15176         PR lto/43071
15177         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
15178         for -flto and -fwhopr.
15179
15180 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
15181
15182         PR target/41943
15183         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
15184         (stmp-int-hdrs): Prefix/postfix headers by include_next.
15185         * config.gcc (user_headers_inc_next_pre): New.
15186         (user_headers_inc_next_post): Likewise.
15187         (*-w64-mingw*): Use for float.h post-fixing, and for
15188         stddef.h/stdarg.h pre-fixing by include_next.
15189         * configure.ac (user_headers_inc_next_post): New.
15190         (user_headers_inc_next_pre): New.
15191         * configure: Regenerated.
15192
15193 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15194
15195         * configure.ac: Don't disable TLS on Solaris 8/9 by default
15196         Set tga_func for Solaris 2/x86 resp. SPARC.
15197         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
15198         (LIB_THREAD_LDFLAGS_SPEC): Define.
15199         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
15200         * configure: Regenerate.
15201         * config.in: Regenerate.
15202         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
15203         -pthread, -threads, LIB_TLS_SPEC with -pthread.
15204         * doc/install.texi (Specific, *-*-solaris2*): Document use of
15205         alternate thread libraries on Solaris 8.
15206         Document TLS patch requirements.
15207         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
15208         Document tls.
15209
15210         PR target/18788
15211         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
15212         -shared.
15213
15214 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
15215
15216         * tree.h (struct tree_base): Add nameless_flag bitfield.
15217         (TYPE_NAMELESS, DECL_NAMELESS): Define.
15218         * omp-low.c (create_omp_child_function, scan_omp_parallel,
15219         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
15220         DECL_ARTIFICIAL where needed.
15221         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
15222         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
15223         has DECL_NAMELESS set.
15224
15225 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15226
15227         PR tree-optimization/44915
15228         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
15229         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
15230         (analyze_function): Likewise.
15231
15232 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15233
15234         PR tree-optimization/44914
15235         * tree-sra.c (sra_modify_function_body): Return true if CFG was
15236         changed, add purging dead eh edges.
15237         (ipa_sra_modify_function_body): Return true if CFG was changed,
15238         simplify purging dead eh edges.
15239         (modify_function): Return true if CFG was changed.
15240         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
15241         was changed.
15242         (ipa_early_sra): Likewise.
15243
15244 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15245
15246         PR target/44290
15247         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
15248         if "naked".
15249         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15250         false if ! tree_versionable_function_p.
15251
15252 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
15253
15254         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
15255         * ipa-pure-const.c (special_builtlin_state): Remove
15256         BUILT_IN_ARGS_INFO case.
15257         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
15258         * builtins.c (expand_builtin): Likewise.
15259         (expand_builtin_args_info): Remove.
15260         * doc/tm.texi (__builtin_args_info): Remove.
15261         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
15262         * doc/tm.text.in: Likewise.
15263
15264 2010-07-23  Richard Guenther  <rguenther@suse.de>
15265
15266         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
15267         (lto_symtab_merge_decls_2): Likewise.
15268         * tree-ssa.c (useless_type_conversion_p): Likewise.
15269         * lto-streamer-in.c (input_gimple_stmt): Likewise.
15270         * gimple.c (gtc_visited2, gtc_ob2): Remove.
15271         (struct type_pair_d): Make same_p an array indexed by mode.
15272         Update comment.
15273         (lookup_type_pair): Update initialization.
15274         (struct sccs): Adjust same_p type.
15275         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
15276         Adjust.
15277         (print_gimple_types_stats): Likewise.
15278         * gimple.h (enum gtc_mode): New.
15279         (gimple_types_compatible_p): Adjust prototype.
15280
15281 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
15282
15283         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
15284         again after processing insn.
15285
15286 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15287
15288         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
15289         proper words when !tree_versionable_function_p.
15290
15291 2010-07-23  Richard Guenther  <rguenther@suse.de>
15292
15293         PR tree-optimization/45037
15294         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
15295
15296 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15297
15298         * doc/extend.texi: Remove IP2K from the description of naked attribute.
15299         Add MCORE instead.
15300
15301 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15302
15303         PR lto/44992
15304         * lto-opts.c (lto_write_options): Add NULL file_data argument to
15305         lto_get_section_name.
15306         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
15307         * lto-streamer-out.c (produce_asm): Likewise.
15308         (copy_function): Likewise.
15309         (produce_symtab): Likewise.
15310         (produce_asm_for_decls): Likewise.
15311         * lto-streamer.c (lto_get_section_name): Add file_data argument.
15312         Rewrite to add random postfix to LTO sections.
15313         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
15314         (lto_get_section_name): Add file_data argument to prototype.
15315
15316 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15317
15318         * lto-section-in.c (lto_section_name): Synchronize names
15319         with lto_get_section_name.
15320
15321 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15322
15323         * lto-opts.c (lto_read_file_options): Check for missing section.
15324
15325 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15326
15327         * ira.c (check_allocation): Correctly handle the case where an allocno
15328         with two objects was allocated to a single reg.
15329
15330 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
15331
15332         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
15333         (is_widening_mult_p): Likewise.
15334         (convert_to_widen): Use them.
15335         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
15336         well as integer ones.
15337
15338 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
15339
15340         * alias.c (true_dependence_1): New function, merged version of
15341         true_dependence and canon_true_dependence.
15342         (true_dependence): Simplify.
15343         (canon_true_dependence): Simplify.
15344
15345 2010-07-22  Richard Henderson  <rth@redhat.com>
15346
15347         PR target/45027
15348         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
15349         of V4SFmode for the SSE saves; increase stack alignment if needed.
15350         (ix86_gimplify_va_arg): Don't increase stack alignment here.
15351
15352 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
15353
15354         PR bootstrap/45028
15355         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
15356         call cprop_find_used_regs again via note_uses.
15357
15358 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
15359
15360         * alias.c (get_alias_set): Fix formatting issues.
15361
15362 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
15363
15364         PR middle-end/44878
15365         * stmt.c (expand_value_return):  Call promote_function_mode with
15366         a for_return argument of 2 when returning by reference.
15367
15368 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
15369
15370         PR debug/45024
15371         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
15372         unit DIE if we can find the scope DIE.
15373
15374 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15375
15376         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
15377         changed.  Initialize OBJECT_SUBWORD.
15378         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
15379         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
15380         all callers changed.
15381         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
15382         (finish_allocno): Likewise.
15383         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
15384         (remove_low_level_allocnos): Likewise.
15385         (update_bad_spill_attribute): Likewise.
15386         (setup_min_max_allocno_live_range_point): Likewise.
15387         (sort_conflict_id_map): Likewise.
15388         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
15389         (ior_hard_reg_conflicts): New function.
15390         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
15391         (compress_conflict_vecs): Iterate over objects, not allocnos.
15392         (ira_add_live_range_to_object): New function.
15393         (object_range_compare_func): Renamed from allocno_range_compare_func.
15394         All callers changed.
15395         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
15396         subobjects, widen the min/max range of the lowest-order object to
15397         potentially include all other such low-order objects.
15398         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
15399         (check_allocation): Likewise.  Use more fine-grained tests for register
15400         conflicts.
15401         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
15402         allocno subobjects.
15403         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
15404         choices about which bits to set in each set.  Don't use
15405         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
15406         using the multiple sets we computed.
15407         (push_allocno_to_stack): Iterate over allocno subobjects.
15408         (all_conflicting_hard_regs_coalesced): New static function.
15409         (setup_allocno_available_regs_num): Use it.
15410         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
15411         subobjects.
15412         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
15413         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15414         by ALLOCNO_NUM_OBJECTS.
15415         (calculate_spill_cost): Likewise.
15416         (color_pass): Express if statement in a more normal way.
15417         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
15418         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
15419         (setup_slot_coalesced_allocno_live_ranges): Likewise.
15420         (allocno_reload_assign): Likewise.
15421         (ira_reassign_pseudos): Likewise.
15422         (fast_allocation): Likewise.
15423         * ira-conflicts.c (build_conflict_bit_table): Likewise.
15424         (print_allocno_conflicts): Likewise.
15425         (ira_build_conflicts): Likewise.
15426         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
15427         callers changed.  Test subword 0 of each allocno for conflicts.
15428         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
15429         callers changed.  Iterate over allocno subobjects.
15430         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
15431         * ira-int.h (struct ira_allocno): New member: num_objects.
15432         Rename object to objects and change it into an array.
15433         (ALLOCNO_OBJECT): Add new argument N.
15434         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
15435         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
15436         (ior_hard_reg_conflicts): Declare.
15437         (ira_add_live_range_to_object): Declare.
15438         (ira_allocno_object_iterator): New.
15439         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
15440         (FOR_EACH_ALLOCNO_OBJECT): New macro.
15441         * ira-lives.c (objects_live): Renamed from allocnos_live; all
15442         uses changed.
15443         (allocnos_processed): New sparseset.
15444         (make_object_born): Renamed from make_allocno_born; take an
15445         ira_object_t argument.  All callers changed.
15446         (make_object_dead): Renamed from make_allocno_dead; take an
15447         ira_object_t argument.  All callers changed.
15448         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
15449         All callers changed.
15450         (mark_pseudo_regno_live): Iterate over allocno subobjects.
15451         (mark_pseudo_regno_dead): Likewise.
15452         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
15453         functions.
15454         (mark_ref_live): Detect subword accesses and call
15455         mark_pseudo_regno_subword_live as appropriate.
15456         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
15457         (process_bb_nodes_live): Deal with object-related updates first; set
15458         and test bits in allocnos_processed to avoid computing allocno
15459         statistics more than once.
15460         (create_start_finish_chains): Iterate over objects, not allocnos.
15461         (print_object_live_ranges): New function.
15462         (print_allocno_live_ranges): Use it.
15463         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
15464         and objects_live.
15465
15466 2010-07-22  Richard Guenther  <rguenther@suse.de>
15467
15468         PR lto/42451
15469         * gimple.c (gtc_next_dfs_num): New global.
15470         (struct sccs): Make value a union, add integer same_p member.
15471         (gtc_visit): New function.
15472         (gimple_types_compatible_p_1): New function, split out from ...
15473         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
15474         (iterative_hash_gimple_type): Adjust for sccs change.
15475
15476 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15477
15478         PR tree-optimization/44891
15479         * tree-sra.c: Include gimple-pretty-print.h.
15480         (replace_uses_with_default_def_ssa_name): Renamed to
15481         get_repl_default_def_ssa_name, return the new SSA name instead of
15482         replacing the old one.
15483         (sra_modify_assign): Dump a message when removing a load, if the LHS
15484         is an SSA_NAME, do not do any propagation, just set the RHS to a
15485         default definition SSA NAME, type convert if necessary.
15486         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
15487
15488 2010-07-22  Richard Guenther  <rguenther@suse.de>
15489
15490         PR tree-optimization/45017
15491         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
15492         TYPE_PRECISION of integral types in addition to size.
15493
15494 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15495
15496         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
15497         when no C library is specified.
15498
15499 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15500
15501         * ipa-prop.h (struct ipa_node_params): Updated comment.
15502         (struct ipa_edge_args): Likewise.
15503         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
15504
15505 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15506
15507         * cgraphunit.c (verify_edge_count_and_frequency): New function.
15508         (verify_cgraph_node): Verify frequencies of indirect edges.
15509         * tree-inline.c (tree_function_versioning): Update frequencies of
15510         indirect edges.
15511
15512 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15513
15514         PR target/43698
15515         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
15516         Set *arm_rev to be predicable.
15517
15518 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15519
15520         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
15521         (LINK_COMMAND_SPEC_A): New.
15522         (DSYMUTIL): New.
15523         (DSYMUTIL_SPEC): New.
15524         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
15525         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
15526
15527 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15528
15529         * calls.c (load_register_parameters): Move check for zero
15530         sized items so that only the call to
15531         mem_overlaps_already_clobbered_arg_p () is protected.
15532
15533 2010-07-22  Jan Hubicka  <jh@suse.cz>
15534
15535         * ipa-pure-const.c (varying_state): Break out from ...
15536         (get_function_state): ... here; always return varying_state
15537         when state would be NULL otherwise.
15538         (remove_node_data): Do not free varying state.
15539
15540 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15541
15542         PR bootstrap/44970
15543         PR middle-end/45009
15544         * postreload.c: Include "target.h".
15545         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
15546         into account.
15547         (fixup_debug_insns): Don't copy the rtx.
15548         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
15549         Don't copy when replacing.  Call fixup_debug_insns in the case where
15550         we merged one add with another.
15551         (reload_combine_recognize_pattern): Fail if there aren't any uses.
15552         Try harder to determine whether we're picking a valid index register.
15553         Don't set store_ruid for an insn we're going to scan in the
15554         next iteration.
15555         (reload_combine): Remove unused code.
15556         (reload_combine_note_use): When updating use information for
15557         an old insn, ignore a use that occurs after store_ruid.
15558         * Makefile.in (postreload.o): Update dependencies.
15559
15560         * function.c (record_hard_reg_sets): Restrict the previous change
15561         to cases where the incoming nominal mode is the same as the
15562         incoming promoted mode and everything happens in MODE_INT.
15563
15564 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15565
15566         PR debug/45015
15567         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
15568         ASM_OPERANDS_OUTPUT_IDX.
15569         (adjust_insn): For inline asm with multiple sets ensure first
15570         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
15571         the insn.
15572
15573 2010-07-21  Richard Henderson  <rth@redhat.com>
15574
15575         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
15576         comparison for avoiding xmm register saves.  Emit the xmm register
15577         saves explicitly.
15578         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
15579         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
15580         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
15581         Remove patterns and the associated splitters.
15582
15583 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
15584
15585         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
15586         and imagine parts of a complex, so that they can have the same
15587         base and fall into the same group.
15588
15589 2010-07-21  Richard Guenther  <rguenther@suse.de>
15590
15591         PR lto/45018
15592         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
15593         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
15594         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
15595
15596 2010-07-21  Martin Jambor  <mjambor@suse.cz>
15597
15598         PR tree-optimization/44900
15599         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
15600         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
15601
15602 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
15603
15604         PR middle-end/44738
15605         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
15606
15607 2010-07-21  Richard Guenther  <rguenther@suse.de>
15608
15609         PR middle-end/45013
15610         * tree-ssa.c (useless_type_conversion_p): Dispatch to
15611         gimple_types_compatible_p only when in lto.
15612         * gimple.c (gimple_types_compatible_p): Use canonical types
15613         to speed up comparison.
15614
15615 2010-07-21  Richard Guenther  <rguenther@suse.de>
15616
15617         * tree-flow.h (referenced_var): Move define ...
15618         * tree-flow-inline.h (referenced_var): ... here as an inline
15619         function.  Assert here ...
15620         * tree-dfa.c (referenced_var_lookup): ... instead of here.
15621         * tree-ssa.c (maybe_optimize_var): Check if the variable
15622         is in referenced vars.
15623         (execute_update_addresses_taken): Remove old broken check.
15624         * gimple-pretty-print.c (pp_points_to_solution): Use
15625         referenced_var_lookup.
15626         * tree-into-ssa.c (dump_decl_set): Likewise.
15627
15628 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15629
15630         PR debug/45003
15631         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
15632         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
15633         ZERO_EXTEND here.
15634
15635 2010-07-20  Richard Henderson  <rth@redhat.com>
15636
15637         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
15638
15639 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15640
15641         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
15642         computing the sum of the stack pointer and a large constant.
15643         * config/arm/constraints.md (M): Remove superfluous parentheses.
15644         (Pc): New constraint.
15645
15646 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15647
15648         PR debug/45006
15649         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
15650         operand's type if exp is tcc_unary class tree.
15651
15652 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15653
15654         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
15655         Reverse sense of if_then_else condition.
15656
15657 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15658
15659         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
15660         * config/rs6000/rs6000.c (rs6000_override_options): Set
15661         rs6000_block_move_inline_limit appropriately.
15662         (expand_block_move): Use rs6000_block_move_inline_limit.
15663         * doc/invoke.texi (mblock-move-inline-limit): Document.
15664
15665 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15666
15667         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
15668         FROM and TO.  All callers changed.  Don't look for tracked uses,
15669         just scan the RTL for DEBUG_INSNs and substitute.
15670         (reload_combine_recognize_pattern): Call fixup_debug_insns.
15671         (reload_combine): Ignore DEBUG_INSNs.
15672
15673 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15674
15675         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
15676         depth to 8 from 5.
15677
15678         PR debug/45003
15679         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
15680         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
15681         instead of the result's type.
15682
15683 2010-07-20  Richard Guenther  <rguenther@suse.de>
15684
15685         PR tree-optimization/44977
15686         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
15687         SSA form.
15688
15689 2010-07-20  Richard Guenther  <rguenther@suse.de>
15690
15691         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
15692         (lto_symtab_merge_decls_2): Likewise.
15693         * gimple.h (gimple_types_compatible_p): Declare.
15694         * gimple.c (gimple_queue_type_fixup): Remove.
15695         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
15696         (gimple_compatible_complete_and_incomplete_type_p): New function.
15697         (gimple_types_compatible_p): Adjust.
15698         (gimple_register_type): Remove type fixup code.
15699         (print_gimple_types_stats): Adjust.
15700         (free_gimple_type_tables): Likewise.
15701         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
15702         * tree-ssa.c (useless_type_conversion_p): Likewise.
15703
15704 2010-07-20  Richard Guenther  <rguenther@suse.de>
15705
15706         PR middle-end/44971
15707         PR middle-end/44988
15708         * tree-ssa.c (maybe_optimize_var): New function split out from ...
15709         (execute_update_addresses_taken): ... here.
15710         (non_rewritable_mem_ref_base): Likewise.
15711         (execute_update_addresses_taken): Do not iterate over all referenced
15712         vars but just all local decls and parms.
15713         Properly check call and asm arguments and rewrite call arguments.
15714
15715 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
15716
15717         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
15718         to top level.
15719         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
15720         definitions ...
15721         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
15722         New macro.
15723         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
15724
15725 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
15726
15727         * gengtype.c (start_root_entry): New function, split out from
15728         write_root.  Check whether V is null and raise an error if so.
15729         (write_field_root): Check for V being null.  Don't raise an error here;
15730         set V to null instead.
15731         (write_root): Update comment above function.  Use start_root_entry.
15732
15733 2010-07-19  Xinliang David Li  <davidxl@google.com>
15734
15735         PR testsuite/44932
15736         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
15737         def edges.
15738         (find_uninit_use): Add dump.
15739         (is_use_properly_guarded): Ditto.
15740         (warn_uninitialized_phi): Ditto.
15741         (execute_late_warn_uninitialized): Ditto.
15742
15743 2010-07-19  Richard Guenther  <rguenther@suse.de>
15744
15745         PR middle-end/44941
15746         * expr.c (emit_block_move_hints): Move zero size check first.
15747         Move asserts to more useful places.
15748         * calls.c (load_register_parameters): Check for zero size.
15749
15750 2010-07-19  Richard Henderson  <rth@redhat.com>
15751
15752         * tree-optimize.c (execute_all_early_local_passes): New.  Change
15753         cgraph_state here ...
15754         (execute_early_local_optimizations): ... not here.  Remove.
15755         (pass_early_local_passes, pass_all_early_optimizations): Update.
15756
15757 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
15758
15759         * postreload.c (reload_combine_closest_single_use): Ignore the
15760         number of uses for DEBUG_INSNs.
15761         (fixup_debug_insns): New static function.
15762         (reload_combine_recognize_const_pattern): Use it.  Don't let the
15763         main loop be affected by DEBUG_INSNs.
15764         Really disallow moving adds past a jump insn.
15765         (reload_combine_recognize_pattern): Don't update use_ruid here.
15766         (reload_combine_note_use): Do it here.
15767         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
15768
15769 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
15770
15771         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
15772         of a loop.
15773         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
15774
15775 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
15776
15777         * config/i386/darwin.h: Define darwin_emit_branch_islands.
15778         (TARGET_MACHO_BRANCH_ISLANDS): New.
15779         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
15780         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
15781         default value.
15782         * config/i386/i386.c (output_pic_addr_const): Do not emit
15783         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
15784         (x86_output_mi_thunk): Adjust symbol creation.
15785         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
15786         Remove out of date comment.
15787         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
15788         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
15789         (DARWIN_GENERATE_ISLANDS): Ditto.
15790         (output_call):  Do not emit branch islands unless
15791         darwin_emit_branch_islands is set.
15792         * config/darwin.c: Declare darwin_emit_branch_islands.
15793         (machopic_indirect_data_reference): Do not emit unless
15794         darwin_emit_branch_islands is set.
15795         (darwin_override_options): Set darwin_emit_branch_islands
15796         where it is needed.
15797         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
15798
15799 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15800
15801         * doc/sourcebuild.texi (Effective-Target Keywords): Document
15802         sse_runtime, sse2_runtime.
15803
15804 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
15805
15806         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
15807         low half of a single-register SCmode return value before ORing
15808         it with the high half.
15809         * config/mips/mips16.S (MERGE_GPRf): Likewise.
15810
15811 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15812
15813         PR target/44805
15814         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
15815         on all targets.
15816
15817 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
15818
15819         PR target/42235
15820         * postreload.c (reload_cse_move2add): Return bool, true if anything.
15821         changed.  All callers changed.
15822         (move2add_use_add2_insn): Likewise.
15823         (move2add_use_add3_insn): Likewise.
15824         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
15825         reload_combine.
15826         (RELOAD_COMBINE_MAX_USES): Bump to 16.
15827         (last_jump_ruid): New static variable.
15828         (struct reg_use): New members CONTAINING_MEM and RUID.
15829         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
15830         (reload_combine_split_one_ruid, reload_combine_split_ruids,
15831         reload_combine_purge_insn_uses, reload_combine_closest_single_use
15832         reload_combine_purge_reg_uses_after_ruid,
15833         reload_combine_recognize_const_pattern): New static functions.
15834         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
15835         is true for our reg and that we have available index regs.
15836         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
15837         callers changed.  Use them to initialize fields in struct reg_use.
15838         (reload_combine): Initialize last_jump_ruid.  Be careful when to
15839         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
15840         Call reload_combine_recognize_const_pattern.
15841         (reload_combine_note_store): Update REAL_STORE_RUID field.
15842
15843 2010-07-16  Jason Merrill  <jason@redhat.com>
15844
15845         * Makefile.in (opts-common.o): Depend on options.h.
15846
15847 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
15848
15849         * tree.c (build_common_builtin_nodes): Use build_function_type_list
15850         instead of build_function_type.
15851         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
15852         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
15853
15854 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
15855
15856         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
15857         do all the work.
15858         (rs6000_emit_int_cmove): Use function pointers for insn generation.
15859         Don't force values into registers unnecessarily.
15860         (output_isel): Assert that we're not given conditions we can't handle.
15861         Delete corresponding code.
15862         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
15863         scc_comparison_operator constraint.  Permit 0 for the consequent
15864         operand.  Permit any GPR for the alternative operand.
15865         (isel_unsigned_<mode>): Likewise.
15866
15867 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
15868
15869         PR target/44942
15870         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
15871         argument to const_tree.
15872         * config/i386/i386.c (function_arg_advance): If padding needs to be
15873         inserted before argument, increment cum->words by number of padding
15874         words as well.
15875         (contains_aligned_value_p): Change argument to const_tree.
15876         (ix86_function_arg_boundary): Change second argument to const_tree.
15877
15878 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
15879
15880         PR target/42235
15881         * function.c (record_hard_reg_sets): New static function.
15882         (assign_parm_setup_reg): If an optab for extending exists and the
15883         generated code clobbbers no hard regs, emit the insn directly and
15884         create a REG_EQUIV note.
15885
15886 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15887
15888         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
15889         TREE_CHAIN.
15890         * c-typeck.c (push_init_level): Likewise.
15891         (process_init_element): Likewise.
15892
15893 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
15894
15895         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
15896         (integer_three_node): Add.
15897         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
15898         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
15899         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
15900         of call build_int_cst.
15901         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
15902         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
15903         (find_interesting_uses_address): Ditto.
15904         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
15905         * tree-eh.c (lower_eh_constructs_2): Ditto.
15906         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
15907         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
15908         * expmed.c (expand_divmod): Ditto.
15909         * tree-mudflap.c (mx_register_decls): Ditto.
15910         * varasm.c (array_size_for_constructor): Ditto.
15911         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
15912         * c-parser.c (c_parser_postfix_expression): Ditto.
15913
15914 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
15915
15916         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
15917         New static variables.
15918         (reload_combine_recognize_pattern): New static function, broken out
15919         of reload_combine.
15920         (reload_combine): Use it.  Only initialize first_index_reg and
15921         last_index_reg once.
15922
15923 2010-07-15  Richard Henderson  <rth@redhat.com>
15924
15925         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
15926         when done.
15927
15928 2010-07-15  Jan Hubicka  <jh@suse.cz>
15929
15930         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
15931         comdats for broken gold.
15932         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
15933
15934 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15935
15936         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
15937
15938 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
15939
15940         * tree.h (DECL_CHAIN): Define.
15941         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
15942         * c-decl.c: Likewise.
15943         * c-parser.c: Likewise.
15944         * c-typeck.c: Likewise.
15945         * cfgexpand.c: Likewise.
15946         * cgraph.c: Likewise.
15947         * cgraphunit.c: Likewise.
15948         * combine.c: Likewise.
15949         * config/alpha/alpha.c: Likewise.
15950         * config/arm/arm.c: Likewise.
15951         * config/frv/frv.c: Likewise.
15952         * config/i386/i386.c: Likewise.
15953         * config/i386/winnt-cxx.c: Likewise.
15954         * config/ia64/ia64.c: Likewise.
15955         * config/iq2000/iq2000.c: Likewise.
15956         * config/mep/mep.c: Likewise.
15957         * config/mips/mips.c: Likewise.
15958         * config/pa/som.h: Likewise.
15959         * config/rs6000/rs6000.c: Likewise.
15960         * config/s390/s390.c: Likewise.
15961         * config/sh/sh.c: Likewise.
15962         * config/sh/symbian-cxx.c: Likewise.
15963         * config/sparc/sparc.c: Likewise.
15964         * config/spu/spu.c: Likewise.
15965         * config/stormy16/stormy16.c: Likewise.
15966         * config/vxworks.c: Likewise.
15967         * config/xtensa/xtensa.c: Likewise.
15968         * coverage.c: Likewise.
15969         * dbxout.c: Likewise.
15970         * dwarf2out.c: Likewise.
15971         * emit-rtl.c: Likewise.
15972         * expr.c: Likewise.
15973         * function.c: Likewise.
15974         * gimple-low.c: Likewise.
15975         * gimple-pretty-print.c: Likewise.
15976         * gimplify.c: Likewise.
15977         * integrate.c: Likewise.
15978         * ipa-inline.c: Likewise.
15979         * ipa-prop.c: Likewise.
15980         * ipa-split.c: Likewise.
15981         * ipa-struct-reorg.c: Likewise.
15982         * ipa-type-escape.c: Likewise.
15983         * langhooks.c: Likewise.
15984         * lto-cgraph.c: Likewise.
15985         * omp-low.c: Likewise.
15986         * stor-layout.c: Likewise.
15987         * tree-cfg.c: Likewise.
15988         * tree-complex.c: Likewise.
15989         * tree-dfa.c: Likewise.
15990         * tree-dump.c: Likewise.
15991         * tree-inline.c: Likewise.
15992         * tree-mudflap.c: Likewise.
15993         * tree-nested.c: Likewise.
15994         * tree-object-size.c: Likewise.
15995         * tree-pretty-print.c: Likewise.
15996         * tree-sra.c: Likewise.
15997         * tree-ssa-live.c: Likewise.
15998         * tree-ssa-loop-niter.c: Likewise.
15999         * tree-ssa-math-opts.c: Likewise.
16000         * tree-ssa-reassoc.c: Likewise.
16001         * tree-ssa-sccvn.c: Likewise.
16002         * tree-ssa-structalias.c: Likewise.
16003         * tree-tailcall.c: Likewise.
16004         * tree-vrp.c: Likewise.
16005         * tree.c: Likewise.
16006         * var-tracking.c: Likewise.
16007         * varasm.c: Likewise.
16008
16009 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16010
16011         PR target/44877
16012         * config/spu/spu.c (spu_expand_builtin_1): Allow references
16013         (as well as pointers) as argument to mask_for_load builtins.
16014
16015 2010-07-15  Richard Guenther  <rguenther@suse.de>
16016
16017         PR tree-optimization/44946
16018         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
16019         with accessing only padding properly.
16020
16021 2010-07-15  Jan Hubicka  <jh@suse.cz>
16022
16023         * ipa.c (function_and_variable_visibility): Variables marked as used
16024         should not be localized.
16025
16026 2010-07-15  Jan Hubicka  <jh@suse.cz>
16027
16028         * cgraph.c: Include lto-streamer.h
16029         (change_decl_assembler_name): Work when assembler name hash is at place.
16030         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
16031         be sure to rename it to avoid name clash.
16032         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
16033         Localize hidden symbols only when locally defined.
16034
16035 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
16036
16037         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
16038
16039 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
16040             Kevin F. Quinn  <kevquinn@gentoo.org>
16041
16042         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
16043         * common.opt: Add -Wtrampolines.
16044         * doc/invoke.texi: Add -Wtrampolines.
16045
16046 2010-07-15  Jie Zhang  <jie@codesourcery.com>
16047
16048         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
16049         cortex_a8_issue_ls.
16050
16051 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
16052
16053         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
16054         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
16055
16056 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16057
16058         * config/spu/spu.c (reg_names): Remove prototype.
16059         (call_used_regs): Likewise.
16060
16061 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
16062
16063         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
16064         "unused" with attribute "used".
16065         (__JCR_END__): Likewise.
16066         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
16067         "used" attribute.
16068         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
16069
16070 2010-07-14  Richard Guenther  <rguenther@suse.de>
16071
16072         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
16073         (maybe_fixup_decls): Likewise.
16074         (input_gimple_stmt): Do not fixup anything.
16075         * lto-streamer-out.c (output_gimple_stmt): Make sure all
16076         non-automatic variable uses are wrapped inside a MEM_REF.
16077
16078 2010-07-14  Richard Henderson  <rth@redhat.com>
16079
16080         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
16081         for functions.
16082         * varasm.c (assemble_variable): Remove early exit for functions;
16083         assert that we're given a variable.
16084
16085 2010-07-14  Jie Zhang  <jie@codesourcery.com>
16086
16087         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
16088         cortex_a8_default when neon_type is not none.
16089
16090 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16091
16092         * lower-subreg.c (subreg_context): New static bitmap.
16093         (decompose_multiword_subregs): Allocate and free it.
16094         (find_decomposable_subregs): Set a bit in it for a register that
16095         occurs in a subreg that changes mode but not size.
16096         (can_decompose_p): Test it instead of non_decomposable_context.
16097
16098 2010-07-14  Richard Guenther  <rguenther@suse.de>
16099
16100         PR tree-optimization/44824
16101         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
16102         is_gimple_mem_ref_addr.
16103         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
16104         non-decl_address_invariant_p addresses.
16105
16106 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16107
16108         * reload.c (find_reloads): Revert code to penalize small register
16109         classes that was brought in with the IRA merge.
16110
16111 2010-07-14  Richard Guenther  <rguenther@suse.de>
16112
16113         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
16114         as base of ARRAY_REFs.
16115
16116 2010-07-14  Richard Guenther  <rguenther@suse.de>
16117
16118         PR middle-end/44930
16119         * tree-pretty-print.c (do_niy): Do not print a newline.
16120
16121 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16122
16123         * ira-int.h (struct ira_object): New.
16124         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
16125         (struct ira_allocno): Remove members min, max,
16126         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
16127         conflict_allocnos_num and conflict_vec_p.  Add new member object.
16128         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
16129         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
16130         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
16131         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
16132         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
16133         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
16134         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
16135         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
16136         an ira_object_t rather than ira_allocno_t.  All uses changed.
16137         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16138         contains a vector of ira_object_t; all uses changed.
16139         (ira_objects_num): Declare variable.
16140         (ira_create_allocno_object): Declare function.
16141         (ira_conflict_vector_profitable_p): Adjust prototype.
16142         (ira_allocate_conflict_vec): Renamed from
16143         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
16144         (ira_allocate_object_conflicts): Renamed from
16145         ira_allocate_allocno_conflicts; first arg now ira_object_t.
16146         (struct ira_object_iterator): New.
16147         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
16148         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
16149         to conflict_vec_p.  All uses changed.
16150         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
16151         Changed to take into account that conflicts are now tracked for
16152         objects.
16153         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
16154         Args changed to accept ira_object_t.  All uses changed.
16155         (allocnos_conflict_p): New static function.
16156         (collected_conflict_objects): Renamed from collected_allocno_objects;
16157         now a vector of ira_object_t.  All uses changed.
16158         (build_conflict_bit_table): Changed to take into account that
16159         conflicts are now tracked for objects.
16160         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
16161         (print_allocno_conflicts, ira_build_conflicts): Likewise.
16162         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
16163         setup_allocno_left_conflicts_size, allocno_reload_assign,
16164         fast_allocation): Likewise.
16165         * ira-lives.c (make_hard_regno_born, make_allocno_born)
16166         process_single_reg_class_operands, process_bb_node_lives): Likewise.
16167         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
16168         Likewise.
16169         * ira-build.c (ira_objects_num): New variable.
16170         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16171         contains a vector of ira_object_t; all uses changed.
16172         (ira_object_id_map_vec): Corresponding change.
16173         (object_pool): New static variable.
16174         (initiate_allocnos): Initialize it.
16175         (finish_allocnos): Free it.
16176         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
16177         New functions.
16178         (ira_create_allocno): Don't set members that were removed.
16179         (ira_set_allocno_cover_class): Don't change conflict hard regs.
16180         (merge_hard_reg_conflicts): Changed to take into account that
16181         conflicts are now tracked for objects.
16182         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
16183         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
16184         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
16185         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
16186         setup_min_max_conflict_allocno_ids, ):  Likewise.
16187         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
16188         to ira_object_t; all callers changed.
16189         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
16190         to ira_object_t, all callers changed.
16191         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
16192         to ira_object_t, all callers changed.
16193         (conflict_check, curr_conflict_check_tick): Renamed from
16194         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
16195         changed.
16196         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
16197         arg changed to ira_object_t, all callers changed.
16198         (create_cap_allocno): Call ira_create_allocno_object.
16199         (finish_allocno): Free the corresponding object.
16200         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
16201         callers changed.  Adjusted for dealing with objects.
16202         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
16203         dealing with objects.
16204         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
16205
16206         * ira-int.h (struct live_range): Rename allocno member to object
16207         and change type to ira_object_t.
16208         (struct ira_object): New member live_ranges.
16209         (struct ira_allocno): Remove member live_ranges.
16210         (ALLOCNO_LIVE_RANGES): Remove.
16211         (OBJECT_LIVE_RANGES): New macro.
16212         (ira_create_live_range, ira_copy_live_range_list,
16213         ira_merge_live_range_list, ira_live_ranges_intersect_p,
16214         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
16215         * ira-build.c (ira_create_object): Initialize live ranges here.
16216         (ira_create_allocno): Not here.
16217         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
16218         changed to ira_object_t, all callers changed.
16219         (copy_live_range): Rename from copy_allocno_live_range, all callers
16220         changed.
16221         (ira_copy_live_range_list): Rename from
16222         ira_copy_allocno_live_range_list, all callers changed.
16223         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
16224         all callers changed.
16225         (ira_live_ranges_intersect_p): Rename from
16226         ira_allocno_live_ranges_intersect_p, all callers changed.
16227         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
16228         callers changed.
16229         (ira_finish_live_range_list): Rename from
16230         ira_finish_allocno_live_range_list, all callers changed.
16231         (change_object_in_range_list): Rename from change_allocno_in_range_list,
16232         last arg changed to ira_object_t, all callers changed.
16233         (finish_allocno): Changed to expect live ranges in the allocno's object.
16234         (move_allocno_live_ranges, copy_allocno_live_ranges,
16235         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
16236         ira_flattening, ira_build): Likewise.
16237         * ira-color.c (allocnos_have_intersected_live_ranges_p,
16238         slot_coalesced_allocno_live_ranges_intersect,
16239         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
16240         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16241         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
16242         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
16243         make_allocno_dead, create_start_finish_chains,
16244         remove_some_program_points_and_update_live_ranges,
16245         ira_debug_live_range_list): Likewise.
16246
16247         * ira-int.h (ira_object_conflict_iterator): Rename from
16248         ira_allocno_conflict_iterator.
16249         (ira_object_conflict_iter_init): Rename from
16250         ira_allocno_conflict_iter_init, second arg changed to
16251         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
16252         FOR_EACH_ALLOCNO_CONFLICT.
16253         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
16254         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
16255         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
16256         * ira-conflicts.c (print_allocno_conflicts): Likewise.
16257
16258 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
16259
16260         PR other/44874
16261         * tree-dump.c (dump_options): Add enumerate_locals entry.
16262         Add TDF_NOID exclusion to all entry.
16263         * tree-dump.h (dump_enumerated_decls): Declare.
16264         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
16265         Don't display type uid.
16266         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
16267         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
16268         * tree-ssa-live.c: Include gimple.h.
16269         (numbered_tree_d): New struct.
16270         (numbered_tree): New typedef.
16271         (DEF_VEC_O (numbered_tree): New.
16272         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
16273         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
16274         (dump_enumerated_decls): Likewise.
16275         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
16276         debug info and flag_dump_final_insns, call dump_enumerated_decls.
16277         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
16278         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
16279
16280 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
16281
16282         * expmed.h (MAX_BITS_PER_WORD): Move to...
16283         * defaults.h (MAX_BITS_PER_WORD): ...here.
16284
16285 2010-07-13  DJ Delorie  <dj@redhat.com>
16286
16287         * config/h8300/h8300.c (h8300_init_once): Default to
16288         -fstrict_volatile_bitfields.
16289
16290         * config/sh/sh.c (sh_override_options): Default to
16291         -fstrict_volatile_bitfields.
16292
16293         * config/rx/rx.c (rx_option_override): New.
16294
16295         * config/m32c/m32c.c (m32c_override_options): Default to
16296         -fstrict_volatile_bitfields.
16297
16298 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
16299
16300         * tree.h (build_function_call_expr): Delete.
16301         (build_call_expr_loc_array): New function.
16302         (build_call_expr_loc_vec): New function.
16303         * tree-flow.h (struct omp_region): Change type of ws_args field
16304         to a VEC.
16305         * builtins.c (build_function_call_expr): Delete.
16306         (build_call_expr_loc_array): New function.
16307         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
16308         (build_call_expr): Likewise.
16309         (build_call_expr_loc_vec): New function.
16310         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
16311         build_function_call_expr.
16312         * expr.c (emutls_var_address): Likewise.
16313         * varasm.c (emutls_common_1): Likewise.
16314         * omp-low.c (expand_omp_atomic_mutex): Likewise.
16315         (expand_omp_taskreg): Adjust for new type of region->ws_args.
16316         (get_ws_args_for): Return a VEC instead of a tree.
16317         (expand_parallel_call): Call build_call_expr_loc_vec instead of
16318         build_function_call_expr.
16319         * stor-layout.c (self_referential_size): Likewise.
16320
16321 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16322
16323         PR testsuite/44701
16324         * recog.c (constrain_operands): Allow side-effects in memory
16325         operands if either < or > constraint is used, rather than if
16326         both < and > is used.
16327
16328 2010-07-13  Richard Guenther  <rguenther@suse.de>
16329
16330         PR middle-end/44911
16331         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
16332         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
16333         without name.
16334
16335 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
16336
16337         PR target/44761
16338         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
16339         to variable emited.
16340         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
16341         * config/sh/sh.md (symGOT_load): Likewise.
16342         (symDTPOFF2reg): Likewise.
16343         (symTPOFF2reg): Likewise.
16344
16345 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16346
16347         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
16348         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
16349
16350 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16351
16352         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
16353         explanation.
16354         Find ucontext_t * on Solaris 11.
16355         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
16356         Handle new Solaris 11 __sighndlr patterns.
16357
16358 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16359
16360         PR debug/44901
16361         * vec.h (VEC_block_remove): Fix comment.
16362         * tree-ssa-live.c (remove_unused_locals): Don't use
16363         VEC_unordered_remove on local_decls, instead replace a single
16364         vector element in each iteration if at least one element had
16365         to be removed and VEC_truncate at the end.
16366         * omp-low.c (expand_omp_taskreg): Likewise.
16367
16368 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16369
16370         * c-decl.c (finish_function): Fix typo in comment.
16371
16372 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
16373
16374         PR bootstrap/44921
16375         * postreload.c (move2add_use_add3_insn): Silence gcc warning
16376         on min_regno.
16377
16378 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
16379
16380         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
16381         (simplify_stmt_using_ranges): Use it.
16382
16383 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16384
16385         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
16386         member.  Do not mark as GTY(()).
16387         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
16388         (spu_builtin_decls): New static variable.
16389         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
16390         (spu_init_builtins): Likewise.
16391         (spu_builtin_mul_widen_even): Likewise.
16392         (spu_builtin_mul_widen_odd): Likewise.
16393         (spu_builtin_mask_for_load): Likewise.
16394         (spu_builtin_vec_perm): Likewise.
16395         * config/spu/spu-c.c: Include "target.h".
16396         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
16397         of using spu_builtins[].fndecl.
16398
16399 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16400
16401         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
16402         imply -minterlink-mips16.
16403
16404 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16405
16406         * config/mips/mips.h (mips16_globals): Declare.
16407         (SWITCHABLE_TARGET): Define.
16408         * config/mips/mips.c: Include target-globals.h.
16409         (mips16_globals): New variable.
16410         (mips_set_mips16_mode): Use save_target_globals and
16411         restore_target_globals instead of target_reinit.
16412
16413 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16414
16415         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
16416         to say that the function can be called more than once.
16417         * target-globals.c (save_target_globals): Call init_reg_sets.
16418
16419 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16420
16421         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
16422         * bb-reorder.h: New file.
16423         * bb-reorder.c (default_target_bb_reorder): New variable.
16424         (this_target_bb_reorder): New conditional variable.
16425         (uncond_jump_length): Redefine as a macro.
16426         * target-globals.h (this_target_bb_reorder): Declare.
16427         (target_globals): Add a bb_reorder field.
16428         (restore_target_globals): Copy the bb_reorder field to
16429         this_target_bb-reorder.
16430         * target-globals.c: Include bb-reorder.h.
16431         (default_target_globals): Initialize the bb_reorder field.
16432         (save_target_globals): Likewise.
16433
16434 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16435
16436         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
16437         * gcse.h: New file.
16438         * gcse.c: Include gcse.h.
16439         (default_target_gcse): New variable.
16440         (this_target_gcse): New conditional variable.
16441         (can_copy): Redefine as a macro.
16442         (can_copy_init_p): New macro.
16443         (can_copy_p): Remove can_copy_init_p.
16444         * target-globals.h (this_target_gcse): Declare.
16445         (target_globals): Add a gcse field.
16446         (restore_target_globals): Copy the gcse field to this_target_gcse.
16447         * target-globals.c: Include gcse.h.
16448         (default_target_globals): Initialize the gcse field.
16449         (save_target_globals): Likewise.
16450
16451 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16452
16453         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
16454         and x_ira_prohibited_mode_move_regs_initialized_p.
16455         (ira_prohibited_mode_move_regs): Redefine as a macro.
16456         * ira.c (ira_prohibited_mode_move_regs): Delete.
16457         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
16458
16459 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16460
16461         * reload.h (target_reload): Add x_cached_reg_save_code and
16462         x_cached_reg_restore_code.
16463         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
16464         Redefine as macros.
16465
16466 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16467
16468         * Makefile.in (target-globals.o): Depend on builtins.h.
16469         * builtins.h: New file.
16470         * builtins.c: Include builtins.h.
16471         (default_target_builtins): New variable.
16472         (this_target_builtins): New conditional variable.
16473         (apply_args_mode, apply_result_mode): Redefine as macros.
16474         * target-globals.h (this_target_builtins): Declare.
16475         (target_globals): Add a builtins field.
16476         (restore_target_globals): Copy the builtins field to
16477         this_target_builtins.
16478         * target-globals.c: Include builtins.h.
16479         (default_target_globals): Initialize the builtins field.
16480         (save_target_globals): Likewise.
16481
16482 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16483
16484         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
16485         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
16486         from expmed.c.
16487         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
16488         (alg_hash, alg_hash_used_p): New macros.
16489         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
16490         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
16491         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
16492
16493 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16494
16495         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
16496         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
16497         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
16498         (this_op_costs, costs_classes): Redefine as macros.
16499         (record_reg_classes): Don't take op_costs as a parameter.
16500         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
16501         (scan_one_insn): Update call to record_operand_costs.
16502
16503 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16504
16505         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
16506         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
16507         (target_ira_int): New structure.
16508         (default_target_ira_int): Declare.
16509         (this_target_ira_int): Declare as a variable or define as a macro.
16510         (ira_reg_mode_hard_regset, ira_register_move_cost)
16511         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
16512         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
16513         (prohibited_class_mode_regs, ira_important_classes_num)
16514         (ira_important_classes, ira_reg_class_intersect)
16515         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
16516         (ira_reg_class_union): Redefine as macros.
16517         * ira.h (target_ira): New structure.
16518         (default_target_ira): Declare.
16519         (this_target_ira): Declare as a variable or define as a macro.
16520         (ira_available_class_regs, ira_hard_regno_cover_class)
16521         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
16522         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
16523         (ira_class_hard_regs_num): Redefine as macros.
16524         * ira.c (default_target_ira, default_target_ira_int): New variables.
16525         (this_target_ira, this_target_ira_int): New conditional variables.
16526         (ira_reg_mode_hard_regset, ira_memory_move_cost)
16527         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
16528         (ira_class_subset_p): Delete.
16529         (no_unit_alloc_regs): Redefine as a macro.
16530         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
16531         (ira_class_hard_regs_num, ira_class_hard_reg_index)
16532         (ira_available_class_regs): Delete.
16533         (alloc_reg_class_subclasses): Redefine as a macro.
16534         (ira_reg_class_cover_size, ira_reg_class_cover)
16535         (ira_important_classes_num, ira_important_classes)
16536         (ira_important_class_nums, ira_class_translate): Delete.
16537         (cover_class_order): Document the variable's lifetime.
16538         (reorder_important_classes): Don't set ira_important_class_nums.
16539         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
16540         (ira_reg_class_super_classes, ira_reg_class_union)
16541         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
16542         Delete.
16543         (setup_reg_class_nregs): Don't set ira_max_regs.
16544         (prohibited_class_mode_regs): Delete.
16545         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
16546         (target_globals): Add ira and ira_int fields.
16547         (restore_target_globals): Copy the ira field to this_target_ira
16548         and the ira_int field to this_target_ira_int.
16549         * target-globals.c: Include ira-int.h.
16550         (default_target_globals): Initialize the ira and ira_int fields.
16551         (save_target_globals): Likewise.
16552
16553 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16554
16555         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
16556         * cfgloop.h (target_cfgloop): New structure.
16557         (default_target_cfgloop): Declare.
16558         (this_target_cfgloop): Declare as a variable or define as a macro.
16559         (target_avail_regs, target_clobbered_regs, target_res_regs)
16560         (target_reg_cost, target_spill_cost): Redefine as macros.
16561         * cfgloopanal.c (default_target_cfgloop): New variable.
16562         (this_target_cfgloop): New conditional variable.
16563         (target_avail_regs, target_clobbered_regs, target_res_regs)
16564         (target_reg_cost, target_spill_cost): Delete.
16565         * target-globals.h (this_target_cfgloop): Declare.
16566         (target_globals): Add a cfgloop field.
16567         (restore_target_globals): Copy the cfgloop field to
16568         this_target_cfgloop.
16569         * target-globals.c: Include cfgloop.h.
16570         (default_target_globals): Initialize the cfgloop field.
16571         (save_target_globals): Likewise.
16572
16573 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16574
16575         * regs.h (target_regs): Add x_direct_load, x_direct_store and
16576         x_float_extend_from_mem.
16577         (direct_load, direct_store, float_extend_from_mem): New macros.
16578         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
16579
16580 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16581
16582         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
16583         (target-globals.o): Depend on $(LIBFUNCS_H).
16584         * libfuncs.h: Include hashtab.h.
16585         (libfunc_entry): Moved from optabs.c.
16586         (target_libfuncs): New structure.
16587         (default_target_libfuncs): Declare.
16588         (this_target_libfuncs): Declare as a variable or define as a macro.
16589         (libfunc_table): Redefine as a macro.
16590         * optabs.c (default_target_libfuncs): New variable.
16591         (this_target_libfuncs): New conditional variable.
16592         (libfunc_table): Delete.
16593         (libfunc_entry): Moved to optabs.h.
16594         (libfunc_hash): Redefine as a macro.
16595         (hash_libfunc, eq_libfunc): Fix comments.
16596         (init_optabs): Use libfunc_hash to detect cases where the function
16597         has already been called.  Clear the hash table instead of
16598         recreating it.
16599         * target-globals.h (this_target_libfuncs): Declare.
16600         (target_globals): Add a libfuncs field.
16601         (restore_target_globals): Copy the libfuncs field to
16602         this_target_libfuncs.
16603         * target-globals.c: Include libfuncs.h.
16604         (default_target_globals): Initialize the libfuncs field.
16605         (save_target_globals): Likewise.
16606
16607 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16608
16609         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
16610         in all dependency lists.
16611
16612 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16613
16614         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
16615         * optabs.h (target_optabs): New structure.
16616         (default_target_optabs): Declare.
16617         (this_target_optabs): Declare as a variable or define as a macro.
16618         (optab_table, convert_optab_table, direct_optab_table): Redefine
16619         as macros.
16620         * optabs.c (default_target_optabs): New variable.
16621         (this_target_optabs): New conditional variable.
16622         (optab_table, convert_optab_table, direct_optab_table): Delete.
16623         * target-globals.h (this_target_optabs): Declare.
16624         (target_globals): Add a optabs field.
16625         (restore_target_globals): Copy the optabs field to
16626         this_target_optabs.
16627         * target-globals.c: Include expr.h and optabs.h.
16628         (default_target_globals): Initialize the optabs field.
16629         (save_target_globals): Likewise.
16630
16631 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16632
16633         * flags.h (target_flagstate): Add x_flag_excess_precision.
16634         (flag_excess_precision): Redefine as a macro.
16635         * toplev.c (flag_excess_precision): Delete.
16636
16637 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16638
16639         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
16640         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
16641         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
16642         (no_caller_save_reg_set): Redefine as a macro.
16643         * reload.h (target_reload): Add x_caller_save_initialized_p and
16644         x_regno_save_mode.
16645         (caller_save_initialized_p): Redefine as a macro.
16646         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
16647         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
16648         (regno_save_mode): Redefine as a macro.
16649
16650 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16651
16652         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
16653         * expmed.h: New file.
16654         * expmed.c (default_target_costs): New variable.
16655         (this_target_costs): New conditional variable.
16656         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
16657         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
16658         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
16659         * target-globals.h (this_target_expmed): Declare.
16660         (target_globals): Add a expmed field.
16661         (restore_target_globals): Copy the expmed field to
16662         this_target_expmed.
16663         * target-globals.c: Include expmed.h.
16664         (default_target_globals): Initialize the expmed field.
16665         (save_target_globals): Likewise.
16666
16667 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16668
16669         * Makefile.in (target-globals.o): Depend on reload.h.
16670         * reload.h (target_reload): New structure.
16671         (default_target_reload): Declare.
16672         (this_target_reload): Declare as a variable or define as a macro.
16673         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
16674         * reload1.c (default_target_reload): New variable
16675         (this_target_reload): New conditional variable.
16676         (indirect_symref_ok, double_reg_address_ok): Delete.
16677         (spill_indirect_levels): Redefine as a macro.
16678         * target-globals.h (this_target_reload): Declare.
16679         (target_globals): Add a reload field.
16680         (restore_target_globals): Copy the reload field to
16681         this_target_reload.
16682         * target-globals.c: Include hard-reg-set.h.
16683         (default_target_globals): Initialize the reload field.
16684         (save_target_globals): Likewise.
16685
16686 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16687
16688         * rtl.h (target_rtl): Add x_static_reg_base_value.
16689         * alias.c (static_reg_base_value): Redefine as a macro.
16690
16691 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16692
16693         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
16694         (GTFILES): Remove reginfo.c.
16695         * rtl.h (target_rtl): Add x_top_of_stack.
16696         (top_of_stack): New macro.
16697         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
16698         (top_of_stack): Delete.
16699
16700 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16701
16702         * regs.h (target_regs): Add x_hard_regs_of_mode,
16703         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
16704         x_may_move_out_cost and x_last_mode_for_init_move_cost.
16705         (have_regs_of_mode, contains_reg_of_mode, move_cost)
16706         (may_move_in_cost, may_move_out_cost): Redefine as macros.
16707         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
16708         (may_move_in_cost, may_move_out_cost): Delete.
16709         (last_mode_for_init_move_cost): Redefine as a macro.
16710
16711 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16712
16713         * hard-reg-set.h (target_hard_regs): New structure.
16714         (default_target_hard_regs): Declare.
16715         (this_target_hard_regs): Declare as a variable or define as a macro.
16716         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
16717         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
16718         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
16719         (reg_class_size, reg_class_subclasses, reg_class_subunion)
16720         (reg_class_superunion, reg_names): Redefine as macros.
16721         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
16722         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
16723         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
16724         (reg_class_contents, reg_class_size, reg_class_subclasses)
16725         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
16726         (default_target_hard_regs): New variable
16727         (this_target_hard_regs, initial_call_really_used_regs)
16728         (initial_reg_alloc_order): New conditional variables.
16729         (initial_reg_names): New variable.
16730         (init_reg_sets): Assert that initial_call_really_used_regs,
16731         initial_reg_alloc_order and initial_reg_names
16732         are all the same size as their variable counterparts.  Use them to
16733         initialize those counterparts.
16734         * target-globals.h (this_target_hard_regs): Declare.
16735         (target_globals): Add a hard_regs field.
16736         (restore_target_globals): Copy the hard_regs field to
16737         this_target_hard_regs.
16738         * target-globals.c: Include hard-reg-set.h.
16739         (default_target_globals): Initialize the hard_regs field.
16740         (save_target_globals): Likewise.
16741
16742 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16743
16744         * Makefile.in (target-globals.o): Depend on $(RTL_H).
16745         * rtl.h (target_rtl): New structure.
16746         (default_target_rtl): Declare.
16747         (this_target_rtl): Declare as a variable or define as a macro.
16748         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
16749         Redefine as macros.
16750         * emit-rtl.c (default_target_rtl): New variable.
16751         (this_target_rtl): New conditional variable.
16752         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
16753         (return_address_pointer_rtx): Delete.
16754         (initial_regno_reg_rtx): New macro.
16755         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
16756         (init_emit_regs): Likewise.
16757         * target-globals.h (this_target_rtl): Declare.
16758         (target_globals): Add a rtl field.
16759         (restore_target_globals): Copy the rtl field to this_target_rtl.
16760         * target-globals.c: Include rtl.h.
16761         (default_target_globals): Initialize the rtl field.
16762         (save_target_globals): Likewise.
16763
16764 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16765
16766         * Makefile.in (target-globals.o): Depend on $(REGS_H).
16767         * regs.h (target_reg_modes): New structure.
16768         (default_target_reg_modes): Declare.
16769         (this_target_reg_modes): Declare as a variable or define as a macro.
16770         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
16771         * reginfo.c (default_target_reg_modes): New variable.
16772         (this_target_reg_modes): New conditional variable.
16773         (hard_regno_nregs, reg_raw_mode): Delete.
16774         * target-globals.h (this_target_regs): Declare.
16775         (target_globals): Add a regs field.
16776         (restore_target_globals): Copy the regs field to this_target_regs.
16777         * target-globals.c: Include regs.h.
16778         (default_target_globals): Initialize the regs field.
16779         (save_target_globals): Likewise.
16780
16781 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16782
16783         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
16784         * doc/tm.texi: Regenerate.
16785         * Makefile.in (OBJS-common): Add target-globals.o.
16786         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
16787         and target-globals.h.
16788         (target-globals.o): New rule.
16789         (GTFILES): Include $(srcdir)/target-globals.h.
16790         * defaults.h (SWITCHABLE_TARGET): Define.
16791         * gengtype.c (open_base_files): Add target-globals.h to the
16792         list of includes.
16793         * target-globals.h: New file.
16794         * target-globals.c: Likewise.
16795
16796         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
16797         * flags.h (target_flag_state): New structure.
16798         (default_target_flag_state): Declare.
16799         (this_target_flag_state): Declare as a variable or define as a macro.
16800         (align_loops_log): Redefine as a macro.
16801         (align_loops_max_skip, align_jumps_log): Likewise.
16802         (align_jumps_max_skip, align_labels_log): Likewise.
16803         (align_labels_max_skip, align_functions_log): Likewise.
16804         * toplev.c (default_target_flag_state): New variable.
16805         (this_target_flag_state): New conditional variable.
16806         (align_loops_log): Delete.
16807         (align_loops_max_skip, align_jumps_log): Likewise.
16808         (align_jumps_max_skip, align_labels_log): Likewise.
16809         (align_labels_max_skip, align_functions_log): Likewise.
16810         * target-globals.h (this_target_flag_state): Declare.
16811         (target_globals): Add a flag_state field.
16812         (restore_target_globals): Copy the flag_state field to
16813         this_target_flag_state.
16814         * target-globals.c: Include flags.h.
16815         (default_target_globals): Initialize the flag_state field.
16816         (save_target_globals): Likewise.
16817
16818 2010-07-12  Jie Zhang  <jie@codesourcery.com>
16819
16820         * postreload.c (reg_symbol_ref[]): New.
16821         (move2add_use_add2_insn): New.
16822         (move2add_use_add3_insn): New.
16823         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
16824         (move2add_note_store): Likewise.
16825
16826 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
16827
16828         PR rtl-optimization/44752
16829         * genautomata.c (main): Don't emit an empty file even if there
16830         is no automaton.
16831
16832 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16833
16834         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
16835         ix86_solaris_return_in_memory.
16836         * config/i386-protos.h: Reflect this.
16837         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
16838         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
16839         Move ...
16840         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
16841
16842 2010-07-12  Jie Zhang  <jie@codesourcery.com>
16843
16844         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
16845         align the stack when it's going to be saved.
16846
16847 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16848
16849         PR pch/14940
16850         * config/host-solaris.c (mmap_fixed): New function.
16851         (sol_gt_pch_get_address): Use it.
16852         (sol_gt_pch_use_address): Likewise.
16853
16854 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16855
16856         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
16857         pentiumpro on Solaris 8 and 9/x86.
16858         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
16859         Document SSE/SSE2 support.
16860         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
16861
16862 2010-07-12  Andi Kleen  <ak@linux.intel.com>
16863
16864         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
16865         instead of gcc_assert to print better error message for multiple
16866         prevailing defs.
16867
16868 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
16869
16870         * config/i386/i386.c (ix86_asm_output_function_label): Change format
16871         string placeholder from 0x%x to %#x.
16872         (ix86_code_end): Use putc to output '\n'.
16873         (ix86_print_operand) <case ';'>: Use putc to output ';'.
16874
16875 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
16876
16877         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
16878         in directive -export.
16879
16880 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
16881
16882         * reginfo.h (reg_classes_intersect_p): Change arguments type to
16883         reg_class_t.
16884         * rtl.h (reg_classes_intersect_p): Adjust prototype.
16885
16886         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16887         Remove macros.
16888         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
16889         rs6000_memory_move_cost): Remove
16890         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
16891         TARGET_MEMORY_MOVE_COST): Define.
16892         (rs6000_register_move_cost): Make static. Change arguments type from
16893         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
16894         (rs6000_memory_move_cost): Make static. Change arguments type from
16895         'enum reg_class' to reg_class_t.
16896
16897 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
16898
16899         PR middle-end/42505
16900         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
16901         lookup code into....
16902         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
16903         new functions.
16904         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
16905         * cfgloopanal.c (target_clobbered_regs): Define.
16906         (init_set_costs): Initialize target_clobbered_regs.
16907         (estimate_reg_pressure_cost): Add call_p argument.  When true,
16908         adjust the number of available registers to exclude the
16909         call-clobbered registers.
16910         * cfgloop.h (target_clobbered_regs): Declare.
16911         (estimate_reg_pressure_cost): Adjust declaration.
16912         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
16913         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
16914         (determine_set_costs): Dump target_clobbered_regs.
16915         (loop_body_includes_call): New function.
16916         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
16917         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
16918         call_p flag through.
16919         (best_gain_for_invariant): Likewise.
16920         (find_invariants_to_move): Likewise.
16921         (move_single_loop_invariants): Likewise, using already-computed
16922         has_call field.
16923
16924 2010-07-10  Richard Guenther  <rguenther@suse.de>
16925             Joern Rennecke  <joern.rennecke@embecosm.com>
16926
16927         PR debug/44832
16928         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
16929         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
16930         unless they have DECL_IGNORED_P set.
16931
16932 2010-07-10  Richard Guenther  <rguenther@suse.de>
16933
16934         PR lto/44889
16935         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
16936         helper function.
16937         (gimple_types_compatible_p): Similar to pointed-to
16938         types allow and merge a mix of complete and incomplete aggregate.
16939         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
16940         (iterative_hash_gimple_type): Adjust for that.
16941
16942 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
16943
16944         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
16945
16946 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
16947
16948         PR objc/44140
16949         * config/darwin.c (output_objc_section_asm_op): Save and restore
16950         section when outputting ObjC section list.
16951
16952 2010-07-09  Jan Hubicka  <jh@suse.cz>
16953
16954         * lto-streamer-out.c (produce_symtab): Do not write alias
16955         cgraph/varpool nodes.
16956
16957 2010-07-09  Jan Hubicka  <jh@suse.cz>
16958
16959         * tree-inline.c (declare_return_variable): Fix ICE while
16960         inlining DECL_BY_VALUE function not in SSA form
16961
16962 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
16963
16964         PR tree-optimization/44576
16965         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
16966         New.  Pull out from is_loop_prefetching_profitable to implement
16967         the trip count to ahead ratio heuristic.
16968         (mem_ref_count_reasonable_p): New.  Pull out from
16969         is_loop_prefetching_profitable to implement the instruction to
16970         memory reference ratio heuristic.  Also consider not reasonable if
16971         the memory reference count is above a threshold (to avoid
16972         explosive compilation time.
16973         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
16974         is_loop_prefetching_profitable to implement the instruction to
16975         prefetch ratio heuristic.
16976         (is_loop_prefetching_profitable): Removed.
16977         (loop_prefetch_arrays): Distribute the cost analysis across the
16978         function to allow early exit of the prefetch analysis.
16979         is_loop_prefetching_profitable is splitted into three functions,
16980         with each one called as early as possible.
16981         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
16982         number of memory references in a loop is considered too many.
16983
16984 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
16985
16986         * reload.c (find_reloads): Don't clear badop if we have a winreg
16987         alternative, but not win, and the class only has fixed regs.
16988         * hard-reg-set.h (class_only_fixed_regs): Declare.
16989         * reginfo.c (class_only_fixed_regs): New array.
16990         (init_reg_sets_1): Initialize it.
16991         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
16992         discourage alternatives using the stack pointer.
16993
16994         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
16995
16996         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
16997
16998         * config/arm/arm.md (cbranchqi4): Fix array size.
16999         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
17000         calculating length.
17001
17002 2010-07-09  Richard Guenther  <rguenther@suse.de>
17003
17004         * gimple.c (struct type_fixup_s): New struct and VEC type.
17005         (gimple_register_type_fixups): New static global.
17006         (gimple_queue_type_fixup): New function.
17007         (gimple_types_compatible_p): Queue type fixups instead of
17008         applying them here.
17009         (gimple_register_type): Apply queued fixups for the
17010         canonical type.  Empty the type fixup queue.
17011
17012 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17013
17014         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
17015         * configure: Regenerate.
17016         * config.in: Ditto.
17017
17018 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17019             Denys Vlasenko  <dvlasenk@redhat.com>
17020             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17021
17022         PR tree-optimization/28632
17023         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
17024         (extract_range_from_binary_expr): Further optimize
17025         BIT_AND_EXPR and BIT_IOR_EXPR.
17026
17027 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
17028
17029         * tree-if-conv.c (fold_or_predicates): New.
17030         (add_to_predicate_list): Call it.
17031
17032 2010-07-09  Richard Guenther  <rguenther@suse.de>
17033
17034         PR middle-end/44890
17035         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
17036         if base is a pointer.
17037         * tree-cfg.c (verify_expr): Update MEM_REF checking.
17038
17039 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
17040
17041         PR target/44877
17042         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
17043         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
17044         builtin mask for load/store builtins.
17045
17046 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17047
17048         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
17049         for "lock addl".
17050         * configure: Regenerate.
17051         * config/i386/i386.c (ix86_print_operand) <case ';'>:
17052         Remove TARGET_MACHO.
17053
17054 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
17055
17056         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
17057         default ISA flags.
17058         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
17059
17060 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
17061
17062         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
17063
17064 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17065
17066         * config/picochip/picochip.md (commsTestPort): Emit more
17067         efficient sequence for tstport instruction.
17068
17069 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17070
17071         * config/i386/i386.c (ix86_veclib_handler): Make static.
17072
17073 2010-07-09  Richard Guenther  <rguenther@suse.de>
17074
17075         PR tree-optimization/44852
17076         * tree-ssa-alias.c: Include toplev.h for exact_log2.
17077         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
17078         in MEM_REF.
17079         (indirect_refs_may_alias_p): Likewise.
17080         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
17081
17082 2010-07-09  Richard Guenther  <rguenther@suse.de>
17083
17084         PR tree-optimization/44882
17085         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
17086         sets do conflict.
17087         (vectorizable_load): Likewise.
17088
17089 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
17090
17091         PR target/40657
17092         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
17093         All callers changed.
17094         Handle the case when we're called for the epilogue.
17095         (thumb_unexpanded_epilogue): Use it.
17096         (thumb1_expand_epilogue): Likewise.
17097
17098 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17099
17100         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
17101         both ranges are range_int_cst_p with non-negative minimum,
17102         try harder to derive smaller range.
17103
17104 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17105
17106         * genrecog.c: Include diagnostic-core.h before toplev.h.
17107         * genoutput.c: Likewise.
17108         * genextract.c: Likewise.
17109         * genautomata.c: Likewise.
17110         * genemit.c: Likewise.
17111         * genpeep.c: Likewise.
17112         * genattrtab.c: Likewise.
17113         * genconditions.c: Likewise.
17114         * genpreds.c: Likewise.
17115
17116 2010-07-08  Andi Kleen  <ak@linux.intel.com>
17117
17118         * lto-section-in.c (lto_section_name): Add missing comma.
17119
17120 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
17121
17122         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
17123         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
17124         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
17125         (ia64_override_options): Rename to...
17126         (ia64_option_override): ... this one. Make static.
17127
17128 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17129
17130         PR middle-end/44843
17131         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
17132         pointed-to type of the offset in a MEM_REF to compute the alignment.
17133
17134 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
17135
17136         * final.c (final_scan_insn): Replace
17137         TARGET_UNWIND_INFO macro check by unwind_emit
17138         hook NULL check.
17139         * targhooks.c (default_unwind_emit): Removed.
17140         * targhooks.h (default_unwind_emit): Likewise.
17141         * target.def (unwind_emit): Set default value to NULL.
17142
17143         * config/i386/i386-protos.h (ix86_asm_output_function_label):
17144         New prototype.
17145         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
17146         for NULL fntype argument and allow 64-bit targets.
17147         (ix86_asm_output_function_label): New function.
17148         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
17149         (ix86_handle_fndecl_attribute): Likewise.
17150         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
17151         * doc/doc/tm.texi: Regenerated.
17152         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
17153         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
17154         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
17155         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
17156         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17157         * config/elfos.h: Likewise.
17158         * config/i386/cygming.h: Likewise.
17159         * config/netbsd-aout.h: Likewise.
17160         * config/openbsd.h: Likewise.
17161         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
17162         by ix86_asm_output_function_label function call.
17163         * varasm.c (assemble_start_function): Use
17164         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17165
17166 2010-07-08  Jan Hubicka  <jh@suse.cz>
17167
17168         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
17169         New function.
17170         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
17171         Declare.
17172         * ipa-cp.c (ipcp_estimate_growth): Use it.
17173         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
17174         Likewise.
17175
17176 2010-07-08  Jan Hubicka  <jh@suse.cz>
17177
17178         * tree-inline.c (declare_return_variable): Allocate annotation for new
17179         temporary.
17180
17181 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17182
17183         PR tree-optimization/44710
17184         * tree-if-conv.c (parse_predicate): New.
17185         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
17186         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
17187
17188 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17189
17190         * common.opt (ftree-loop-if-convert): New flag.
17191         * doc/invoke.texi (ftree-loop-if-convert): Documented.
17192         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
17193         when flag_tree_loop_if_convert is set.
17194
17195 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
17196
17197         * config/i386/i386.c: Use short syntax for function calls
17198         through function pointers.
17199         * config/i386/i386.md: Ditto.
17200
17201 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17202
17203         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
17204
17205 2010-07-08  Richard Guenther  <rguenther@suse.de>
17206
17207         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
17208         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
17209
17210 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
17211
17212         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
17213         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
17214         (loc_list_from_tree): Likewise.
17215         (output_loc_operands): Handle outputting DW_OP_const[48]u
17216         with loc->dtprel set.
17217         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
17218
17219 2010-07-08  Jan Hubicka  <jh@suse.cz>
17220
17221         * ipa.c: Include pointer-set.h
17222         (cgraph_externally_visible_p): New attribute ALIASED;
17223         when in LTO, hidden symbols are local unless they are aliased.
17224         (function_and_variable_visibility): Compute aliased nodes;
17225         handle LTO and hidden symbol on functions and vars.
17226         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
17227         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
17228
17229 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17230
17231         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
17232         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17233         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17234         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17235         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17236         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
17237         (ix86_gen_probe_stack_range): Likewise.
17238         (override_options): Set them.
17239         (ix86_target_stack_probe): New function.
17240         (ix86_compute_frame_layout): Force use of push instructions to
17241         save registers if stack checking with probes is enabled.
17242         (get_scratch_register_on_entry): New function.
17243         (release_scratch_register_on_entry): Likewise.
17244         (ix86_adjust_stack_and_probe): Likewise.
17245         (output_adjust_stack_and_probe): Likewise.
17246         (ix86_emit_probe_stack_range): Likewise.
17247         (output_probe_stack_range): Likewise.
17248         (ix86_expand_prologue): Emit stack checking code if static built-in
17249         stack checking is enabled.
17250         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
17251         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
17252         (output_adjust_stack_and_probe): Likewise.
17253         (output_probe_stack_range): Likewise.
17254         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
17255         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
17256         TARGET_STACK_PROBE.
17257         (allocate_stack_worker_64): Likewise.
17258         (allocate_stack): Likewise.
17259         (adjust_stack_and_probe): New insn.
17260         (probe_stack_range): Likewise.
17261
17262 2010-07-08  Richard Guenther  <rguenther@suse.de>
17263
17264         PR tree-optimization/44831
17265         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
17266         a MEM_REF preserving TBAA info of the original dereference.
17267         Dereference the original pointer if the address is not invariant.
17268         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
17269         at least one invariant address that we are going to dereference.
17270
17271 2010-07-08  Richard Guenther  <rguenther@suse.de>
17272
17273         PR tree-optimization/44861
17274         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
17275         information when building MEM_REFs.
17276         (vectorizable_load): Likewise.
17277         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
17278
17279 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17280
17281         * config/sol2-c.c: Do not include diagnostic-core.h.
17282
17283 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17284
17285         PR bootstrap/44768
17286         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
17287         with respect to current_function_decl. Pass decl of the function.
17288         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
17289         * ipa-inline.c (compute_inline_parameters): Pass decl to
17290         estimated_stack_frame_size.
17291
17292 2010-07-08  Richard Guenther  <rguenther@suse.de>
17293
17294         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
17295         New function.
17296         (valueize_refs): Call it.
17297
17298 2010-07-08  Richard Guenther  <rguenther@suse.de>
17299
17300         PR rtl-optimization/44838
17301         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
17302         SSA form do not use pointer equivalence.
17303
17304 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17305
17306         * dwarf2out.c (AT_linkage_name): Delete.
17307         (add_linkage_attr): New function.
17308         (add_linkage_name): Call it to emit the linkage attribute.
17309         (dwarf2out_finish): Likewise.
17310         (move_linkage_attr): Explicitly accept both attribute variants.
17311
17312 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17313
17314         * toplev.h: Do not include diagnostic-core.h.
17315         Include diagnostic-core.h in every file that includes toplev.h.
17316         * c-tree.h: Do not include toplev.h.
17317         * pretty-print.h: Update comment.
17318         * Makefile.in: Update dependencies.
17319         * alias.c: Include diagnostic-core.h in every file that includes
17320         toplev.h.
17321         * attribs.c: Likewise.
17322         * auto-inc-dec.c: Likewise.
17323         * bb-reorder.c: Likewise.
17324         * bt-load.c: Likewise.
17325         * caller-save.c: Likewise.
17326         * calls.c: Likewise.
17327         * cfg.c: Likewise.
17328         * cfganal.c: Likewise.
17329         * cfgbuild.c: Likewise.
17330         * cfgcleanup.c: Likewise.
17331         * cfghooks.c: Likewise.
17332         * cfgloop.c: Likewise.
17333         * combine.c: Likewise.
17334         * config/alpha/alpha.c: Likewise.
17335         * config/arc/arc.c: Likewise.
17336         * config/arm/arm.c: Likewise.
17337         * config/arm/pe.c: Likewise.
17338         * config/avr/avr.c: Likewise.
17339         * config/bfin/bfin.c: Likewise.
17340         * config/cris/cris.c: Likewise.
17341         * config/crx/crx.c: Likewise.
17342         * config/darwin-c.c: Likewise.
17343         * config/darwin.c: Likewise.
17344         * config/fr30/fr30.c: Likewise.
17345         * config/frv/frv.c: Likewise.
17346         * config/h8300/h8300.c: Likewise.
17347         * config/host-darwin.c: Likewise.
17348         * config/i386/i386.c: Likewise.
17349         * config/i386/netware.c: Likewise.
17350         * config/i386/nwld.c: Likewise.
17351         * config/i386/winnt-cxx.c: Likewise.
17352         * config/i386/winnt-stubs.c: Likewise.
17353         * config/i386/winnt.c: Likewise.
17354         * config/ia64/ia64-c.c: Likewise.
17355         * config/ia64/ia64.c: Likewise.
17356         * config/iq2000/iq2000.c: Likewise.
17357         * config/lm32/lm32.c: Likewise.
17358         * config/m32c/m32c-pragma.c: Likewise.
17359         * config/m32c/m32c.c: Likewise.
17360         * config/m32r/m32r.c: Likewise.
17361         * config/m68hc11/m68hc11.c: Likewise.
17362         * config/m68k/m68k.c: Likewise.
17363         * config/mcore/mcore.c: Likewise.
17364         * config/mep/mep-pragma.c: Likewise.
17365         * config/mep/mep.c: Likewise.
17366         * config/mmix/mmix.c: Likewise.
17367         * config/mn10300/mn10300.c: Likewise.
17368         * config/moxie/moxie.c: Likewise.
17369         * config/pa/pa.c: Likewise.
17370         * config/pdp11/pdp11.c: Likewise.
17371         * config/picochip/picochip.c: Likewise.
17372         * config/rs6000/rs6000-c.c: Likewise.
17373         * config/rs6000/rs6000.c: Likewise.
17374         * config/rx/rx.c: Likewise.
17375         * config/s390/s390.c: Likewise.
17376         * config/score/score.c: Likewise.
17377         * config/score/score3.c: Likewise.
17378         * config/score/score7.c: Likewise.
17379         * config/sh/sh.c: Likewise.
17380         * config/sh/symbian-base.c: Likewise.
17381         * config/sh/symbian-c.c: Likewise.
17382         * config/sh/symbian-cxx.c: Likewise.
17383         * config/sol2-c.c: Likewise.
17384         * config/sol2.c: Likewise.
17385         * config/sparc/sparc.c: Likewise.
17386         * config/spu/spu.c: Likewise.
17387         * config/stormy16/stormy16.c: Likewise.
17388         * config/v850/v850-c.c: Likewise.
17389         * config/v850/v850.c: Likewise.
17390         * config/vax/vax.c: Likewise.
17391         * config/vxworks.c: Likewise.
17392         * config/xtensa/xtensa.c: Likewise.
17393         * convert.c: Likewise.
17394         * cse.c: Likewise.
17395         * cselib.c: Likewise.
17396         * dbgcnt.c: Likewise.
17397         * dbxout.c: Likewise.
17398         * ddg.c: Likewise.
17399         * dominance.c: Likewise.
17400         * emit-rtl.c: Likewise.
17401         * explow.c: Likewise.
17402         * expmed.c: Likewise.
17403         * fixed-value.c: Likewise.
17404         * fold-const.c: Likewise.
17405         * fwprop.c: Likewise.
17406         * gcse.c: Likewise.
17407         * ggc-common.c: Likewise.
17408         * ggc-page.c: Likewise.
17409         * ggc-zone.c: Likewise.
17410         * gimple-low.c: Likewise.
17411         * gimplify.c: Likewise.
17412         * graph.c: Likewise.
17413         * haifa-sched.c: Likewise.
17414         * ifcvt.c: Likewise.
17415         * implicit-zee.c: Likewise.
17416         * integrate.c: Likewise.
17417         * ira-build.c: Likewise.
17418         * ira-color.c: Likewise.
17419         * ira-conflicts.c: Likewise.
17420         * ira-costs.c: Likewise.
17421         * ira-lives.c: Likewise.
17422         * ira.c: Likewise.
17423         * lists.c: Likewise.
17424         * loop-doloop.c: Likewise.
17425         * loop-iv.c: Likewise.
17426         * lto-opts.c: Likewise.
17427         * lto-symtab.c: Likewise.
17428         * main.c: Likewise.
17429         * modulo-sched.c: Likewise.
17430         * optabs.c: Likewise.
17431         * params.c: Likewise.
17432         * plugin.c: Likewise.
17433         * postreload-gcse.c: Likewise.
17434         * postreload.c: Likewise.
17435         * predict.c: Likewise.
17436         * profile.c: Likewise.
17437         * real.c: Likewise.
17438         * regcprop.c: Likewise.
17439         * reginfo.c: Likewise.
17440         * regmove.c: Likewise.
17441         * reorg.c: Likewise.
17442         * resource.c: Likewise.
17443         * rtl.c: Likewise.
17444         * rtlanal.c: Likewise.
17445         * sched-deps.c: Likewise.
17446         * sched-ebb.c: Likewise.
17447         * sched-rgn.c: Likewise.
17448         * sdbout.c: Likewise.
17449         * sel-sched-dump.c: Likewise.
17450         * sel-sched-ir.c: Likewise.
17451         * simplify-rtx.c: Likewise.
17452         * stmt.c: Likewise.
17453         * stor-layout.c: Likewise.
17454         * store-motion.c: Likewise.
17455         * targhooks.c: Likewise.
17456         * tree-cfg.c: Likewise.
17457         * tree-cfgcleanup.c: Likewise.
17458         * tree-dump.c: Likewise.
17459         * tree-eh.c: Likewise.
17460         * tree-inline.c: Likewise.
17461         * tree-nomudflap.c: Likewise.
17462         * tree-object-size.c: Likewise.
17463         * tree-optimize.c: Likewise.
17464         * tree-outof-ssa.c: Likewise.
17465         * tree-phinodes.c: Likewise.
17466         * tree-profile.c: Likewise.
17467         * tree-ssa-ccp.c: Likewise.
17468         * tree-ssa-coalesce.c: Likewise.
17469         * tree-ssa-live.c: Likewise.
17470         * tree-ssa-loop-niter.c: Likewise.
17471         * tree-ssa-loop-prefetch.c: Likewise.
17472         * tree-ssa-loop.c: Likewise.
17473         * tree-ssa-structalias.c: Likewise.
17474         * tree-ssa-uninit.c: Likewise.
17475         * tree-ssa.c: Likewise.
17476         * tree-vect-data-refs.c: Likewise.
17477         * tree-vect-loop-manip.c: Likewise.
17478         * tree-vect-loop.c: Likewise.
17479         * tree-vect-patterns.c: Likewise.
17480         * tree-vect-stmts.c: Likewise.
17481         * tree-vrp.c: Likewise.
17482         * varasm.c: Likewise.
17483         * vec.c: Likewise.
17484         * web.c: Likewise.
17485         * xcoffout.c: Likewise.
17486
17487 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
17488
17489         * gengtype.c (write_field_root): New function.
17490         (write_root): Use it.
17491
17492 2010-07-07  Wei Guozhi  <carrot@google.com>
17493
17494         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17495         of lowest bits to lshift/compare): Add a missing line.
17496
17497 2010-07-07  Wei Guozhi  <carrot@google.com>
17498
17499         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17500         of lowest bits to lshift/compare): New.
17501
17502 2010-07-07  Tom Tromey  <tromey@redhat.com>
17503
17504         * doc/tm.texi: Update.
17505         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
17506         Add @hook.
17507         * target.def (want_debug_pub_sections): New hook.
17508         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
17509         * dwarf2out.c (add_pubname_string): Check
17510         targetm.want_debug_pub_sections.
17511         (add_pubname): Likewise.
17512         (add_pubtype): Likewise.
17513
17514 2010-07-07  Jie Zhang  <jie@codesourcery.com>
17515
17516         * genautomata.c (output_automata_list_min_issue_delay_code):
17517         Correctly decompress min_issue_delay.
17518
17519 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17520
17521         PR rtl-optimization/44404
17522         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
17523         possible, use reg_overlap_mentioned_p instead.
17524
17525 2010-07-07  Duncan Sands  <baldrick@free.fr>
17526
17527         PR middle-end/41355
17528         * tree.c (build_function_type_skip_args): Copy the original type using
17529         build_distinct_type_copy rather than copy_node.
17530
17531 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17532
17533         PR target/44850
17534         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
17535         revision 161876.
17536         (ix86_expand_prologue): Likewise.
17537         (ix86_handle_fndecl_attribute): Likewise.
17538         (ix86_asm_declare_function_name): Likewise.
17539         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17540         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17541         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
17542         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
17543         * doc/extend.texi: Likewise.
17544
17545 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17546
17547         PR target/44844
17548         * config/i386/i386.md (rdrand<mode>): Changed to expand to
17549         retry if the carry flag isn't valid.
17550         (rdrand<mode>_1): New.
17551
17552 2010-07-07  Richard Guenther  <rguenther@suse.de>
17553
17554         PR middle-end/44790
17555         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
17556         for expanding the constant offset for MEM_REFs.
17557
17558 2010-07-07  Richard Guenther  <rguenther@suse.de>
17559
17560         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
17561         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
17562         * gimple.h (is_gimple_operand): Remove.
17563         * gimple.c (is_gimple_operand): Likewise.
17564         (walk_gimple_op): Fix wi->val_only setting for calls.
17565         * tree-cfg.c (verify_gimple_call): Fix argument validation.
17566         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
17567         invalid gimple calls.
17568
17569 2010-07-06  Jan Hubicka  <jh@suse.cz>
17570
17571         * lto-cgraph.c (output_cgraph): Add missing declaration.
17572
17573 2010-07-06  Jan Hubicka  <jh@suse.cz>
17574
17575         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
17576         partition.
17577
17578 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
17579
17580         * doc/gimple.texi (GIMPLE_DEBUG): Document.
17581         * doc/rtl.texi (Debug Information): New node.
17582         (NOTE_INSN_VAR_LOCATION): Document.
17583         (debug_insn): Likewise.
17584         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
17585
17586 2010-07-07  Jan Hubicka  <jh@suse.cz>
17587
17588         With parts by Richard Guenther.
17589
17590         PR middle-end/44813
17591         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
17592         for functions passed by reference.
17593         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
17594         in memory when passed by reference.
17595         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
17596         beggining.
17597         * ipa-split.c (split_function): Cleanup way return value is passed;
17598         handle SSA DECL_BY_REFERENCE retvals.
17599         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
17600         DECL_BY_REFERENCE is set.
17601         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
17602         find_what_p_points_to): Handle RESULT_DECL.
17603         * tree-inline.c (declare_return_variable): Get new entry_block argument;
17604         when passing by reference ensure that RESULT_DECL is gimple_val.
17605         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
17606         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
17607
17608 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17609
17610         PR rtl-optimization/44787
17611         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
17612         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
17613
17614 2010-07-06  Jan Hubicka  <jh@suse.cz>
17615
17616         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
17617         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
17618         with body can prevail.
17619         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
17620         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
17621         * cgraph.c (cgraph_get_node_or_alias): New function.
17622         * cgraph.h (cgraph_get_node_or_alias): Declare.
17623
17624 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
17625
17626         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
17627         support.
17628         (ix86_expand_prologue): Likewise.
17629         (ix86_handle_fndecl_attribute): Likewise.
17630         (ix86_asm_declare_function_name): New function for
17631         ASM_DECLARE_FUNCTION_NAME.
17632         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
17633         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
17634         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
17635         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
17636         * doc/extend.texi: Adjust documentation about ms_hook_prologue
17637         attribute.
17638
17639 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17640
17641         * config/i386/i386.md (immediate_operand): New mode attribute.
17642
17643         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
17644         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
17645         using P mode iterator.
17646         (pro_epilogue_adjust_stack_di_2): Rename from
17647         pro_epilogue_adjust_stack_rex64_2.
17648
17649         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
17650
17651 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17652
17653         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
17654         through gen_mov_insv_1 function pointer.
17655         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
17656         gen_truncxf<mode>2 through gen_truncxf function pointer.
17657         (remainder<mode>3): Ditto.
17658         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
17659         (allocate_stack): Call gen_allocate_stack_worker_64 or
17660         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
17661         function pointer.
17662         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
17663         function pointer.
17664
17665 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17666
17667         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
17668         operand constraint instead of <r><i>m.
17669
17670 2010-07-06  Richard Guenther  <rguenther@suse.de>
17671
17672         PR middle-end/44828
17673         * convert.c (convert_to_integer): Watch out for overflowing
17674         MULT_EXPR as well.
17675
17676 2010-07-05  Jan Hubicka  <jh@suse.cz>
17677
17678         * lto-streamer.c (write_symbol_vec): Rename to ...
17679         (write_symbol) ... this one; write only symbol given and when
17680         present in cache. Sanity check that what is defined is present
17681         in cgraph/varpool with body/finalized decl.
17682         (write_symbols_of_kind): Remove.
17683         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
17684         pairs to produce symtab.
17685         (produce_asm_for_decls): Update call of produce_symtab; don't do so
17686         when doing WPA streaming.
17687
17688 2010-07-05  Jan Hubicka  <jh@suse.cz>
17689
17690         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
17691         function is still available to fold into.
17692
17693 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17694
17695         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
17696         * function.h (struct_function): Change type of local_decls field
17697         to a VEC.
17698         (add_local_decl): New function.
17699         (FOR_EACH_LOCAL_DECL): New macro.
17700         * cfgexpand.c (init_vars_expansion): Adjust for new type of
17701         cfun->local_decls.
17702         (estimated_stack_frame_size): Likewise.
17703         (expand_used_vars): Likewise.
17704         * cgraphbuild.c (build_cgraph_edges): Likewise.
17705         * function.c (instantiate_decls_1): Likewise.
17706         * ipa-struct-reorg.c (build_data_structure): Likewise.
17707         * ipa-type-escape.c (analyze_function): Likewise.
17708         * lto-streamer-in.c (input_function): Likewise.
17709         * lto-streamer-out.c (output_function): Likewise.
17710         * tree-ssa-live.c (remove_unused_locals): Likewise.
17711         * tree.c (free_lang_data_in_decl): Likewise.
17712         (find_decls_types_in_node): Likewise.
17713         * omp-low.c (remove_exit_barrier): Likewise.
17714         (expand_omp_taskreg): Likewise.
17715         (list2chain): Rename to...
17716         (vec2chain): ...this.  Adjust.
17717         * cgraphunit.c (assemble_thunk): Call add_local_decl.
17718         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
17719         * gimple-low.c (record_vars_into): Likewise.
17720         * tree-inline.c (remap_decls): Likewise.
17721         (declare_return_variable): Likewise.
17722         (declare_inline_vars): Likewise.
17723         (copy_forbidden): Adjust for new type of cfun->local_decls.
17724         (add_local_variables): New function.
17725         (expand_call_inline): Call it.
17726         (tree_function_versioning): Likewise.
17727
17728 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
17729
17730         AVX Programming Reference (June, 2010)
17731         * config/i386/cpuid.h (bit_F16C): New.
17732         (bit_RDRND): Likewise.
17733         (bit_FSGSBASE): Likewise.
17734
17735         * config/i386/i386-builtin-types.def: Add
17736         "DEF_FUNCTION_TYPE (UINT16)", function types for
17737         float16 <-> float conversions and
17738         "DEF_FUNCTION_TYPE (VOID, UINT64)".
17739
17740         * config/i386/i386-c.c (ix86_target_macros_internal): Support
17741         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
17742         OPTION_MASK_ISA_F16C.
17743
17744         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
17745         (OPTION_MASK_ISA_RDRND_SET): Likewise.
17746         (OPTION_MASK_ISA_F16C_SET): Likewise.
17747         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
17748         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
17749         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
17750         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
17751         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
17752         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
17753         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
17754         (override_options): Handle them.
17755         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
17756         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
17757         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
17758         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
17759         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
17760         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
17761         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
17762         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
17763         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
17764         (bdesc_args): Likewise.
17765         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
17766         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
17767         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
17768         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
17769         Handle non-memory store.
17770
17771         * config/i386/i386.h (TARGET_FSGSBASE): New.
17772         (TARGET_RDRND): Likewise.
17773         (TARGET_F12C): Likewise.
17774
17775         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
17776         (UNSPEC_VCVTPS2PH): Likewise.
17777         (UNSPECV_RDFSBASE): Likewise.
17778         (UNSPECV_RDGSBASE): Likewise.
17779         (UNSPECV_WRFSBASE): Likewise.
17780         (UNSPECV_WRGSBASE): Likewise.
17781         (UNSPECV_RDRAND): Likewise.
17782         (rdfsbase<mode>): Likewise.
17783         (rdgsbase<mode>): Likewise.
17784         (wrfsbase<mode>): Likewise.
17785         (wrgsbase<mode>): Likewise.
17786         (rdrand<mode>): Likewise.
17787
17788         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
17789
17790         * config/i386/immintrin.h (_rdrand_u16): New.
17791         (_rdrand_u32): Likewise.
17792         (_readfsbase_u32): Likewise.
17793         (_readfsbase_u64): Likewise.
17794         (_readgsbase_u32): Likewise.
17795         (_readgsbase_u64): Likewise.
17796         (_writefsbase_u32): Likewise.
17797         (_writefsbase_u64): Likewise.
17798         (_writegsbase_u32): Likewise.
17799         (_writegsbase_u64): Likewise.
17800         (_rdrand_u64): Likewise.
17801         (_cvtsh_ss): Likewise.
17802         (_mm_cvtph_ps): Likewise.
17803         (_mm256_cvtph_ps): Likewise.
17804         (_cvtss_sh): Likewise.
17805         (_mm_cvtps_ph): Likewise.
17806         (_mm256_cvtps_ph): Likewise.
17807
17808         * config/i386/sse.md (vcvtph2ps): New.
17809         (*vcvtph2ps_load): Likewise.
17810         (vcvtph2ps256): Likewise.
17811         (vcvtps2ph): Likewise.
17812         (*vcvtps2ph): Likewise.
17813         (*vcvtps2ph_store): Likewise.
17814         (vcvtps2ph256): Likewise.
17815
17816         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
17817
17818         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
17819
17820 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
17821
17822         PR bootstrap/44512
17823         * genenums.c (main): Output include of insn-constants.h
17824         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
17825
17826 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
17827
17828         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
17829         (override_options): Initialize it.
17830         (ix86_expand_prologue): Use it.
17831
17832 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
17833
17834         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
17835
17836 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
17837
17838         * double-int.h (fit_double_type): Remove declaration.
17839         * double-int.c (fit_double_type): Remove function.
17840         * tree.h (int_fits_type_p): Adjust prototype.
17841         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
17842         instead of fit_double_type.
17843         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
17844         instead of fit_double_type and build_int_cst_wide.
17845         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
17846         instead of fit_double_type and build_int_cst_wide.
17847         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
17848         of fit_double_type.
17849
17850 2010-07-05  Jan Hubicka  <jh@suse.cz>
17851
17852         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
17853         in_other_partition.
17854         * lto-cgraph.c (referenced_from_other_partition_p,
17855         reachable_from_other_partition_p): Use in_other_partition flags.
17856         (output_node, output_varpool_node): COMDAT nodes always have private
17857         copies and thus are never used from other partition.
17858
17859 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
17860
17861         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
17862         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
17863         * config/ia64/ia64.c Include reload.h.
17864         (ia64_memory_move_cost): New function.
17865         (TARGET_MEMORY_MOVE_COST): Define.
17866         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
17867         memory_move_cost.
17868
17869 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
17870
17871         PR middle-end/42505
17872         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
17873         comments about cost model.
17874         (try_add_cand_for):  Add second strategy for choosing initial set
17875         based on original IVs, controlled by ORIGINALP argument.
17876         (get_initial_solution): Add ORIGINALP argument.
17877         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
17878         (find_optimal_iv_set): Try two different strategies for choosing
17879         the IV set, and return the one with lower cost.
17880
17881 2010-07-05  Richard Guenther  <rguenther@suse.de>
17882
17883         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
17884
17885 2010-07-05  Richard Guenther  <rguenther@suse.de>
17886
17887         * tree.c (reference_alias_ptr_type): New function.
17888         * tree.h (reference_alias_ptr_type): Declare.
17889         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
17890         allow non-TARGET_MEM_REF new refs.
17891         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
17892         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
17893         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
17894         (create_mem_ref): Get alias pointer type.  Adjust calls to
17895         create_mem_ref_raw.
17896         (maybe_fold_tmr): Likewise.
17897         * tree-flow.h (create_mem_ref): Adjust prototype.
17898
17899 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
17900
17901         PR c++/44808
17902         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
17903         *from_p is VAR_DECL.
17904
17905 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17906
17907         * tree.h (build_call_list): Remove.
17908         * tree.c (build_call_list): Remove.
17909
17910 2010-07-05  Richard Guenther  <rguenther@suse.de>
17911
17912         * double-int.h (double_int_sub): Declare.
17913         * double-int.c (double_int_sub): New function.
17914         * dwarf2out.c (field_byte_offset): Use it.
17915         * fixed-value.c (do_fixed_add): Likewise.
17916         (do_fixed_multiply): Likewise.
17917         (do_fixed_divide): Likewise.
17918         * tree-predcom.c (add_ref_to_chain): Likewise.
17919         (determine_roots_comp): Likewise.
17920         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
17921
17922 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17923
17924         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
17925         implementations.
17926
17927 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
17928
17929         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
17930         * arm-modes.def (CC_NOTB): Don't define.
17931         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
17932         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
17933         (LTUGEU): New code_iterator.
17934         (cnb, optab): New corresponding code_attrs.
17935         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
17936         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
17937         using LTUGEU.
17938         (addsi3_carryin_shift_<optab>): Likewise.
17939         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
17940         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
17941         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
17942         (subsi3_compare): Renamed from subsi3_compare0_c.
17943         Change CC_NOTB to CC.
17944         (arm_subsi3_insn): Allow constants for operand 0.
17945         (compare_scc peephole for eq case): New.
17946         (compare_scc splitters): Change CC_NOTB to CC.
17947
17948 2010-07-05  Richard Guenther  <rguenther@suse.de>
17949
17950         * tree-ssa-loop-im.c (for_each_index): Do not handle
17951         ALIGN_INDIRECT_REF.
17952         (gen_lsm_tmp_name): Likewise.
17953         * tree-dump.c (dequeue_and_dump): Likewise.
17954         * tree-pretty-print.c (dump_generic_node): Likewise.
17955         (op_code_prio): Likewise.
17956         (op_symbol_code): Likewise.
17957         * tree.c (staticp): Likewise.
17958         (build1_stat): Likewise.
17959         * tree.h (INDIRECT_REF_P): Likewise.
17960         * fold-const.c (maybe_lvalue_p): Likewise.
17961         (operand_equal_p): Likewise.
17962         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
17963         (ao_ref_init_from_vn_reference): Likewise.
17964         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
17965         (find_interesting_uses_address): Likewise.
17966         * dwarf2out.c (loc_list_from_tree): Likewise.
17967         * gimplify.c (gimplify_expr): Likewise.
17968         * tree-eh.c (tree_could_trap_p): Likewise.
17969         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
17970         * cfgexpand.c (expand_debug_expr): Likewise.
17971         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
17972         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
17973         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
17974         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
17975         * tree-ssa-operands.c (get_expr_operands): Likewise.
17976         * expr.c (safe_from_p): Likewise.
17977         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
17978         * tree-vect-data-refs.c (vect_setup_realignment): Build
17979         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
17980         * tree-vect-stmts.c (vectorizable_load): Likewise.
17981         * tree.def (ALIGN_INDIRECT_REF): Remove.
17982
17983 2010-07-05  Richard Guenther  <rguenther@suse.de>
17984
17985         PR tree-optimization/44784
17986         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
17987         for inserted stmts.
17988         (find_or_generate_expression): Fix SCCVN insertion check.
17989
17990 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
17991
17992         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
17993         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
17994         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
17995         directives.
17996
17997 2010-07-05  Ira Rosen  <irar@il.ibm.com>
17998
17999         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
18000         statements that are not vectorized.
18001         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
18002         in INSIDE_COST.
18003
18004 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
18005
18006         PR bootstrap/44820
18007         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
18008
18009 2010-07-05  Richard Guenther  <rguenther@suse.de>
18010
18011         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
18012         RESULT_DECLs properly.
18013
18014 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
18015
18016         PR rtl-optimization/44695
18017         * config/i386/i386.md (extract_code): Removed.
18018         (<u>divmodqi4): Likewise.
18019         (divmodqi4): New.
18020         (udivmodqi4): Likewise.
18021         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
18022         (udivmodhiqi3): Likewise.
18023
18024 2010-07-04  Jan Hubicka  <jh@suse.cz>
18025
18026         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
18027
18028 2010-07-04  Jan Hubicka  <jh@suse.cz>
18029
18030         * cgraphunit.c (init_cgraph): Only initialize dump file if it
18031         is not already initialized.
18032
18033 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18034
18035         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
18036         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
18037         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
18038         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
18039         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
18040         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
18041         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
18042         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
18043         (sync_new_nand_optab): Redefine as macros.
18044         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
18045         Delete.
18046         (direct_optab_index): New enum.
18047         (direct_optab_d): New structure.
18048         (direct_optab): New typedef.
18049         (direct_optab_table): Declare.
18050         (direct_optab_handler, set_direct_optab_handler): New functions.
18051         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
18052         (sync_lock_release_optab): New macros.
18053         * optabs.c (direct_optab_table): New variable.
18054         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
18055         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
18056         cmpstr_optab and cmpstrn_optab.
18057         (emit_conditional_move): Likewise for movcc_optab.
18058         (can_conditionally_move_p): Likewise for movcc_gen_code.
18059         (init_insn_codes): Clear direct_optab_table.
18060         (init_optabs): Don't initialize the new "direct optabs" here.
18061         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
18062         vcond_gen_code.
18063         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
18064         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
18065         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
18066         (expand_sync_operation): Likewise other sync_*_optabs.
18067         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
18068         to sync_compare_and_swap_optab.
18069         (expand_sync_lock_test_and_set): Use direct_optab_handler for
18070         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
18071         to the names of both.
18072         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
18073         cmpstr_optab and cmpstrn_optab.
18074         (expand_builtin_lock_release): Likewise sync_lock_release.
18075         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
18076         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
18077         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
18078         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
18079         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
18080         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
18081         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
18082         (sync_lock_test_and_set, sync_lock_release): Delete.
18083         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
18084         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
18085         * genopinit.c (optabs): Use set_direct_optab_handler for the new
18086         macro optabs.
18087         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
18088         the "optab" local variable.  Use direct_optab_handler for optab and
18089         sync_compare_and_swap_optab.
18090         * reload1.c (reload_in_optab, reload_out_optab): Delete.
18091         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
18092         reload_in_optab and reload_out_optab.
18093         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
18094         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
18095         * config/pa/pa.c (pa_secondary_reload): Likewise.
18096         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
18097         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
18098         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
18099         (VMSupportsCS8_builtin): Likewise.
18100
18101 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18102
18103         * optabs.h (optab_handlers): Change type of insn_code to int.
18104         (optab_handler, set_optab_handler, convert_optab_handler)
18105         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
18106         CODE_FOR_nothing".
18107         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
18108         (init_insn_codes): Zero both the above arrays.
18109         (init_optabs): Never call init_insn_codes first time around.
18110
18111 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18112
18113         * optabs.h (optab_handler, convert_optab_handler): Turn into
18114         inline functions that return an insn code.
18115         (set_optab_handler, set_convert_optab_handler): New functions.
18116         * builtins.c: Replace optab_handler(X)->insn_code with
18117         optab_handler or set_optab_handler thoughout.  Likewise
18118         convert_optab_handler(X)->insn_code with convert_optab_handler
18119         and set_convert_optab_handler.
18120         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
18121         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
18122         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
18123         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
18124         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
18125         config/spu/spu.c: Likewise.
18126
18127 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18128
18129         PR target/44531
18130         * config.gcc (sh*-*-*): Use regular expressions instead of
18131         the 'i' modifier for sed substitutions.
18132
18133 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
18134
18135         * gimple.c (gimple_body): Comments added.
18136
18137 2010-07-04  Richard Guenther  <rguenther@suse.de>
18138
18139         PR middle-end/44809
18140         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
18141         of an INDIRECT_REF.
18142
18143 2010-07-04  Richard Guenther  <rguenther@suse.de>
18144
18145         PR tree-optimization/44479
18146         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
18147         extra SSA name copy statements which preserves points-to
18148         information.
18149         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18150         Copy points-to information for all pointers.  Properly handle
18151         MEM_REFs.
18152         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
18153         copy statements.
18154         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
18155         dependency.
18156
18157 2010-07-04  Richard Guenther  <rguenther@suse.de>
18158
18159         PR middle-end/44785
18160         * tree-inline.c (initialize_inlined_parameters): Do not
18161         re-use pointer-map slot over remap_type call.
18162
18163 2010-07-04  Richard Guenther  <rguenther@suse.de>
18164
18165         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
18166
18167 2010-07-04  Richard Guenther  <rguenther@suse.de>
18168
18169         PR tree-optimization/44656
18170         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
18171         again after value-replacing in the defintions lhs.
18172
18173 2010-07-04  Ira Rosen  <irar@il.ibm.com>
18174             Revital Eres  <eres@il.ibm.com>
18175
18176         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
18177         Document new arguments.
18178         * doc/tm.texi: Regenerate.
18179         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
18180         Handle unaligned store.
18181         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
18182         * target.def (builtin_vectorization_cost): Add new arguments.
18183         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
18184         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
18185         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
18186         (vect_vfa_segment_size): Fix indentation.
18187         * tree-vectorizer.h (struct _vect_peel_info): New.
18188         (struct _vect_peel_extended_info): New.
18189         (struct _loop_vec_info): Add new field for peeling hash table and a
18190         macro for its access.
18191         (VECT_MAX_COST): Define.
18192         (vect_get_load_cost): Declare.
18193         (vect_get_store_cost, vect_get_known_peeling_cost,
18194         vect_get_single_scalar_iteraion_cost): Likewise.
18195         (vect_supportable_dr_alignment): Add new argument.
18196         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
18197         field.
18198         (destroy_loop_vec_info): Free peeling hash table.
18199         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
18200         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
18201         vect_analyze_slp. Fix indentation.
18202         (vect_get_single_scalar_iteraion_cost): New function.
18203         (vect_get_known_peeling_cost): Likewise.
18204         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
18205         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
18206         statement. Move outside cost calculation inside unknown peeling case.
18207         Call vect_get_known_peeling_cost for known amount of peeling.
18208         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
18209         reference to the print message of forced alignment.
18210         (vect_verify_datarefs_alignment): Update call to
18211         vect_supportable_dr_alignment.
18212         (vect_get_data_access_cost): New function.
18213         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
18214         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
18215         vect_peeling_hash_choose_best_peeling): Likewise.
18216         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
18217         to store all the accesses in the loop and find best possible access to
18218         align using peeling for known alignment case. For unknown alignment
18219         check if stores are preferred or if peeling is worthy.
18220         (vect_find_same_alignment_drs): Analyze pairs of loads too.
18221         (vect_supportable_dr_alignment): Add new argument and check aligned
18222         accesses according to it.
18223         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
18224         (cost_for_stmt): Call vect_get_stmt_cost.
18225         (vect_model_simple_cost): Likewise.
18226         (vect_model_store_cost): Call vect_get_stmt_cost. Call
18227         vect_get_store_cost to calculate the cost of the statement.
18228         (vect_get_store_cost): New function.
18229         (vect_model_load_cost): Call vect_get_stmt_cost. Call
18230         vect_get_load_cost to calculate the cost of the statement.
18231         (vect_get_load_cost): New function.
18232         (vectorizable_store): Update call to vect_supportable_dr_alignment.
18233         (vectorizable_load): Likewise.
18234         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
18235         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
18236         arguments. Handle unaligned store.
18237         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
18238         (rs6000_builtin_support_vector_misalignment): Return true for word and
18239         double word alignments for VSX.
18240         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
18241         vect_supportable_dr_alignment and builtin_vectorization_cost.
18242
18243 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18244
18245         PR target/44597
18246         * config/pa/predicates.md (prefetch_cc_operand): Remove.
18247         (prefetch_nocc_operand): Likewise.
18248         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
18249         (prefetch_20): New insn.
18250         (prefetch_cc): Remove.
18251         (prefetch_nocc): Likewise.
18252
18253 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18254
18255         * expr.c (vector_mode_valid_p): Move to c-common.c.
18256         * expr.h (vector_mode_valid_p): Do not declare here.
18257         * system.h: Poison GCC_EXPR_H in front-ends.
18258         * Makefile.in: Update dependencies.
18259
18260 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18261
18262         PR target/44705
18263         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
18264
18265 2010-07-03  Jan Hubicka  <jh@suse.cz>
18266
18267         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
18268         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
18269         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
18270         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
18271         Likewise.
18272
18273         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
18274         Update timevars.V
18275         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
18276         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
18277         TV_IPA_LTO_DECL_OUT): New.
18278         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
18279
18280 2010-07-03  Jan Hubicka  <jh@suse.cz>
18281
18282         * ipa-inline.c (update_edge_key): Break out from ...
18283         update_callers_keys): ... here;
18284         (update_callee_keys): Update only the edges from caller to callee.
18285         (update_all_calle_keys): Do what update_calle_keys did.
18286         (decide_inlining_of_small_functions): Avoid recomputing of all
18287         callees when badness increase.
18288
18289 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18290
18291         * config/arm/arm.c (arm_attr_length_move_neon): New.
18292         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
18293         * config/arm/neon.md (define_mode_attr V_slen): Remove.
18294         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
18295         to compute length attribute.
18296
18297 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18298
18299         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
18300         as predicate for operand 1 and remove its constraint.
18301         * config/arm/predicates.md (vfp_register_operand): New.
18302         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
18303         (*push_fp_multi): Likewise.
18304
18305 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
18306
18307         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
18308
18309 2010-07-03  Jan Hubicka  <jh@suse.cz>
18310
18311         * config/i386/i386.c (override_options): Revert accidental commit.
18312
18313 2010-07-02  Le-Chun Wu  <lcwu@google.com>
18314
18315         PR c++/44128
18316         * doc/invoke.texi: Update documentation of -Wshadow.
18317
18318 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
18319             Julian Brown  <julian@codesourcery.com>
18320             Sandra Loosemore  <sandra@codesourcery.com>
18321
18322         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
18323         comparisons.  Adjust to take both operands.
18324         (arm_select_cc_mode): Handle DImode comparisons.
18325         (arm_gen_compare_reg): Generate a scratch register for DImode
18326         comparisons which require one.  Use xor for Thumb equality checks.
18327         (arm_const_double_by_immediates): New.
18328         (arm_print_operand): Allow 'Q' and 'R' for constants.
18329         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
18330         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
18331         arm_canonicalize_comparison.
18332         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
18333         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
18334         prototype.
18335         (arm_const_double_by_immediates): Declare.
18336         * config/arm/constraints.md (Di): New constraint.
18337         * config/arm/predicates.md (arm_immediate_di_operand)
18338         (arm_di_operand, cmpdi_operand): New.
18339         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
18340         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
18341         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
18342         (cstoredi4): Handle non-Cirrus also.
18343
18344 2010-07-02  Julian Brown  <julian@codesourcery.com>
18345             Sandra Loosemore  <sandra@codesourcery.com>
18346
18347         PR target/43703
18348         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
18349         (smax<mode>3): Disable for NEON float modes when
18350         flag_unsafe_math_optimizations is false.
18351         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
18352         (*mul<mode>3_neon)
18353         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
18354         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
18355         for NEON float modes when flag_unsafe_math_optimizations is false.
18356         (quad_halves_<code>v4sf): Only enable if
18357         flag_unsafe_math_optimizations is true.
18358         * doc/invoke.texi (ARM Options): Add note about floating point
18359         vectorization requiring -funsafe-math-optimizations.
18360
18361 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18362             Julian Brown  <julian@codesourcery.com>
18363
18364         * config/arm/neon.md (UNSPEC_VABA): Delete.
18365         (UNSPEC_VABAL): Delete.
18366         (UNSPEC_VABS): Delete.
18367         (UNSPEC_VMUL_N): Delete.
18368         (adddi3_neon): New.
18369         (subdi3_neon): New.
18370         (mul<mode>3add<mode>_neon): Make the pattern named.
18371         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
18372         (neon_vadd<mode>): Replace with define_expand, and move the remaining
18373         unspec parts...
18374         (neon_vadd<mode>_unspec): ...to this.
18375         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
18376         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
18377         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
18378         (neon_vaba<mode>): Rewrite in terms of vabd.
18379         (neon_vabal<mode>): Rewrite in terms of vabdl.
18380         (neon_vabs<mode>): Rewrite without unspec.
18381         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
18382         (*arm_subdi3): Likewise.
18383         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
18384         No_op attribute to disable assembly output checks.
18385         * config/arm/arm_neon.h: Regenerated.
18386         * doc/arm-neon-intrinsics.texi: Regenerated.
18387
18388 2010-07-02  Jan Hubicka  <jh@suse.cz>
18389
18390         * ipa-split.c (split_function): For aggregate values, set the return
18391         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
18392         *<retval> = fncall.part ().
18393         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
18394
18395 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18396
18397         * config/arm/neon.md (UNSPEC_VAND): Delete.
18398         (UNSPEC_VBIC): Delete.
18399         (UNSPEC_VCLZ): Delete.
18400         (UNSPEC_VCNT): Delete.
18401         (UNSPEC_VEOR): Delete.
18402         (UNSPEC_VORN): Delete.
18403         (UNSPEC_VORR): Delete.
18404         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
18405         core registers too.
18406         (anddi3_neon): Likewise.
18407         (orndi3_neon): Likewise.
18408         (bicdi3_neon): Likewise.
18409         (xordi3_neon): Likewise.
18410         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
18411         rid of unspec and handle unused operand.
18412         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
18413         * config/arm/predicates.md (imm_for_neon_logic_operand):
18414         Require TARGET_NEON.
18415         (imm_for_neon_inv_logic_operand): Likewise.
18416         * config/arm/arm.md (define_split for logical_binary_operator):
18417         Disable for NEON registers.
18418         (anddi3): Add new define_expand, and rename the insn.  Disable
18419         this insn for NEON, where anddi3_neon now applies.
18420         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
18421         (iordi3): As for anddi3.
18422         (xordi3): Likewise.
18423         * config/arm/neon.ml (Vand): Split DImode variants and mark them
18424         as No_op to disable testing for exact instruction match.
18425         (Vorr): Likewise.
18426         (Veor): Likewise.
18427         (Vbic): Likewise.
18428         (Vorn): Likewise.
18429         * config/arm/arm_neon.h: Regenerated.
18430         * doc/arm-neon-intrinsics.texi: Regenerated.
18431
18432 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18433
18434         * expr.h (emit_stack_probe): Declare.
18435         * explow.c (emit_stack_probe): Make global.
18436         (anti_adjust_stack_and_probe): Fix comments.
18437         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18438         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18439         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18440         * config/sparc/sparc.c: Include except.h.
18441         (sparc_emit_probe_stack_range): New function.
18442         (output_probe_stack_range): Likewise.
18443         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
18444         built-in stack checking is enabled.
18445         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
18446         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18447         (probe_stack_range): New insn.
18448
18449 2010-07-02  Richard Guenther  <rguenther@suse.de>
18450
18451         PR target/43958
18452         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
18453         for argument alignment.
18454
18455 2010-07-02  Jan Hubicka  <jh@suse.cz>
18456
18457         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
18458         walk backwards from entry_bb to check only those basic block of header
18459         that might lead to execution of split part.
18460         (consider_split) ... here.
18461         (find_return_bb): Allow assignment in return BB.
18462         (find_retval): New.
18463         (split_function): Fix name of cloned function; take care of updating
18464         return value in return_bb containing move.
18465
18466 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
18467
18468         PR target/44771
18469         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
18470         used variable insn.
18471
18472 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18473
18474         * implicit-zee.c (combine_reaching_defs): Fix long lines.
18475         (is_set_with_extension_DI): Delete.
18476         (struct zero_extend_info): New structure.
18477         (add_removable_zero_extend): New function.
18478         (find_removable_zero_extends): Use note_stores to find SETs.
18479         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
18480
18481 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18482
18483         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
18484         is_miss_rate_acceptable. Pull total_positions computation
18485         out of the loops.  Early return if miss_positions exceeds
18486         the acceptable threshold.
18487         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
18488         is_miss_rate_acceptable after renaming of compute_miss_rate.
18489
18490 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18491
18492         PR middle-end/44576
18493         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
18494         of 1000) for miss rate if the address diference is greater than or
18495         equal to the cache line size (the two reference will never hit the
18496         same cache line).
18497
18498 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
18499
18500         PR target/42835
18501         * config/arm/arm-modes.def (CC_NOTB): New mode.
18502         * config/arm/arm.c (get_arm_condition_code): Handle it.
18503         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
18504         * config/arm/arm.md (subsi3_compare0_c): New pattern.
18505         (compare_scc): Now a define_and_split.  Add a number of extra
18506         splitters before it.
18507
18508         PR target/42172
18509         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
18510         and ZERO_EXTEND.
18511         (arm_rtx_costs_1): Likewise.
18512         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
18513         * config/arm/arm.md (is_arch6): New attribute.
18514         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
18515         extendqisi2): Tighten the code somewhat, avoiding invalid
18516         RTL to occur in the expander patterns.
18517         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
18518         (thumb1_zero_extendhisi2_v6): Delete.
18519         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
18520         (thumb1_extendhisi2_v6): Delete.
18521         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
18522         (thumb1_extendqisi2_v6): Delete.
18523         (zero_extendhisi2 for register input splitter): New.
18524         (zero_extendqisi2 for register input splitter): New.
18525         (thumb1_extendhisi2 for register input splitter): New.
18526         (extendhisi2 for register input splitter): New.
18527         (extendqisi2 for register input splitter): New.
18528         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
18529         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
18530         and add support for a register alternative requiring a split.
18531         (thumb1_zero_extendqisi2): Likewise.
18532         (arm_zero_extendqisi2): Likewise.
18533         (arm_extendhisi2): Likewise.
18534         (arm_extendqisi2): Likewise.
18535
18536 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18537
18538         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
18539         instead of an unspec.
18540         (neon_expand_vector_init): Likewise.
18541         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
18542         (UNSPEC_VDUP_LANE): Delete.
18543         (UNSPEC VDUP_N): Delete.
18544         (UNSPEC_VGET_HIGH): Delete.
18545         (UNSPEC_VGET_LANE): Delete.
18546         (UNSPEC_VGET_LOW): Delete.
18547         (UNSPEC_VMVN): Delete.
18548         (UNSPEC_VSET_LANE): Delete.
18549         (V_double_vector_mode): New.
18550         (vec_set<mode>_internal): Make code emitted match that for the
18551         corresponding intrinsics.
18552         (vec_setv2di_internal): Likewise.
18553         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
18554         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
18555         (neon_vset_lane<mode>): Combine double and quad patterns and
18556         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
18557         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
18558         (neon_vdup_n<mode>): Rewrite RTL without unspec.
18559         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
18560         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
18561         with neon_vdup_lanev2di, adjusting the pattern from the latter
18562         to be predicable for consistency.
18563         (neon_vdup_lane<mode>_internal): New.
18564         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
18565         to avoid using an unspec.
18566         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
18567         (neon_vdup_lanev2di): Turn into a define_expand.
18568         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
18569         (neon_vget_high<mode>): Replace with....
18570         (neon_vget_highv16qi): New pattern using canonical RTL.
18571         (neon_vget_highv8hi): Likewise.
18572         (neon_vget_highv4si): Likewise.
18573         (neon_vget_highv4sf): Likewise.
18574         (neon_vget_highv2di): Likewise.
18575         (neon_vget_low<mode>): Replace with....
18576         (neon_vget_lowv16qi): New pattern using canonical RTL.
18577         (neon_vget_lowv8hi): Likewise.
18578         (neon_vget_lowv4si): Likewise.
18579         (neon_vget_lowv4sf): Likewise.
18580         (neon_vget_lowv2di): Likewise.
18581
18582         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
18583         test for this emitting vmov.
18584         (Vset_lane): Likewise.
18585         (Vdup_n): Likewise.
18586         (Vmov_n): Likewise.
18587
18588         * doc/arm-neon-intrinsics.texi: Regenerated.
18589
18590 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18591
18592         * config/arm/neon.md (vec_extractv2di): Correct error in register
18593         numbering to reconcile with neon_vget_lanev2di.
18594
18595 2010-07-02  Richard Guenther  <rguenther@suse.de>
18596
18597         * tree-ssa-structalias.c (pt_solution_set_var): New function.
18598         * tree-ssa-alias.h (pt_solution_set_var): Declare.
18599         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
18600         points-to information.
18601
18602 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
18603
18604         * config/s390/s390.c (override_options): Adopt prefetching
18605         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
18606
18607 2010-07-02  Jan Hubicka  <jh@suse.cz>
18608
18609         * df-problems.c (df_kill_notes): Do not collect dead  notes.
18610         (df_set_note): Just call add_reg_note.
18611         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
18612         df_create_unused_note): Do not deal with lists of old notes.
18613         (df_note_bb_compute): Likewise.
18614
18615 2010-07-02  Richard Guenther  <rguenther@suse.de>
18616
18617         * tree-ssa-structalias.c (find_func_aliases): Handle
18618         pointer alignment via BIT_AND_EXPR.
18619         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
18620
18621 2010-07-02  Richard Guenther  <rguenther@suse.de>
18622
18623         * tree-data-ref.c (initialize_data_dependence_relation): Handle
18624         mismatching number of dimensions properly.
18625
18626 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18627
18628         PR target/44707
18629         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
18630         (lo_sum (high ...) ...) patterns generated by earlier passes.
18631
18632 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18633
18634         * doc/install.texi (Prerequisites): Document Perl requirement on
18635         Solaris 2.
18636         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
18637
18638 2010-07-02  Richard Guenther  <rguenther@suse.de>
18639
18640         PR middle-end/44777
18641         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
18642
18643 2010-07-02  Jan Hubicka  <jh@suse.cz>
18644
18645         PR middle-end/44706
18646         * predict.c (predict_paths_for_bb): Handle case when control dependence
18647         BB has only abnormal edges.
18648
18649 2010-07-02  Richard Guenther  <rguenther@suse.de>
18650
18651         PR tree-optimization/44748
18652         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
18653         the embedded conversion in MEM_REFs.
18654
18655 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
18656
18657         * reload.c: Include toplev.h.
18658         * recog.c:  Likewise.
18659         * Makefile.in: Adjust dependencies.
18660
18661 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
18662
18663         PR debug/44694
18664         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
18665         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
18666
18667 2010-07-01  Richard Guenther  <rguenther@suse.de>
18668
18669         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
18670         types for offsets.
18671
18672 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
18673
18674         PR target/44732
18675         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
18676         Fix argument types.
18677
18678 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
18679
18680         PR target/44727
18681         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
18682         Make sure operand 0 dies.
18683
18684 2010-07-01  Richard Guenther  <rguenther@suse.de>
18685
18686         PR middle-end/42834
18687         PR middle-end/44468
18688         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
18689         * doc/generic.texi (References to storage): Document MEM_REF.
18690         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
18691         (print_call_name): Likewise.
18692         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
18693         (build_simple_mem_ref_loc): New function.
18694         (mem_ref_offset): Likewise.
18695         * tree.h (build_simple_mem_ref_loc): Declare.
18696         (build_simple_mem_ref): Define.
18697         (mem_ref_offset): Declare.
18698         * fold-const.c: Include tree-flow.h.
18699         (operand_equal_p): Handle MEM_REF.
18700         (build_fold_addr_expr_with_type_loc): Likewise.
18701         (fold_comparison): Likewise.
18702         (fold_unary_loc): Fold
18703         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
18704         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
18705         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
18706         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
18707         (ptr_deref_may_alias_ref_p_1): Likewise.
18708         (ao_ref_base_alias_set): Properly differentiate base object for
18709         offset and TBAA.
18710         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
18711         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
18712         (indirect_refs_may_alias_p): Likewise.
18713         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
18714         chasing code.
18715         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
18716         (call_may_clobber_ref_p_1): Likewise.
18717         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
18718         * expr.c (expand_assignment): Handle MEM_REF.
18719         (store_expr): Handle MEM_REFs from STRING_CSTs.
18720         (store_field): If expanding a MEM_REF of a non-addressable
18721         decl use bitfield operations.
18722         (get_inner_reference): Handle MEM_REF.
18723         (expand_expr_addr_expr_1): Likewise.
18724         (expand_expr_real_1): Likewise.
18725         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
18726         * alias.c (ao_ref_from_mem): Handle MEM_REF.
18727         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
18728         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
18729         (dr_analyze_indices): Likewise.
18730         (dr_analyze_alias): Likewise.
18731         (object_address_invariant_in_loop_p): Likewise.
18732         * gimplify.c (mark_addressable): Handle MEM_REF.
18733         (gimplify_cond_expr): Build MEM_REFs.
18734         (gimplify_modify_expr_to_memcpy): Likewise.
18735         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
18736         (gimple_fold_indirect_ref): Adjust.
18737         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
18738         * tree.def (MEM_REF): New tree code.
18739         * tree-dfa.c: Include toplev.h.
18740         (get_ref_base_and_extent): Handle MEM_REF.
18741         (get_addr_base_and_unit_offset): New function.
18742         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
18743         * gimple-fold.c (may_propagate_address_into_dereference): Handle
18744         MEM_REF.
18745         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
18746         accesses if the array has just one dimension.  Remove always true
18747         parameter.  Do not require type compatibility here.
18748         (maybe_fold_offset_to_component_ref): Remove.
18749         (maybe_fold_stmt_indirect): Remove.
18750         (maybe_fold_reference): Remove INDIRECT_REF handling.
18751         Fold back to non-MEM_REF.
18752         (maybe_fold_offset_to_address): Simplify.  Deal with type
18753         mismatches here.
18754         (maybe_fold_reference): Likewise.
18755         (maybe_fold_stmt_addition): Likewise.  Also handle
18756         &ARRAY + I in addition to &ARRAY[0] + I.
18757         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
18758         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
18759         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
18760         * tree-ssa.c (useless_type_conversion_p): Make most pointer
18761         conversions useless.
18762         (warn_uninitialized_var): Handle MEM_REF.
18763         (maybe_rewrite_mem_ref_base): New function.
18764         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
18765         to SSA form.
18766         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
18767         INDIRECT_REF handling.
18768         (copy_tree_body_r): Handle MEM_REF.
18769         * gimple.c (is_gimple_addressable): Adjust.
18770         (is_gimple_address): Likewise.
18771         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
18772         invariant base are invariant.
18773         (is_gimple_min_lval): Adjust.
18774         (is_gimple_mem_ref_addr): New function.
18775         (get_base_address): Handle MEM_REF.
18776         (count_ptr_derefs): Likewise.
18777         (get_base_loadstore): Likewise.
18778         * gimple.h (is_gimple_mem_ref_addr): Declare.
18779         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
18780         * tree-cfg.c (verify_address): New function, split out from ...
18781         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
18782         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
18783         INDIRECT_REFs.
18784         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
18785         INDIRECT_REF.  Allow conversions.
18786         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
18787         a register does not change its size.
18788         (verify_types_in_gimple_reference): Verify MEM_REF.
18789         (verify_gimple_assign_single): Disallow INDIRECT_REF.
18790         Handle MEM_REF.
18791         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
18792         New.
18793         (mark_address_taken): Handle MEM_REF.
18794         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
18795         (get_asm_expr_operands): Pass opf_not_non_addressable.
18796         (get_expr_operands): Handle opf_[not_]non_addressable.
18797         Handle MEM_REF.  Remove INDIRECT_REF handling.
18798         * tree-vrp.c (check_array_ref): Handle MEM_REF.
18799         (search_for_addr_array): Likewise.
18800         (check_array_bounds): Likewise.
18801         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
18802         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
18803         (ref_always_accessed_p): Likewise.
18804         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
18805         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
18806         Handle MEM_REF.
18807         * cgraphbuild.c (mark_load): Properly check for NULL result
18808         from get_base_address.
18809         (mark_store): Likewise.
18810         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
18811         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
18812         handling for MEM_REF.
18813         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
18814         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
18815         * builtins.c (stabilize_va_list_loc): Use the function ABI
18816         valist type if we couldn't canonicalize the argument type.
18817         Always dereference with the canonical va-list type.
18818         (maybe_emit_free_warning): Handle MEM_REF.
18819         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
18820         memmove to memcpy.
18821         * builtins.c (fold_builtin_memory_op): Use ref-all types
18822         for all memcpy foldings.
18823         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
18824         (build_outer_var_ref): Likewise.
18825         (scan_omp_1_op): Likewise.
18826         (lower_rec_input_clauses): Likewise.
18827         (lower_lastprivate_clauses): Likewise.
18828         (lower_reduction_clauses): Likewise.
18829         (lower_copyprivate_clauses): Likewise.
18830         (expand_omp_atomic_pipeline): Likewise.
18831         (expand_omp_atomic_mutex): Likewise.
18832         (create_task_copyfn): Likewise.
18833         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
18834         Remove old union trick.  Initialize constant offsets.
18835         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
18836         INDIRECT_REF.  Init base_alias_set properly.
18837         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
18838         (vn_reference_fold_indirect): Adjust for MEM_REFs.
18839         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
18840         for ARRAY_REFs.
18841         (may_insert): Remove.
18842         (visit_reference_op_load): Do not test may_insert.
18843         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
18844         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
18845         a field to store the constant offset this op applies.
18846         (run_scc_vn): Adjust prototype.
18847         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
18848         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
18849         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
18850         bother about volatile qualifiers on pointers.
18851         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
18852         * tree-ssa-loop-ivopts.c
18853         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
18854         (strip_offset_1): Likewise.
18855         (find_interesting_uses_address): Replace INDIRECT_REF handling with
18856         MEM_REF handling.
18857         (get_computation_cost_at): Likewise.
18858         * ipa-pure-const.c (check_op): Handle MEM_REF.
18859         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
18860         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
18861         and constants.
18862         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
18863         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
18864         (eliminate_local_variables_1): Likewise.
18865         (create_call_for_reduction_1): Likewise.
18866         (create_loads_for_reductions): Likewise.
18867         (create_loads_and_stores_for_name): Likewise.
18868         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
18869         (ssa_accessed_in_tree): Handle MEM_REF.
18870         (ssa_accessed_in_assign_rhs): Likewise.
18871         (update_type_size): Likewise.
18872         (analyze_accesses_for_call_stmt): Likewise.
18873         (analyze_accesses_for_assign_stmt): Likewise.
18874         (transform_access_sites): Likewise.
18875         (transform_allocation_sites): Likewise.
18876         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
18877         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
18878         not handle INDIRECT_REF.
18879         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
18880         (cond_store_replacement): Likewise.
18881         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
18882         MEM_REF, no not handle INDIRECT_REFs.
18883         (insert_into_preds_of_block): Properly initialize avail.
18884         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
18885         for ARRAY_REFs.  Properly handle reference lookups that
18886         require a bit re-interpretation.
18887         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
18888         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
18889         (build_ref_for_offset_1): Remove.
18890         (build_ref_for_offset): Build MEM_REFs.
18891         (gate_intra_sra): Disable for now.
18892         (sra_ipa_modify_expr): Handle MEM_REF.
18893         (ipa_early_sra_gate): Disable for now.
18894         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
18895         MEM_REF handling.
18896         (disqualify_base_of_expr): Likewise.
18897         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
18898         MEM_REF handling.
18899         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
18900         Use mem_ref_offset.  Remove bogus folding.
18901         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
18902         (make_fancy_name_1): Add support for MEM_REF.
18903         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
18904         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
18905         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
18906         (compute_complex_ancestor_jump_func): Likewise.
18907         (ipa_analyze_virtual_call_uses): Likewise.
18908         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
18909         INDIRECT_REF folding with more generalized MEM_REF folding.
18910         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
18911         (forward_propagate_addr_into_variable_array_index): Also handle
18912         &ARRAY + I in addition to &ARRAY[0] + I.
18913         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
18914         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
18915         creates assignments with overlap.
18916         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
18917         (get_frame_field): Likewise.
18918         (get_nonlocal_debug_decl): Likewise.
18919         (convert_nonlocal_reference_op): Likewise.
18920         (struct nesting_info): Add mem_refs pointer-set.
18921         (create_nesting_tree): Allocate it.
18922         (convert_local_reference_op): Insert to be folded mem-refs.
18923         (fold_mem_refs): New function.
18924         (finalize_nesting_tree_1): Perform defered folding of mem-refs
18925         (free_nesting_tree): Free the pointer-set.
18926         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
18927         (vectorizable_load): Likewise.
18928         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
18929         (propagate_with_phi): Likewise.
18930         * tree-object-size.c (addr_object_size): Handle MEM_REFs
18931         instead of INDIRECT_REFs.
18932         (compute_object_offset): Handle MEM_REF.
18933         (plus_stmt_object_size): Handle MEM_REF.
18934         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
18935         for &MEM_REF.
18936         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
18937         (symbol_marked_for_renaming): Likewise.
18938         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
18939         (fold-const.o): Add $(TREE_FLOW_H).
18940         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
18941         (find_func_clobbers): Likewise.
18942         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
18943         (decompose_access): Likewise.
18944         (replace_field_acc): Likewise.
18945         (replace_field_access_stmt): Likewise.
18946         (insert_new_var_in_stmt): Likewise.
18947         (get_stmt_accesses): Likewise.
18948         (reorg_structs_drive): Disable.
18949         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
18950         (ix86_canonical_va_list_type): Likewise.
18951
18952 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
18953
18954         PR other/44566
18955         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
18956         * target.def (struct gcc_target): Replace enum reg_class with
18957         reg_class_t in hook argument / return types.
18958         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
18959         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
18960         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
18961         * targhooks.h (default_branch_target_register_class): Likewise.
18962         (default_ira_cover_classes, default_secondary_reload): Likewise.
18963         (default_memory_move_cost, default_register_move_cost): Likewise.
18964         * targhooks.c (default_branch_target_register_class): Likewise.
18965         (default_ira_cover_classes, default_secondary_reload): Likewise.
18966         (default_memory_move_cost, default_register_move_cost): Likewise.
18967         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
18968         * bt-load.c (branch_target_load_optimize): Likewise.
18969         * ira.c (setup_cover_and_important_classes): Likewise.
18970         * ira-costs.c (copy_cost): Likewise.
18971         * reload1.c (emit_input_reload_insns): Likewise.
18972         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
18973         * config/frv/frv.c (frv_secondary_reload): Likewise.
18974         * config/s390/s390.c (s390_secondary_reload): Likewise.
18975         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
18976         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
18977         (ix86_register_move_cost): Likewise.
18978         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
18979         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
18980         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
18981         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
18982         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
18983         (rs6000_ira_cover_classes): Likewise.
18984         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
18985         * config/picochip/picochip-protos.h (picochip_secondary_reload):
18986         Likewise.
18987         * config/pa/pa.c (pa_secondary_reload): Likewise.
18988         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
18989         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
18990         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
18991         * doc/tm.texi: Regenerate.
18992
18993 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
18994
18995         PR bootstrrap/44726
18996         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
18997         use.
18998         (build_alias_set_optimal_p): Likewise.
18999         (build_base_obj_set_for_drs): Likewise.
19000
19001 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
19002
19003         * target.def: Remove comment about licensing problems of function
19004         declarations.
19005
19006         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
19007         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
19008         * doc/tm.texi: Regenerate.
19009
19010         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
19011         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
19012
19013         * target.def (enum_va_list_p): Use DEFHOOK.
19014         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
19015         Rename ptype to ptree.
19016         * doc/tm.texi: Regenerate.
19017
19018         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
19019         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
19020         * doc/tm.texi: Regenerate.
19021
19022         * target.def (memory_move_cost): Use DEFHOOK.
19023         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
19024         Rename regclass AKA class to rclass.
19025         * doc/tm.texi: Regenerate.
19026
19027         * target.def (pragma_parse): Use DEFHOOK.
19028         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
19029         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
19030         * doc/tm.texi: Regenerate.
19031
19032         * target.def (pass_by_reference): Use DEFHOOK.
19033         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
19034         * doc/tm.texi: Regenerate.
19035
19036         * target.def (resolve_overloaded_builtin): Rename params to arglist.
19037         Use DEFHOOK.
19038         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
19039         * doc/tm.texi: Regenerate.
19040
19041         * target.def (return_pops_args): Use DEFHOOK.
19042         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
19043         Rename stack-size to size.
19044         * doc/tm.texi: Regenerate.
19045
19046         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
19047         last-sched_cycle to last_clock, cur_cycle to clock.
19048         * doc/tm.texi.in: Use @hook.
19049         * doc/tm.texi: Regenerate.
19050
19051         * target.def (print_operand, print_operand_address): Update comment.
19052         (print_operand_punct_valid_p): Likewise.
19053
19054 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19055
19056         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
19057         to rtl.h.
19058         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
19059         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
19060         * rtl-error.h: New.
19061         * regrename.c: Do not include toplev.h. Include rtl-error.h.
19062         * rtl-error.c: Likewise.
19063         * reload.c: Likewise.
19064         * recog.c:  Likewise.
19065         * sel-sched.c: Likewise.
19066         * function.c: Likewise.
19067         * reg-stack.c: Likewise.
19068         * cfgrtl.c: Likewise.
19069         * reload1.c: Likewise.
19070         * final.c: Include rtl-error.
19071         * Makefile.in: Adjust dependencies.
19072
19073 2010-06-30  Jan Hubicka  <jh@suse.cz>
19074
19075         PR middle-end/PR44706
19076         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
19077         to return the value.
19078
19079 2010-06-30  Michael Matz  <matz@suse.de>
19080
19081         PR bootstrap/44699
19082         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
19083         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
19084         a gimple reg, attach the original VDEF to the last store in the
19085         sequence.
19086
19087 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
19088
19089         PR other/44034
19090         * config/darwin.c (darwin_override_options): Use renamed
19091         targetm.asm_out.emit_unwind_label.
19092
19093 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19094
19095         PR tree-optimization/39799
19096         * tree-inline.c (remap_ssa_name): Initialize variable only if
19097         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
19098
19099 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
19100
19101         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
19102
19103 2010-06-30  Richard Guenther  <rguenther@suse.de>
19104
19105         PR target/44722
19106         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
19107         against oscillation with reverse peephole2.
19108
19109 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
19110
19111         PR target/44721
19112         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19113         Fix last commit.
19114
19115 2010-06-30  Nick Clifton  <nickc@redhat.com>
19116
19117         * config/rx/rx-modes.def: New file.
19118         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
19119         (CC_REGNUM): Define.
19120         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
19121         register.
19122         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
19123         (SELECT_CC_MODE): Define.
19124         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
19125         (reg:CC CC_REG) instead of (cc0).
19126         (attr "cc"): Delete.
19127         (cbranchsi4): Do not split compare and branch here. Instead move
19128         it to...
19129         (cbranchsi4_<code>): ... here.  New patterns.
19130         (cmpsi): Call rx-compare_redundant to find out if it is necessary
19131         to emit the compare instruction.
19132         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
19133         cc_status flags.
19134         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
19135         FIRST_PSEUDO_REGNUM.
19136         (rx_expand_prologue, rx_expand_epilogue): Likewise.
19137         (rx_notice_update_cc): Delete.
19138         (rx_cc_modes_compatible): New function.
19139         (flags_needed_for_conditional): New function.
19140         (flags_from_mode): New function.
19141         (rx_compare_redundant): New function - scans backwards through
19142         insn list to find out if condition flags are already set correctly.
19143         (TARGET_CC_MODES_COMPATIBLE): Define.
19144         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
19145
19146         * config/rx/rx.h (BRANCH_COST): Define.
19147         (REGISTER_MOVE_COST): Define.
19148         * config/rx/predicates (rx_source_operand): Allow all constant types.
19149         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
19150         (tstsi4): New pattern.
19151         * config/rx/rx.c (rx_memory_move_cost): Define.
19152         (TARGET_MEMORY_MOVE_COST): Define.
19153
19154 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19155
19156         * tree.h (block_may_fallthru): Declare here.
19157         * tree-flow.h (block_may_fallthru): Do not declare here.
19158         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
19159         bitmap.h
19160         * Makefile.in (c-typeck.o): Update dependencies.
19161
19162 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
19163
19164         PR debug/44694
19165         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
19166         * cselib.c (cfa_base_preserved_regno): New static variable.
19167         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
19168         of REGNO (cfa_base_preserved_val->locs->loc).
19169         (cselib_preserve_cfa_base_value): Add regno argument, set
19170         cfa_base_preserved_regno to it.
19171         (cselib_invalidate_regno): Allow removal of registers other than
19172         cfa_base_preserved_regno from cfa_base_preserved_val.
19173         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
19174         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
19175         of MEM addresses, if not on LHS.
19176         (reverse_op): Don't add reverse ops for cfa_base_rtx.
19177         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
19178
19179 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19180
19181         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
19182         static variables.
19183         (peep2_buf_position): New static function.
19184         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
19185         peephole2_optimize): Use it.
19186         (peep2_attempt, peep2_update_life): New static functions, broken out
19187         of peephole2_optimize.
19188         (peep2_fill_buffer): New static function.
19189         (peephole2_optimize): Change the main loop to try to fill the buffer
19190         with the maximum number of insns before matching them against
19191         peepholes.  Use a forward scan.  Remove special case for targets with
19192         conditional execution.
19193         * genrecog.c (change_state): Delete dead code.
19194         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19195         Rewrite so as not to expect the second insn to have had a peephole
19196         applied yet.
19197
19198 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19199
19200         * genhooks.c (emit_findices): Cast field precision to int.
19201         (emit_documentation): Likewise.
19202
19203 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
19204
19205         PR tree-optimization/43801
19206         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
19207         if old_decl was DECL_ONE_ONLY.
19208
19209         PR debug/44668
19210         * dwarf2out.c (add_accessibility_attribute): New function.
19211         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
19212         instead of adding DW_AT_accessibility manually.
19213         (gen_enumeration_type_die, gen_struct_or_union_type_die,
19214         gen_typedef_die): Use it.
19215
19216 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19217
19218         * vmsdbgout.c (full_name): Just output the file name if not native.
19219
19220 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19221
19222         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
19223         (funcnam_table): New static table.
19224         (funcnum_table): New static table.
19225         (write_rtnbeg): Write value saved in funcnum_table.
19226         (write_rtnend): Write value saved in funcnum_table.
19227         (vmsdbgout_begin_function): Save current function info in
19228         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
19229         (vmsdbgout_finish): Iterate over funcnum_table.
19230
19231 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19232
19233         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
19234         (vmsdbgout_type_decl): Declare
19235         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
19236         (FUNC_EPILOGUE_LABEL): New macro
19237         (vmsdbgout_begin_epilogue): New function.
19238         (vmsdbgout_type_decl): New function.
19239
19240 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19241
19242         * vmsdbg.h: Update copyright.
19243
19244 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19245
19246         * vmsdbg.h (DST_K_TBG): New DST constant.
19247         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
19248         (write_modbeg): Cast module_language to avoid warning.
19249         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
19250
19251 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19252
19253         PR other/44034
19254         * target.def, doc/tm.texi.in, genhooks.c: New files.
19255         * target.h: Instead of defining individual hook members,
19256         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
19257         include target.def.
19258         * target-def.h: Instead of defining individual hook initializers,
19259         include target-hooks-def.h.
19260         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
19261         targetm.live_on_entry -> targetm.extra_live_on_entry
19262         targetm.sched.md_finish ->targetm.sched.finish
19263         targetm.sched.md_init -> targetm.sched.init
19264         targetm.sched.md_init_global -> targetm.sched.init_global
19265         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
19266         targetm.asm_out.except_table_label ->
19267           targetm.asm_out.emit_except_table_label
19268         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
19269         targetm.target_help -> targetm.help
19270         targetm.vectorize.builtin_support_vector_misalignment ->
19271           targetm.vectorize.support_vector_misalignment
19272         targetm.file_start_app_off -> targetm.asm_file_start_app_off
19273         targetm.file_start_file_directive ->
19274          targetm.asm_file_start_file_directive
19275         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
19276         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
19277         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
19278         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
19279           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
19280         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
19281           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
19282         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
19283         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
19284         * Makefile.in (TARGET_H): Depend on target.def.
19285         (TARGET_DEF_H): Depend on target-hooks-def.h.
19286         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
19287         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
19288         * doc/tm.texi: Regenerate.
19289
19290         * Makefile.in (s-tm-texi): Remove stray tab / rule.
19291
19292         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
19293         (targetm.sched.init): Likewise.
19294
19295 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19296
19297         PR bootstrap/44713
19298         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
19299         (function_arg_advance_32): Const-ify TYPE parameter.
19300         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
19301         (ix86_function_arg_advance): Change type of NAMED to bool.
19302         (function_arg_32): Const-ify CUM and TYPE parameters.
19303         (function_arg_64): Likewise.  Change type of NAMED to bool.
19304         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
19305         to bool.
19306         (ix86_function_arg): Change type of NAMED to bool.
19307         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
19308         last argument as a bool.
19309
19310 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19311
19312         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
19313         (OVERRIDE_OPTIONS): Add note of obsolescence.
19314         Replace references with references to TARGET_OPTION_OVERRIDE.
19315         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
19316          the macro).
19317         * targhooks.c (default_target_option_override): New function.
19318         * targhooks.h (default_target_option_override): Declare.
19319         * target.h (struct gcc_target): Add override member to
19320         target_option member.
19321         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
19322         targetm.target_option.override call.
19323         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
19324         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
19325
19326 2010-06-29  Jan Hubicka  <jh@suse.cz>
19327
19328         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
19329
19330 2010-06-29  Jan Hubicka  <jh@suse.cz>
19331
19332         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
19333         unreachable.
19334         (rebuild_frequencies): New function.
19335         * predict.h (rebuild_frequencies): Declare.
19336         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
19337         entry block and edge reaching new_entry.
19338         (tree_function_versioning): When doing partial cloning, rebuild
19339         frequencies when done.
19340         * passes.c (execute_function_todo): Use rebild_frequencies.
19341
19342 2010-06-29  Richard Guenther  <rguenther@suse.de>
19343
19344         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
19345         * tree-flow.h (enum noalias_state): Remove.
19346         (struct var_ann_d): Remove noalias_state member.
19347
19348 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
19349
19350         PR target/43902
19351         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
19352         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
19353         (maddhidi4): Likewise.
19354
19355         Revert parts of the change for PR25130.
19356         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
19357         MEM_ALIAS_SET.
19358
19359 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19360
19361         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
19362         targetm.calls.function_incoming_arg, and
19363         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
19364         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
19365         * target.h (struct gcc_target): Add function_arg_advance,
19366         function_arg, and function_incoming_arg fields.
19367         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
19368         (TARGET_FUNCTION_INCOMING_ARG): Define.
19369         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
19370         and TARGET_FUNCTION_INCOMING_ARG.
19371         * targhooks.h (default_function_arg_advance): Declare.
19372         (default_function_arg, default_function_incoming_arg): Declare.
19373         * targhooks.c (default_function_arg_advance): New function.
19374         (default_function_arg, default_function_incoming_arg): New function.
19375         * config/i386/i386.c (function_arg_advance): Rename to...
19376         (ix86_function_arg_advance): ...this.  Make static.
19377         (function_arg): Rename to...
19378         (ix86_function_arg): ...this.  Make static.
19379         (TARGET_FUNCTION_ARG_ADVANCE): Define.
19380         (TARGET_FUNCTION_ARG): Define.
19381         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
19382         (FUNCTION_ARG): Delete.
19383         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
19384         (function_arg): Delete prototype.
19385
19386 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19387
19388         * reginfo.c (init_reg_sets_1): Adjust comments.
19389         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
19390         * calls.c (prepare_call_address): Likewise.
19391         (emit_call_1): Use targetm.calls.return_pops_args.
19392         (expand_call): Likewise.
19393         * function.c (assign_parms): Likewise.
19394         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
19395         * target.h (struct gcc_target) [struct calls]: Add
19396         return_pops_args field.
19397         * targhooks.h (default_return_pops_args): Declare.
19398         * targhooks.c (default_return_pops_args): Define.
19399         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
19400         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
19401         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
19402         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
19403         documentation.
19404         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
19405         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
19406         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
19407         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
19408         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
19409         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
19410         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
19411         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
19412         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
19413         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
19414         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
19415         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
19416         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
19417         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
19418         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
19419         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
19420         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
19421         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
19422         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
19423         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
19424         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
19425         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
19426         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
19427         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
19428         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
19429         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
19430         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
19431         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
19432         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
19433         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
19434         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
19435         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
19436         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
19437         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
19438         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
19439         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
19440         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
19441         * config/i386/i386.c (ix86_return_pops_args): Make static.
19442         Constify arguments.
19443         (TARGET_RETURN_POPS_ARGS): Define.
19444         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
19445         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
19446         (TARGET_RETURN_POPS_ARGS): Define.
19447         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
19448         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
19449         (TARGET_RETURN_POPS_ARGS): Define.
19450
19451 2010-06-29  Richard Guenther  <rguenther@suse.de>
19452
19453         PR middle-end/44667
19454         * tree-inline.c (initialize_inlined_parameters): Make sure
19455         to remap the inlined parameter variable substitutions types.
19456
19457 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19458
19459         PR rtl-optimization/44659
19460         * combine.c (make_compound_operation) <SUBREG>: Do not return the
19461         result of force_to_mode if it partially re-expanded the compound.
19462
19463 2010-06-28  Jan Hubicka  <jh@suse.cz>
19464
19465         PR middle-end/44671
19466         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
19467         RESULT_DECL.
19468
19469 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
19470
19471         * double-int.h (force_fit_type_double): Remove declaration.
19472         * double-int.c (force_fit_type_double): Move to tree.c.
19473         * tree.h (force_fit_type_double): Declare.
19474         * tree.h (force_fit_type_double): Moved from double-int.c. Use
19475         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
19476         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
19477         * convert.c (convert_to_pointer): Adjust call to
19478         force_fit_type_double.
19479         * tree-vrp.c (extract_range_from_assert,
19480         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
19481         * fold-const.c: Update comment.
19482         (int_const_binop, fold_convert_const_int_from_int,
19483         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
19484         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
19485         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
19486         round_up_loc): Adjust call to force_fit_type_double.
19487
19488 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19489
19490         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
19491
19492 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19493
19494         * tree-sra.c (convert_callers): New parameter, change fndecls of
19495         recursive calls.
19496         (modify_function): Pass the old decl to convert_callers.
19497
19498 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19499
19500         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
19501         ipa_check_create_node_params and ipa_initialize_node_params with
19502         checking asserts they are not necessary.
19503
19504 2010-06-28  Jan Hubicka  <jh@suse.cz>
19505
19506         PR tree-optimization/44687
19507         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
19508
19509 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19510
19511         PR c++/44535
19512         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
19513         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
19514         instead of BINFO_BASE_BINFO.
19515
19516 2010-06-28  Michael Matz  <matz@suse.de>
19517
19518         PR middle-end/44592
19519         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
19520         proper VDEF chain for intermediate stores in the sequence.
19521
19522 2010-06-28  Jan Hubicka  <jh@suse.cz>
19523
19524         PR tree-optimization/44357
19525         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
19526         uninlinable functions.
19527
19528 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19529
19530         * config.gcc (powerpc*-*-*): Handle titan.
19531         * config/rs6000/rs6000.c (titan_cost): New costs.
19532         (rs6000_override_options): Add "titan" to processor_target_table.
19533         Add Titan to branch alignment logic.
19534         Correctly set rs6000_cost for titan.
19535         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
19536         * config/rs6000/titan.md: New file.
19537         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
19538
19539 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19540
19541         * tree-browser.c (TB_history_stack): Convert to a VEC.
19542         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
19543         (TB_history_prev): Likewise.
19544
19545 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19546
19547         * vec.h (vec_heap_free): Add parentheses around free.
19548
19549 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
19550
19551         * system.h: Poison GCC_EXCEPT_H for front-end files.
19552
19553         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
19554         langhook.
19555         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
19556         Define to NULL by default.
19557         * except.h: Define GCC_EXCEPT_H.
19558         (doing_eh): Remove prototype.
19559         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
19560         (lang_protect_cleanup_actions): Remove.
19561         * except.c (lang_protect_cleanup_actions): Remove.
19562         (doing_eh): Remove.
19563         (gen_eh_region): Don't check doing_eh here.
19564         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
19565         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
19566         instead of lang_protect_cleanup_actions.
19567         * omp-low.c (maybe_catch_exception): Likewise.
19568         * Makefile.in: Update dependencies.
19569
19570 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
19571
19572         * cgraph.h (struct varpool_node): new used_from_object_file flag.
19573         (struct cgraph_local_info): new used_from_object_file flag.
19574         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
19575         (cgraph_clone_node): initialize used_from_object_file.
19576         (cgraph_create_virtual_clone): initialize used_from_object_file.
19577         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
19578         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
19579         when compiling with -fwhole-program.
19580         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
19581         internal resolver.
19582         * ipa.c (function_and_variable_visibility): Set externally_visible
19583         flag of varpool_node if used_from_object_file flag is set.
19584         (cgraph_externally_visible_p): check used_from_object_file flag.
19585         * doc/invoke.texi (-fwhole-program option): Change description of
19586         externally_visible attribute accordingly.
19587         * doc/extend.texi (externally_visible): Ditto.
19588
19589 2010-06-27  Jan Hubicka  <jh@suse.cz>
19590
19591         * params.def (max-inline-insns-auto): Default to 40.
19592         * doc/invoke.texi (max-inline-insns-auto): Document the change.
19593
19594 2010-06-27  Jan Hubicka  <jh@suse.cz>
19595
19596         PR middle-end/44671
19597         PR middle-end/44686
19598         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
19599         signature change.
19600         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
19601         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
19602
19603 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
19604
19605         * target.h (struct gcc_target): Add register_move_cost field.
19606         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
19607         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
19608         * targhooks.c (default_register_move_cost): New function.
19609         * targhooks.h (default_register_move_cost): Declare function.
19610         * defaults.h (REGISTER_MOVE_COST): Delete.
19611         * ira-int.h (ira_register_move_cost): Update comment.
19612         * ira.c (ira_register_move_cost): Update comment.
19613         * reload.h (register_move_cost): Declare.
19614         * reginfo.c (register_move_cost): New function.
19615         (move_cost): Update comment.
19616         (init_move_cost, memory_move_secondary_cost): Replace
19617         REGISTER_MOVE_COST with register_move_cost.
19618         * postreload.c (reload_cse_simplify_set): (Ditto.).
19619         * reload.c (find_valid_class, find_reloads): (Ditto.).
19620         * reload1.c (choose_reload_regs): (Ditto.).
19621         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
19622         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
19623         * doc/md.texi (can_create_pseudo_p): Update documentation.
19624
19625         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19626         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19627         * config/i386/i386.h (ix86_memory_move_cost): Make static.
19628         (TARGET_MEMORY_MOVE_COST): Define.
19629
19630         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19631         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
19632         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
19633         (TARGET_MEMORY_MOVE_COST): Define.
19634
19635 2010-06-27  Richard Guenther  <rguenther@suse.de>
19636
19637         PR tree-optimization/44683
19638         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
19639         false edge from the inverted condition.
19640
19641 2010-06-27  Richard Guenther  <rguenther@suse.de>
19642
19643         PR middle-end/44684
19644         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
19645         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
19646         for register LHS.  Or non-store assignments.
19647
19648 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
19649
19650         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
19651         (sparc_emit_set_const64): Likewise.  Remove disabled code.
19652         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
19653         (sparc_emit_set_const64): Likewise.
19654
19655 2010-06-26  Catherine Moore  <clm@codesourcery.com>
19656
19657         * config/mips/mips.md (alu_type): New attribute.
19658         (type): Infer type from alu_type.
19659         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
19660         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
19661         *subsi3_extended, negsi2, negdi2, *low<mode>,
19662         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
19663         xor<mode>3, *nor<mode>3,
19664         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
19665         *zero_extendhi_truncqi):  Set alu_type instead of type.
19666
19667 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
19668
19669         * config/alpha/alpha.c (alpha_need_linkage): Adjust
19670         splay_tree_new_ggc call.
19671         (alpha_use_linkage): Likewise.
19672
19673 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19674
19675         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
19676         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
19677         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
19678         (static_specs): Remove switches_need_spaces.
19679         (process_command, do_self_spec): Hardcode handling "-o" instead of
19680         checking switches_need_spaces.
19681         * system.h (SWITCHES_NEED_SPACES): Poison.
19682
19683 2010-06-26  Richard Guenther  <rguenther@suse.de>
19684
19685         PR tree-optimization/44393
19686         * tree-loop-distribution.c (generate_loops_for_partition): Fix
19687         stmt removal and VOP renaming.
19688         (generate_memset_zero): Remove redundant stmt updating.
19689         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
19690         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
19691
19692 2010-06-26  Jan Hubicka  <jh@suse.cz>
19693
19694         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
19695         edges comming from header are equivalent.
19696         (visit_bb): Handle PHIs correctly.
19697         * tree-inline.c (copy_phis_for_bb): Be able to copy
19698         PHI from entry edge.
19699         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
19700
19701 2010-06-26  Richard Guenther  <rguenther@suse.de>
19702
19703         PR middle-end/44674
19704         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
19705         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
19706
19707 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19708
19709         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
19710         add_infile, alloc_switch): New.
19711         (process_command): Remove variable lang_n_infiles.  Process
19712         options in a single pass.  Use new functions for allocating
19713         infiles and switches arrays.  Properly skip operands of
19714         -Xpreprocessor and -Xassembler.
19715
19716 2010-06-26  Jan Hubicka  <jh@suse.cz>
19717
19718         PR middle-end/44671
19719         * cgraphunit.c (cgraph_function_versioning): Remove wrong
19720         cgraph_make_decl_local call; fix typo copying RTL data.
19721
19722 2010-06-25  DJ Delorie  <dj@redhat.com>
19723
19724         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
19725         (m32c_output_aligned_common): Likewise.
19726         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
19727         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
19728         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
19729         (m32c_register_pragmas): Register it.
19730         * config/m32c/m32c.c (m32c_get_pragma_address): New.
19731         (m32c_insert_attributes): Set #pragma address decls volatile.
19732         (pragma_entry_eq): New.
19733         (pragma_entry_hash): New.
19734         (m32c_note_pragma_address): New.
19735         (m32c_get_pragma_address): New.
19736         (m32c_output_aligned_common): New.
19737         * doc/extend.texi: Document the new pragma.
19738
19739         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
19740         also.
19741         * config/m32c/predicates.md (m32c_any_operand): Check the code
19742         instead of memory_operand so as to allow matching volatile MEMs.
19743         (m32c_nonimmediate_operand): Likewise.
19744         (mra_operand): Allow volatiles.
19745
19746 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
19747
19748         PR debug/44610
19749         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
19750         address if the offset is unknown.
19751
19752 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
19753
19754         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
19755         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
19756         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
19757         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
19758         to ia64_start_function. Invoke it.
19759         * config/ia64/ia64.c (ia64_start_function): Call new function
19760         dwarf2out_vms_debug_main_pointer.
19761
19762 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19763
19764         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
19765         statements computing the true predicate.
19766
19767 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19768
19769         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
19770         to boolean_true_node.
19771         (reset_bb_predicate): New.
19772         (predicate_bbs): Call reset_bb_predicate.
19773
19774 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19775
19776         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
19777         (tree_if_conversion): Returns true when something has been changed.
19778         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
19779         changed something.
19780
19781 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19782
19783         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
19784         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
19785         * tree-if-conv.c: Include dbgcnt.h.
19786         (tree_if_conversion): Use if_conversion_tree to count the number of
19787         if-convertible loops.
19788
19789 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
19790
19791         * common.opt (fprefetch-loop-arrays): Re-define
19792         -fprefetch-loop-arrays as a tri-state option with the initial
19793         value of -1.
19794         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
19795         pass only when flag_prefetch_loop_arrays > 0.
19796         * toplev.c (process_options): Note that, with tri-states,
19797         flag_prefetch_loop_arrays>0 means prefetching is enabled.
19798         * config/i386/i386.c (override_options): Enable prefetching at -O3
19799         for a set of CPUs that sw prefetching is helpful.
19800         (software_prefetching_beneficial_p): New.  Return TRUE if software
19801         prefetching is beneficial for the given CPU.
19802
19803 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
19804
19805         PR rtl-optimization/44326
19806         * implicit-zee.c (find_removable_zero_extends): Replace
19807         INSN_P with NONDEBUG_INSN_P.
19808
19809 2010-06-25  Martin Jambor  <mjambor@suse.cz>
19810
19811         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
19812         (struct ipa_node_params): Removed the modification_analysis_done flag.
19813         (ipa_is_param_modified): Removed.
19814         (ipa_analyze_node): Declare.
19815         (ipa_compute_jump_functions): Remove declaration.
19816         (ipa_count_arguments): Likewise.
19817         (ipa_detect_param_modifications): Likewise.
19818         (ipa_analyze_params_uses): Likewise.
19819         * ipa-prop.c (struct param_analysis_info): New type.
19820         (visit_store_addr_for_mod_analysis): Removed.
19821         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
19822         moved down in the file.
19823         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
19824         (ipa_count_arguments): Made static.
19825         (mark_modified): New function.
19826         (is_parm_modified_before_call): New function.
19827         (compute_pass_through_member_ptrs): New parameter parms_info, call
19828         is_parm_modified_before_call instead of ipa_is_param_modified.
19829         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
19830         it to compute_pass_through_member_ptrs.
19831         (ipa_compute_jump_functions): New parameter parms_info, pass it to
19832         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
19833         on the callee if it is analyzed.  Made static.
19834         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
19835         is_parm_modified_before_call instead of ipa_is_param_modified.
19836         (ipa_analyze_call_uses): New parameter parms_info, pass it to
19837         ipa_analyze_indirect_call_uses.
19838         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
19839         ipa_analyze_call_uses.
19840         (ipa_analyze_params_uses): New parameter parms_info, pass it to
19841         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
19842         (ipa_analyze_node): New function.
19843         (ipa_print_node_params): Do not dump the modified flag.
19844         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
19845         it.  Do not stream the modified parameter flag.
19846         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
19847         it.  Do not stream the modified parameter flag.
19848         * ipa-cp.c (ipcp_analyze_node): Removed.
19849         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
19850         with only a call to ipa_analyze_node.
19851         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
19852         node with only a call to ipa_analyze_node.
19853
19854 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19855
19856         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
19857
19858 2010-06-25  Jan Hubicka  <jh@suse.cz>
19859
19860         * tree-pass.h (pass_split_functions): Declare.
19861         * opts.c (decode_options): Enable function splitting at -O2
19862         * timevar.def (TV_IPA_FNSPLIT): New macro.
19863         * ipa-split.c: New file.
19864         * common.opt (-fpartial-inlining): New flag.
19865         * Makefile.in (ipa-split.o): New object file.
19866         * passes.c (init_optimization_passes): Add ipa-split.
19867         * params.def (partial-inlining-entry-probability): New parameters.
19868         * doc/invoke.texi (-fpartial-inlining): New.
19869
19870 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19871
19872         PR 44665
19873         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
19874         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
19875         (gimplify_expr): Likewise.
19876
19877 2010-06-25  Martin Jambor  <mjambor@suse.cz>
19878
19879         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
19880         statements instead of bailing out on them.
19881         (ipa_analyze_indirect_call_uses): Do not require that loads from the
19882         parameter are in the same BB as the condition.  Update comments.
19883
19884 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
19885
19886         PR middle-end/43866
19887         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
19888         true or always false, return NULL_TREE.
19889         (tree_unswitch_single_loop): Optimize conditions even when reaching
19890         max-unswitch-level parameter.  If num > 0, optimize first all conditions
19891         using entry checks, then do still reachable block discovery and consider
19892         only conditions in still reachable basic blocks in the loop.
19893
19894         PR tree-optimization/44539
19895         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
19896         the call doesn't have LHS, but has VDEF.
19897
19898 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
19899
19900         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
19901         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
19902         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
19903         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
19904         * system.h (MODIFY_TARGET_NAME): Poison.
19905
19906 2010-06-25  Alan Modra  <amodra@gmail.com>
19907
19908         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
19909         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
19910         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
19911         CMODEL_LARGE as default.
19912         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
19913         (offsettable_ok_by_alignment): Delete.
19914         (rs6000_emit_move): Remove mcmodel=medium optimization.
19915
19916 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
19917
19918         With large parts from Jim Wilson:
19919         PR target/43902
19920         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
19921         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
19922         * optabs.c (optab_for_tree_code): Likewise.
19923         (expand_widen_pattern_expr): Likewise.
19924         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
19925         out of execute_optimize_widening_mul.
19926         (convert_plusminus_to_widen): New function.
19927         (execute_optimize_widening_mul): Use the two new functions.
19928         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
19929         Remove code to generate widening multiply-accumulate.  Add support
19930         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
19931         * gimple-pretty-print.c (dump_ternary_rhs): New function.
19932         (dump_gimple_assign): Call it when appropriate.
19933         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
19934         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
19935         (expand_gimple_stmt_1): Likewise.
19936         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
19937         WIDEN_MULT_MINUS_EXPR.
19938         * tree-ssa-operands.c (get_expr_operands): Likewise.
19939         * tree-inline.c (estimate_operator_cost): Likewise.
19940         * gimple.c (extract_ops_from_tree_1): Renamed from
19941         extract_ops_from_tree.  Add new arg for a third operand; fill it.
19942         (gimple_build_assign_stat): Support operations with three operands.
19943         (gimple_build_assign_with_ops_stat): Likewise.
19944         (gimple_assign_set_rhs_from_tree): Likewise.
19945         (gimple_assign_set_rhs_with_ops_1): Renamed from
19946         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
19947         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
19948         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
19949         WIDEN_MULT_MINUS_EXPR.
19950         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
19951         (extract_ops_from_tree_1): Adjust declaration.
19952         (gimple_assign_set_rhs_with_ops_1): Likewise.
19953         (gimple_build_assign_with_ops): Pass NULL for last operand.
19954         (gimple_build_assign_with_ops3): New macro.
19955         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
19956         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
19957         functions.
19958         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
19959         (verify_gimple_assign): Call it.
19960         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
19961         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
19962         functions for dealing with three-operand statements.
19963         * tree.c (commutative_ternary_tree_code): New function.
19964         * tree.h (commutative_ternary_tree_code): Declare it.
19965         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
19966         ternary statements.
19967         (gimple_assign_nonzero_warnv_p): Likewise.
19968         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
19969         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
19970         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
19971         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
19972         (struct hashtable_expr): New member ternary in the union.
19973         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
19974         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
19975         (iterative_hash_hashable_expr): Likewise.
19976         (print_expr_hash_elt): Handle EXPR_TERNARY.
19977         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
19978         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
19979         statements.  Handle GIMPLE_TERNARY_RHS.
19980
19981 2010-06-25  Jan Hubicka  <jh@suse.cz>
19982
19983         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
19984
19985 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
19986
19987         PR c/44517
19988         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
19989         parameters are not good.
19990         (c_parser_parameter_declaration): Error unknown type name if the type
19991         name can't start declaration specifiers.
19992
19993 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
19994
19995         * gcc.c (translate_options): Don't mention +e in comment.
19996         (process_command): Don't handle +e specially.
19997
19998 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
19999
20000         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
20001
20002         * ira-build.c (merge_hard_reg_conflicts): New function.
20003         (create_cap_allocno, copy_info_to_removed_store_destinations,
20004         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
20005         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
20006         (remove_unnecessary_allocnos, remove_low_level_allocnos)
20007         copy_nifo_to_removed_store_destination): Use them.
20008         * ira-lives.c (make_hard_regno_born): New function, split out of
20009         make_regno_born.
20010         (make_allocno_born): Likewise.
20011         (make_hard_regno_dead): New function, split out of make_regno_dead.
20012         (make_allocno_dead): Likewise.
20013         (inc_register_pressure): New function, split out of set_allocno_live.
20014         (dec_register_pressure): New function, split out of clear_allocno_live.
20015         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
20016         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
20017         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
20018         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
20019         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
20020         mark_pseudo_regno_live.
20021         (process_bb_node_lives): Use mark_pseudo_regno_live,
20022         make_hard_regno_born and make_allocno_dead.
20023         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
20024         set_allocno_live, clear_allocno_live): Delete functions.
20025
20026         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
20027         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
20028         functions.
20029         (ira_flattening): Use ira_parent_allocno.
20030         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
20031         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
20032
20033         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
20034         statement.
20035
20036         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
20037         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
20038         minmax_set_iter_cond, minmax_set_iter_next,
20039         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
20040         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
20041         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
20042         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
20043         uses changed.
20044
20045         * ira-int.h (struct live_range, live_range_t): Renamed from struct
20046         ira_allocno_live_range and allocno_live_range_t; all uses changed.
20047         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
20048         All uses changed.
20049
20050 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
20051
20052         * thumb2.md (thumb2_tlobits_cbranch): Delete.
20053         (peephole2 to convert zero_extract/compare of single bit to
20054          lshift/compare): New.
20055
20056 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
20057
20058         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
20059         recursive call and call to 'int_const_binop'.
20060         (build_range_check, fold_cond_expr_with_comparison, unextend,
20061         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
20062         multiple_of_p): Adjust call to const_binop.
20063
20064 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
20065
20066         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
20067         determine size of XFmode operand.
20068         (XFmode extended DFmode push splitter): Ditto.
20069         (XFmode extended SFmode push splitter): Ditto.
20070
20071 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20072
20073         PR target/44588
20074         * config/i386/i386.md (extract_code): New.
20075         (<u>divmodqi4): Likewise.
20076         (divmodhiqi3): Likewise.
20077         (udivmodhiqi3): Likewise.
20078         (<u>divqi3): Remvoved.
20079
20080 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
20081
20082         PR middle-end/44492
20083         * recog.h (struct recog_data): Add is_asm field.
20084         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
20085         present in constraints of inline-asm operand and memory operand
20086         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
20087         (extract_insn): Initialize recog_data.is_asm.
20088         * doc/md.texi (Constraints): Document operand side-effect rules.
20089
20090 2010-06-24  Andi Kleen  <ak@linux.intel.com>
20091
20092         * c-parser.c (c_parser_conditional_expression): Call
20093         warn_for_omitted_condop.
20094         * doc/invoke.texi: Document omitted condop warning.
20095
20096 2010-06-24  Nick Clifton<nickc@redhat.com>
20097
20098         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
20099         insn in the sequence is a jump insn before setting its label.
20100
20101 2010-06-24  Alan Modra  <amodra@gmail.com>
20102
20103         * collect2.c (main): Match exactly --version and --help.
20104
20105 2010-06-24  DJ Delorie  <dj@redhat.com>
20106
20107         * config/m32c/m32c-pragma.c: Don't include rtl.h.
20108
20109 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
20110
20111         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
20112         using X87MODEF mode iterator.
20113         (pushsf splitter): Macroize splitter using P mode iterator.
20114         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
20115         mode iterator.
20116
20117         (*movxf_internal): Rename from *movxf_integer.
20118         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
20119         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
20120         (*movdf_internal): Rename from *movdf_integer.
20121         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
20122         (*movsf_internal): Rename from *movdf_1.
20123
20124 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
20125
20126         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
20127         (const_gimple_seq_node): Removed typedefs.
20128
20129         * gimple.h (gimple_seq_node_d, gimple_seq_node)
20130         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
20131
20132 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20133
20134         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
20135         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
20136         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
20137         and CODE_FOR_vec_extract_lo_v4df.
20138
20139         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
20140         Changed to define_insn_and_split.
20141         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
20142         (vec_extract_lo_v16hi): Likewise.
20143         (vec_extract_lo_v32qi): Likewise.
20144         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
20145         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
20146
20147 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
20148
20149         PR target/44640
20150         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
20151         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
20152         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
20153         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
20154         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
20155
20156         PR target/44640
20157         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
20158
20159         PR other/44644
20160         * df-core.c (struct df): Rename to df_d.
20161         * df.h (struct df): Likewise.
20162         * dse.h (struct df): Remove forward declaration.
20163         * recog.h (struct insn_data): Rename to:
20164         (struct_insn_data_d).  Adjusted all users.
20165
20166 2010-06-23  Arnaud Charlet  <charlet@adacore.com
20167
20168         PR ada/22220
20169         * doc/install.texi: Update requirements to build GNAT.
20170
20171 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
20172
20173         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
20174         enum type.
20175         (m68k_sched_attr_opx_type): Remove unreachable return.
20176         (m68k_sched_attr_opy_type): Likewise.
20177         (m68k_sched_attr_size): Likewise.
20178         (sched_get_opxy_mem_type): Likewise.
20179         (m68k_sched_attr_op_mem): Likewise.
20180
20181 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
20182
20183         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
20184         new statement and adjust VDEF only if necessary.  Remove superfluous
20185         call to maybe_clean_or_replace_eh_stmt.
20186         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
20187         copy the flags.
20188         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
20189         * tree-inline.c (copy_bb): ...and not there.
20190
20191 2010-06-22  Cary Coutant  <ccoutant@google.com>
20192
20193         * dwarf2out.c (is_nested_in_subprogram): New function.
20194         (should_move_die_to_comdat): Use it.
20195         (copy_ancestor_tree): Don't mark DIEs here.
20196         (copy_decls_walk): Start walk from root of newly-added tree;
20197         mark DIEs here instead.
20198
20199 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
20200
20201         * config/i386/i386.md (unit): Also check sseishft1.
20202
20203 2010-06-22  Jan Hubicka  <jh@suse.cz>
20204
20205         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
20206         enabled.
20207
20208 2010-06-22  Jan Hubicka  <jh@suse.cz>
20209
20210         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
20211         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
20212         Return true if something changed.
20213         * df.h (df_confluence_function_n): Return bool.
20214         * df-core.c (df_worklist_propagate_forward,
20215         df_worklist_propagate_backward): Track changes and ages.
20216         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
20217         track ages.
20218         * dse.c (dse_confluence_n): Return always true.
20219
20220 2010-06-22  Jan Hubicka  <jh@suse.cz>
20221
20222         * bitmap.c (bitmap_clear_bit): Micro optimize.
20223
20224 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
20225
20226         * config/i386/i386.md (SWI1248x): New mode iterator.
20227         (SWI48x): Ditto.
20228         (SWI12): Ditto.
20229         (SWI24): Ditto.
20230
20231         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
20232         SWI1248x mode iterator.
20233         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
20234         using SWI124 mode iterator.
20235         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
20236         mode iterator.
20237         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
20238         *pushdi2_prologue_rex64 using P mode iterator.
20239         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
20240         using SWI48 mode iterator.
20241         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
20242         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
20243         using SWI1248x mode iterator.
20244         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
20245         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
20246         SWI48 mode iterator.
20247         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
20248         iterator.
20249         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
20250         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
20251         SWI12 mode iterator.
20252         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
20253         SWI12 mode iterator.
20254         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
20255         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
20256         SWI24 mode iterator.
20257         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
20258         SWI48 mode iterator.
20259         (mov<mode>_insn_1): New expander.
20260         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
20261         using SWI48x mode iterator.
20262
20263         (*movoi_internal_avx): Rename from *movoi_internal.
20264         (*movti_internal_rex64): Rename from *movti_rex64.
20265         (*movti_internal_sse): Rename from *movti_sse.
20266         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
20267         (*movdi_internal): Rename from *movdi_2.
20268         (*movsi_internal): Rename from *movsi_1.
20269         (*movhi_internal): Rename from *movhi_1.
20270         (*movqi_internal): Rename from *movqi_1.
20271
20272         (insv): Update the call to gen_movsi_insv_1 for rename.
20273         * config/i386/i386.c (promote_duplicated_reg): Ditto.
20274
20275 2010-06-22  Jan Hubicka  <jh@suse.cz>
20276
20277         * passes.c (execute_function_todo): Move call of statistics_fini_pass
20278         to ...
20279         (execute_todo) ... this one.
20280
20281 2010-06-22  Alan Modra  <amodra@gmail.com>
20282
20283         PR target/44364
20284         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20285         * caller-save.c (insert_restore, insert_save): Use non-validate
20286         form of adjust_address.
20287
20288 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20289
20290         PR target/39690
20291         * config/pa/pa.c (override_options): Disable
20292         -freorder-blocks-and-partition.
20293
20294 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
20295
20296         PR target/44615
20297         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
20298
20299         * config/i386/i386.md (type): Add sseishft1
20300
20301         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
20302         (ppro_insn_load): Likewise.
20303         (ppro_insn_store): Likewise.
20304         (ppro_insn_both): Likewise.
20305
20306         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
20307         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
20308         for type.
20309         (*vec_extractv2di_1_avx): Likewise.
20310         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
20311         type.  Remove atom_unit.
20312         (*vec_extractv2di_1_sse2): Likewise.
20313
20314 2010-06-21  DJ Delorie  <dj@redhat.com>
20315
20316         * diagnostic.h (diagnostic_classification_change_t): New.
20317         (diagnostic_context): Add history and push/pop list.
20318         (diagnostic_push_diagnostics): Declare.
20319         (diagnostic_pop_diagnostics): Declare.
20320         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
20321         from pragmas in a history chain instead of the global table.
20322         (diagnostic_push_diagnostics): New.
20323         (diagnostic_pop_diagnostics): New.
20324         (diagnostic_report_diagnostic): Scan history chain to find state
20325         of diagnostics as of the diagnostic location.
20326         * opts.c (set_option): Pass UNKNOWN_LOCATION to
20327         diagnostic_classify_diagnostic.
20328         (enable_warning_as_error): Likewise.
20329         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
20330         use in the history chain.
20331         * doc/extend.texi: Document pragma GCC diagnostic changes.
20332
20333 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
20334
20335         * dwarf2out.c (add_linkage_name): New function.  Don't add
20336         anything to DW_TAG_member DIEs.
20337         (add_name_and_src_coords_attributes): Use it.
20338         (gen_variable_die): Call it for C++ static data members if
20339         specification is DW_TAG_member.
20340
20341         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
20342         C++ char16_t and char32_t.
20343
20344         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
20345         * genattrtab.c: Include vecprim.h.
20346         (cached_attrs, cached_attr_count, attrs_seen_once,
20347         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
20348         attrs_cached_after): New variables.
20349         (find_attrs_to_cache): New function.
20350         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
20351         (write_test_expr): Add attrs_cached argument, return it too,
20352         attempt to cache non-const attributes used more than once in
20353         a single case handling.
20354         (write_attr_get): Use find_attrs_to_cache, for caching candidates
20355         emit cached_* variables.  Adjust write_attr_set callers.
20356         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
20357         to find attributes that should be cached in this block.  Adjust
20358         write_test_expr callers.
20359         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
20360         callers.
20361         (make_automaton_attrs): Adjust write_test_expr caller.
20362
20363         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
20364         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
20365         (make_automaton_attrs): If find_tune_attr returns non-NULL,
20366         write separate internal_dfa_insn_code_* and insn_default_latency_*
20367         functions for each attribute's value and emit init_sched_attrs
20368         function and function pointers.
20369         * genattr.c (const_attrs, reservations): New variables.
20370         (gen_attr): Add const attributes to const_attrs vector.
20371         (check_tune_attr, find_tune_attr): New functions.
20372         (main): Add reservations to reservations vector.  If find_tune_attr
20373         returns true, add prototype for init_sched_attrs and make
20374         internal_dfa_insn_code and insn_default_latency function pointers,
20375         otherwise define init_sched_attrs as dummy macro.
20376         * cfgexpand.c: Include insn-attr.h.
20377         (gimple_expand_cfg): Call init_sched_attrs.
20378
20379         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
20380
20381         PR target/44575
20382         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
20383         va_arg from a set of register save slots into a temporary,
20384         if the container is bigger than type size, do the copying
20385         using smaller mode or using memcpy.
20386
20387         PR bootstrap/44426
20388         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
20389         prototype.
20390         (sel_print_to_dot): Remove macro.
20391         (sel_print): Likewise.  New prototype.
20392         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
20393         (sel_print): New function.
20394
20395 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20396
20397         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
20398         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
20399
20400 2010-06-21  Nick Clifton  <nickc@redhat.com>
20401
20402         * config/rx/rx.h (PTRDIFF_TYPE): Define.
20403         (SMALL_REGISTER_CLASS): Define (to zero).
20404         (PRINT_OPERAND): Delete.
20405         (PRINT_OPERAND_ADDRESS): Delete.
20406         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
20407         (rx_print_operand_address): Delete prototype.
20408         * config/rx/rx.c (rx_print_operand): Make static.
20409         Allow %H and %L to handle CONST_DOUBLEs.
20410         (rx_print_operand_address): Make static.
20411         (rx_gen_move_template): Rename local variable 'template' to
20412         out_template.
20413         (rx_function_arg): Do not pass unknown sized objects in registers.
20414         (TARGET_PRINT_OPERAND): Define.
20415         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20416
20417 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
20418
20419         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
20420
20421 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
20422
20423         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
20424         stack-alignment for simple leaf-functions.
20425
20426 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20427
20428         * doc/install.texi: Document bootstrap-lto.
20429
20430 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20431
20432         PR debug/44248
20433         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
20434         (input_function): Drop them here, if VTA is disabled.
20435
20436 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
20437
20438         PR target/44546
20439         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
20440         New predicate.
20441         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
20442         ix86_swapped_fp_comparsion_operator instead of
20443         ix86_fp_comparison_operator.
20444
20445         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
20446         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
20447         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
20448         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
20449         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
20450         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
20451
20452 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
20453
20454         PR other/32998
20455         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
20456         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
20457         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
20458         (decode_cmdline_option): Update for this return value.  Set
20459         orig_option_with_args_text field.  Set arg field for unknown
20460         options.  Make static.
20461         (decode_cmdline_options_to_array): New.
20462         (prune_options): Update handling of find_opt return value.
20463         * opts.c (read_cmdline_option): Take decoded option.  Return void.
20464         (read_cmdline_options): Take decoded options.
20465         (decode_options): Add parameters for decoded options.  Use
20466         decode_cmdline_options_to_array.  Use decoded options for -O
20467         scan.  Use integral_argument for -O parameters.  Update call to
20468         read_cmdline_options.
20469         (enable_warning_as_error): Update handling of find_opt return value.
20470         * opts.h: Update comment on unknown options.
20471         (struct cl_decoded_option): Update comments on opt_index and arg.
20472         Add orig_option_with_args_text.
20473         (decode_cmdline_option): Remove.
20474         (decode_cmdline_options_to_array): Declare.
20475         (decode_options): Update prototype.
20476         * toplev.c (save_argv): Remove.
20477         (save_decoded_options, save_decoded_options_count): New.
20478         (read_integral_parameter): Remove.
20479         (print_switch_values): Use decoded options.
20480         (toplev_main): Don't set save_argv.  Update call to decode_options.
20481         * toplev.h (read_integral_parameter): Remove.
20482         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
20483
20484 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
20485
20486         PR target/44072
20487         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
20488         immediate.
20489         * constraints.md (Pw, Px): New constraints.
20490         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
20491
20492 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
20493
20494         * config/i386/sse.md (fma4modesuffixf4): Removed.
20495         (ssemodesuffixf2s): Likewise.
20496         (ssemodesuffixf4): Likewise.
20497         (ssemodesuffixf2c): Likewise.
20498         (ssescalarmodesuffix2s): Likewise.
20499         (avxmodesuffixf2c): Likewise.
20500         (ssemodesuffix): New.
20501         (ssescalarmodesuffix): Likewise.
20502         Update patterns with ssemodesuffix and ssescalarmodesuffix.
20503
20504 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
20505
20506         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
20507
20508 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20509
20510         * stor-layout.c (debug_rli): Remove unused local variables.
20511
20512 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
20513
20514         PR rtl-optimization/40900
20515         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
20516         original expression for later reuse.
20517         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
20518         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
20519
20520 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
20521
20522         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
20523         double_int_fits_in_uhwi_p): Implement as static inline.
20524         (double_int_xor): New inline function.
20525         (double_int_lrotate, double_int_rrotate, double_int_max,
20526         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20527         double_int_smin): Declare.
20528         (lrotate_double, rrotate_double): Remove declaration.
20529         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
20530         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
20531         (double_int_lrotate, double_int_rrotate, double_int_max,
20532         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20533         double_int_smin): New function.
20534         * fold-const.c (int_const_binop): Clean up, use double_int_*
20535         functions.
20536         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
20537         double_int_* and immed_double_int_const functions.
20538
20539 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20540
20541         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
20542         * function.c (types_used_by_cur_var_decl): Likewise.
20543         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
20544
20545 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20546
20547         * tree.h (record_layout_info): Change type of pending_statics field
20548         to a VEC.
20549         * stor-layout.c (start_record_layout): Store NULL into
20550         pending_statics.
20551         (debug_rli): Call debug_vec_tree instead of debug_tree.
20552         (place_field): Likewise.
20553         (finish_record_layout): Likewise.
20554
20555 2010-06-18  Alan Modra  <amodra@gmail.com>
20556
20557         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
20558
20559 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20560
20561         PR target/43740
20562         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
20563         for SET source operand from SET destination operand.
20564
20565 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
20566
20567         PR rtl-optimization/39871
20568         * reload1.c (init_eliminable_invariants): For flag_pic, disable
20569         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
20570         (function_invariant_p): Rule out a plus of frame or arg pointer with
20571         a SYMBOL_REF.
20572         * ira.c (find_reg_equiv_invariant_const): Likewise.
20573
20574 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
20575
20576         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
20577         print_operand_address and puts to output the operand for CONST.
20578
20579 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
20580
20581         PR debug/44572
20582         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
20583         hook.
20584
20585 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20586
20587         * v850-protos.h (print_operand): Delete.
20588         (print_operand_address): Delete.
20589         * v850.h (PRINT_OPERAND): Delete.
20590         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20591         (PRINT_OPERAND_ADDRESS): Delete.
20592         * v850.c (print_operand_address): Rename to...
20593         (v850_print_operand_address): ...this.  Make static. Call
20594         v850_print_operand.
20595         (print_operand): Rename to...
20596         (v850_print_operand): ...this.  Make static.  Call
20597         v850_print_operand_address.
20598         (v850_print_operand_punct_valid_p): New function.
20599         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20600         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20601
20602 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20603
20604         * config/sh/sh-protos.h (print_operand): Delete.
20605         (print_operand_address): Delete.
20606         * config/sh/sh.h (PRINT_OPERAND): Delete.
20607         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20608         (PRINT_OPERAND_ADDRESS): Delete.
20609         * config/sh/sh.c (sh_print_operand_address): Make static.
20610         (sh_print_operand): Make static.  Call sh_print_operand_address
20611         and sh_print_operand.
20612         (sh_print_operand_punct_valid_p): New function.
20613         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20614         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20615
20616 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20617
20618         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
20619         (mcore_print_operand_address): Delete.
20620         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
20621         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20622         (PRINT_OPERAND_ADDRESS): Delete.
20623         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
20624         (mcore_print_operand): Make static.
20625         (mcore_print_operand_punct_valid_p): New function.
20626         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
20627         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20628
20629 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20630
20631         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
20632         (print_operand_address): Delete.
20633         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
20634         (PRINT_OPERAND_ADDRESS): Delete.
20635         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
20636         static.
20637         (m68hc11_print_operand): Make static.
20638         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20639
20640 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20641
20642         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
20643         (m32r_print_operand_address): Delete.
20644         * config/m32r/m32r.h (m32r_punct_chars): Delete.
20645         (PRINT_OPERAND): Delete.
20646         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20647         (PRINT_OPERAND_ADDRESS): Delete.
20648         * config/m32r/m32r.c (m32r_punct_chars): Make static.
20649         (m32r_print_operand_address): Make static.
20650         (m32r_print_operand): Make static.
20651         (m32r_print_operand_punct_valid_p): New function.
20652         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20653         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20654
20655 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20656
20657         * config/iq2000/iq2000-protos.h (print_operand): Delete.
20658         (print_operand_address): Delete.
20659         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
20660         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20661         (PRINT_OPERAND_ADDRESS): Delete.
20662         (iq2000_print_operand_punct): Delete.
20663         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
20664         (iq2000_print_operand_address): Make static.
20665         (iq2000_print_operand): Make static.
20666         (iq2000_print_operand_punct_valid_p): New function.
20667         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20668         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20669
20670 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20671
20672         * config/frv/frv-protos.h (frv_print_operand): Delete.
20673         (frv_print_operand_address): Delete.
20674         * config/frv/frv.h (PRINT_OPERAND): Delete.
20675         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20676         (PRINT_OPERAND_ADDRESS): Delete.
20677         * config/frv/frv.c (frv_print_operand_address): Make static.
20678         (frv_print_operand): Make static.
20679         (frv_print_operand_punct_valid_p): New function.
20680         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20681         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20682
20683 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20684
20685         * tree.h (vec_member): Declare.
20686         * tree.c (vec_member): Define.
20687
20688 2010-06-17  Richard Guenther  <rguenther@suse.de>
20689
20690         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
20691         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
20692
20693 2010-06-17  Richard Guenther  <rguenther@suse.de>
20694
20695         * tree-inline.c (declare_return_variable): Remove bogus code.
20696
20697 2010-06-17  Richard Guenther  <rguenther@suse.de>
20698
20699         * gimplify.c (gimplify_bind_expr): Always promote complex
20700         and vector variables to registers if possible.
20701
20702 2010-06-17  Richard Guenther  <rguenther@suse.de>
20703
20704         * expr.c (get_inner_reference): Use double_int for bit_offset
20705         calculation.
20706
20707 2010-06-16  DJ Delorie  <dj@redhat.com>
20708
20709         * common.opt (-fstrict-volatile-bitfields): new.
20710         * doc/invoke.texi: Document it.
20711         * fold-const.c (optimize_bit_field_compare): For volatile
20712         bitfields, use the field's type to determine the mode, not the
20713         field's size.
20714         * expr.c (expand_assignment): Likewise.
20715         (get_inner_reference): Likewise.
20716         (expand_expr_real_1): Likewise.
20717         * expmed.c (store_fixed_bit_field): Likewise.
20718         (extract_bit_field_1): Likewise.
20719         (extract_fixed_bit_field): Likewise.
20720
20721 2010-06-16  Richard Guenther  <rguenther@suse.de>
20722
20723         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
20724
20725 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
20726
20727         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
20728         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
20729         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
20730         * debug.c: Likewise.
20731         * sdbout.c: Likewise.
20732         * vmsdbgout.c: Likewise.
20733         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
20734         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
20735         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
20736         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
20737         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
20738         * dwarf2out.c (dw_fde_struct): New fields
20739         dw_fde_vms_{end,begin}_prologue.
20740         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
20741         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
20742         (dwarf2out_vms_end_prologue): New function.
20743         (dwarf2out_vms_begin_epilogue): New function.
20744         (dw_val_struct): New value dw_val_class_vms_delta.
20745         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
20746         begin_epilogue for VMS.
20747         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
20748         new static functions.
20749         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
20750         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
20751         static functions.
20752         (print_die): New case dw_val_class_vms_delta.
20753         (attr_checksum): Likewise.
20754         (same_dw_val_p: Likewise.
20755         (size_of_die): Likewise.
20756         (value_format): Likewise.
20757         (output_die): Likewise.
20758         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
20759         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
20760         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
20761         dwarf2out_cfi_begin_epilogue
20762         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
20763
20764 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
20765
20766         * config/cris/cris-protos.h (cris_print_operand): Delete.
20767         (cris_print_operand_address): Delete.
20768         * config/cris/cris.h (PRINT_OPERAND): Delete.
20769         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20770         (PRINT_OPERAND_ADDRESS): Delete.
20771         * config/cris/cris.c (cris_print_operand_address): Make static.
20772         (cris_print_operand): Make static.
20773         (cris_print_operand_punct_valid_p): New function.
20774         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20775         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20776
20777 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
20778
20779         * config/arm/arm-protos.h (arm_print_operand): Delete.
20780         (arm_print_operand_address): Delete.
20781         * config/arm/arm.h (PRINT_OPERAND): Delete.
20782         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20783         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
20784         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
20785         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
20786         (arm_print_operand): Make static.
20787         (arm_print_operand_punct_valid_p): New function.
20788         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20789         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20790
20791 2010-06-16  Nick Clifton  <nickc@redhat.com>
20792
20793         * config/rx/constraints.md (NEGint4): New constraint.
20794         * config/rx/rx.md (attr cc): Add set_zsc.
20795         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
20796         initialised.
20797         (cmpsf): Likewise.
20798         (call_internal): Clobber the cc0 register.
20799         (call_value_internal): Likewise.
20800         (cstoresi4): Likewise.
20801         (movsieq): Likewise.
20802         (movsine): Likewise.
20803         (addsi3): Add alternative to handle small negative constants.
20804         (sunsi3): Likewise.
20805         (addsi3): Do not set the O bit in the cc0 register.
20806         (adddi3): Likewise.
20807         (subsi3): Likewise.
20808         (subdi3): Likewise.
20809         (andsi3): Reorder alternatives to prefer shorter forms.
20810         (mulsi3): Likewise.
20811         (iorsi3): Likewise.
20812         (negsi2): Note that the cc0 flags are set.
20813         (rotlsi3): Note that only the Z and S bits are set in cc0.
20814         (lshrsi3): Likewise.
20815         (ashlsi3): Likewise.
20816         (subsf3): Use %Q for the MEM operand.
20817         (fix_truncsfsi2): Likewise.
20818         (floatsisf2): Likewise.
20819         (bitset): Remove early clobber from destination.
20820         (bitset_in_memory): Likewise.
20821         (lrintsf2): Clobber the cc0 register.
20822         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
20823         (rx_print_operand): Handle %N.
20824
20825 2010-06-16  Jan Hubicka  <jh@suse.cz>
20826
20827         * df-core.c (df_compact_blocks): Free problem_temps vector.
20828
20829 2010-06-16  Martin Jambor  <mjambor@suse.cz>
20830
20831         PR tree-optimization/43905
20832         * tree-sra.c: Include tree-inline.h.
20833         (create_abstract_origin): Removed.
20834         (modify_function): Version the call graph node instead of creating
20835         abstract origins and dealing with same_body aliases.
20836         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
20837         function is versionable.
20838         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
20839
20840 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
20841
20842         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
20843         (CHOOSE_DYNAMIC_LINKER): Update.
20844
20845 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
20846
20847         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
20848         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
20849         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
20850         *prefetch_3dnow_rex.
20851
20852 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
20853
20854         * target.h (struct asm_out):Add declare_constant_name field.
20855         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
20856         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
20857         * output.h (default_asm_declare_constant_name): Declare.
20858         (assemble_label): Update prototype.
20859         * varasm.c (assemble_constant_contents): Use
20860         targetm.asm_out.declare_constant_name target hook.
20861         (assemble_label): Add 'file' argument.
20862         (default_asm_declare_constant_name): New function.
20863         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
20864         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
20865         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
20866
20867         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
20868         * config/darwin.c (darwin_asm_declare_constant_name): New function.
20869         (machopic_output_indirection): Update assemble_label argument list.
20870         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
20871         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
20872
20873 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
20874
20875         PR middle-end/44391
20876         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
20877         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
20878
20879 2010-06-15  Richard Guenther  <rguenther@suse.de>
20880
20881         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
20882
20883 2010-06-15  Paul Brook  <paul@codesourcery.com>
20884
20885         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
20886         hard-float ABI.
20887
20888 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
20889
20890         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
20891         don't get a vector type for output.
20892
20893 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
20894
20895         PR fortran/44536
20896         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
20897         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
20898         (LANG_HOOKS_DECLS): Add it.
20899         * gimplify.c (omp_notice_variable): Call
20900         lang_hooks.decls.omp_report_decl.
20901
20902 2010-06-15  Martin Jambor  <mjambor@suse.cz>
20903
20904         PR lto/44464
20905         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
20906         on the newly dead SSA name.
20907
20908 2010-06-15  Alan Modra  <amodra@gmail.com>
20909
20910         * doc/invoke.texi: Add mcmodel to powerpc options.
20911         * configure.ac: Add HAVE_LD_LARGE_TOC test.
20912         * configure: Regenerate.
20913         * config.in: Regenerate.
20914         * config/rs6000/linux64.opt (mcmodel): New.
20915         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
20916         (TARGET_CMODEL, SET_CMODEL): Define.
20917         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
20918         select CMODEL_MEDIUM default.
20919         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
20920         (TARGET_CMODEL): Define default.
20921         * config/rs6000/rs6000.c (cmodel): New variable.
20922         (rs6000_explicit_options): Add cmodel field.
20923         (rs6000_handle_option): Handle -mcmodel.
20924         (create_TOC_reference): Add largetoc_reg param.  Generate high,
20925         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
20926         (rs6000_delegitimize_address): Recognise new toc reference rtl
20927         and minimal-toc rtl.
20928         (rs6000_legitimize_reload_address): Handle new toc references.
20929         (print_operand_address): Handle legitimate_constant_pool_address_p
20930         match before lo_sum.
20931         (rs6000_eliminate_indexed_memrefs): Tidy.
20932         (rs6000_emit_move): Tweak threshold for inlining constants.
20933         Keep rs6000_emit_allocate_stack large stack frame offsets
20934         loaded into r0 inline.
20935         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
20936         (tocrel_base, tocrel_offset): New variables.
20937         (toc_relative_expr_p): Set them here.
20938         (print_operand_address): Skip over any offset on constant pool address.
20939         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
20940         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
20941         (offsettable_ok_by_alignment): New function.
20942         (rs6000_emit_move): Address suitably aligned local symbol_refs
20943         relative to the toc pointer for -mcmodel=medium.
20944         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
20945         strict param.  Allow lo_sum version of addressing.  Verify reg
20946         used for -mminimal-toc and -mcmodel != small.  Update all callers.
20947         * config/rs6000/constraints.md: Update for above change.
20948         * config/rs6000/predicates.md: Likewise.
20949         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
20950         code.
20951         (tls_gd): Split for -mcmodel=medium/large.
20952         (tls_gd_high, tls_gd_low): New.
20953         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
20954         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
20955         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
20956         (largetoc_high, largetoc_low): New.
20957         (cmptf_internal2): Add clobber.
20958         * config/rs6000/rs6000-protos.h: Update.
20959
20960 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
20961
20962         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
20963         true if no prefetch is going to be generated for a given group.
20964         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
20965         estimate the prefetch_count.
20966         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
20967         prefetch count by considering the unroll_factor and prefetch_mod
20968         for is_loop_prefetching_profitable.
20969
20970 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
20971
20972         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
20973         anything if the argument is not a MEM.
20974
20975 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
20976
20977         PR debug/43650
20978         PR debug/44181
20979         PR debug/44247
20980         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
20981         debug stmts.
20982         (canonicalize_loop_ivs): Likewise.
20983
20984 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
20985
20986         PR debug/43656
20987         * haifa-sched.c (setup_insn_reg_pressure_info,
20988         update_register_pressure): Reject debug insns.
20989         (ready_sort): Don't setup reg pressure for debug insns.
20990         (schedule_insn): Don't update reg pressure for debug insns.
20991
20992 2010-06-14  Richard Guenther  <rguenther@suse.de>
20993
20994         * lto-streamer.c (cached_bp): Remove.
20995         (bitpack_delete): Likewise.
20996         (bitpack_create): Likewise.
20997         (bp_get_next_word): Likewise.
20998         (bp_pack_value, bp_unpack_value): Move ...
20999         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
21000         Re-implement.
21001         (struct bitpack_d): Likewise.
21002         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
21003         New inline functions.
21004         * lto-streamer-out.c (lto_output_bitpack): Remove.
21005         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21006         (pack_value_fields): Adjust.
21007         (lto_write_tree): Likewise.
21008         (output_gimple_stmt): Likewise.
21009         (output_function): Likewise.
21010         * lto-streamer-in.c (input_gimple_stmt): Adjust.
21011         (input_function): Likewise.
21012         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21013         (lto_input_bitpack): Remove.
21014         (lto_materialize_tree): Adjust.
21015         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
21016         * lto-cgraph.c (lto_output_edge): Adjust.
21017         (lto_output_node): Likewise.
21018         (lto_output_varpool_node): Likewise.
21019         (lto_output_ref): Likewise.
21020         (input_node): Likewise.
21021         (input_varpool_node): Likewise.
21022         (input_ref): Likewise.
21023         (input_edge): Likewise.
21024         (output_node_opt_summary): Likewise.
21025         (input_node_opt_summary): Likewise.
21026         * ipa-pure-const.c (pure_const_write_summary): Likewise.
21027         (pure_const_read_summary): Likewise.
21028         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
21029         (ipa_read_indirect_edge_info): Likewise.
21030         (ipa_write_node_info): Likewise.
21031         (ipa_read_node_info): Likewise.
21032
21033 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21034
21035         PR target/44534
21036         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
21037         (vec_extract_lo_v16hi): Likewise.
21038         (vec_extract_lo_v32qi): Likewise.
21039
21040 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21041
21042         PR bootstrap/44426
21043         * tree.h (build_call_expr): Don't define as vararg macro, instead
21044         add a prototype.
21045         * builtins.c (build_call_nofold): Remove.
21046         (expand_builtin_int_roundingfn, expand_builtin_pow,
21047         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
21048         expand_builtin_memset_args, expand_builtin_strcmp,
21049         expand_builtin_strncmp, expand_builtin_memory_chk): Use
21050         build_call_nofold_loc instead of build_call_nofold.
21051         (build_call_expr): New function.
21052
21053         PR tree-optimization/44508
21054         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
21055         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
21056         don't eliminate trivially dead stmts.
21057         * tree-vrp.c (vrp_finalize): Pass false as last argument
21058         to substitute_and_fold.
21059         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
21060         to substitute_and_fold.
21061         * tree-ssa-ccp.c (ccp_finalize): Likewise.
21062
21063         PR bootstrap/44509
21064         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
21065
21066 2010-06-14  Ira Rosen  <irar@il.ibm.com>
21067
21068         PR tree-optimization/44507
21069         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
21070         to build initial vector for BIT_AND_EXPR.
21071         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
21072
21073 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21074
21075         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
21076         adjust z10prop set_attr.
21077
21078 2010-06-13  Jan Hubicka  <jh@suse.cz>
21079
21080         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
21081         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
21082         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
21083         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
21084         datastructure checks into checking asserts.
21085         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
21086         * tree-ssa-sccvn.c (VN_INFO): Likewise.
21087         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
21088         df_ref_create_structure): Likewise.
21089         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
21090         pool_free): Use gcc_checking_assert.
21091         * alias.c (get_alias_set): Likewise.
21092         * var-tracking.c (variable_htab_free, shared_hash_copy,
21093         canonicalize_values_mark, variable_merge_over_cur): Likewise.
21094         * lto-streamer.c (bp_unpack_value): Likewise.
21095
21096 2010-06-13  Richard Guenther  <rguenther@suse.de>
21097
21098         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
21099         Do not stream but initialize TYPE_CANONICAL to NULL.
21100         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
21101         * gimple.c (gimple_types_compatible_p): Disregard
21102         TYPE_STRUCTURAL_EQUALITY_P.
21103         (gimple_register_type): Use TYPE_CANONICAL as cache.
21104         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
21105         before registering common types.
21106         * config/i386/i386.c (ix86_function_arg_boundary): Do not
21107         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
21108         * tree.h (TYPE_CANONICAL): Clarify documentation.
21109
21110 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
21111
21112         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
21113         LIBCALL_VALUE): Remove macros.
21114         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
21115         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21116         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21117         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
21118         (ia64_function_value): Make static. Handle receiving the function
21119         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
21120
21121 2010-06-12  Jan Hubicka  <jh@suse.cz>
21122
21123         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
21124         at correct place.
21125
21126 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
21127
21128         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
21129
21130 2010-06-12  Jan Hubicka  <jh@suse.cz>
21131
21132         * df-core.c (df_clear_bb_info): New function.
21133         (df_set_blocks): bb_info is always allocated.
21134         (df_get_bb_info): Use block_info_elt_size.
21135         (df_set_bb_info): Likewise.
21136         (df_compact_blocks): Update for new block_info.
21137         (grow_bb_info): New function.
21138         * df-problems.c (df_grow_bb_info): Move to df-core.c
21139         (df_rd_set_bb_info): Remove.
21140         (df_rd_free_bb_info): Do not free block pool.
21141         (df_rd_alloc): Do not create pool, use check for
21142         obstack presence instead of NULL pointer for new blocks.
21143         (df_rd_free): DO not free alloc pool; clear block_info.
21144         (problem_RD): Add size of block info structure.
21145         (df_lr_set_bb_info): Remove.
21146         (df_lr_free_bb_info): Do not free block pool.
21147         (df_lr_alloc): Do not create pool, use check for
21148         obstack presence instead of NULL pointer for new blocks.
21149         (df_lr_free): DO not free alloc pool; clear block_info.
21150         (problem_LR): Add size of block info structure.
21151         (df_live_set_bb_info): Remove.
21152         (df_live_free_bb_info): Do not free block pool.
21153         (df_live_alloc): Do not create pool, use check for
21154         obstack presence instead of NULL pointer for new blocks.
21155         (df_live_free): DO not free alloc pool; clear block_info.
21156         (problem_LIVE): Add size of block info structure.
21157         (problem_CHAIN): Add size of block info structure.
21158         (df_byte_lr_set_bb_info): Remove.
21159         (df_byte_lr_free_bb_info): Do not free block pool.
21160         (df_byte_lr_alloc): Do not create pool, use check for
21161         obstack presence instead of NULL pointer for new blocks.
21162         (df_byte_lr_free): DO not free alloc pool; clear block_info.
21163         (problem_BYTE_LR): Add size of block info structure.
21164         (problem_NOTE): Add size of block info structure.
21165         (df_byte_MD_set_bb_info): Remove.
21166         (df_byte_MD_free_bb_info): Do not free block pool.
21167         (df_byte_MD_alloc): Do not create pool, use check for
21168         obstack presence instead of NULL pointer for new blocks.
21169         (df_byte_MD_free): DO not free alloc pool; clear block_info.
21170         (problem_BD): Add size of block info structure.
21171         * df-scan.c (df_scan_free_internal): Free block pool.
21172         (df_scan_set_bb_info): Remove.
21173         (df_scan_free_bb_info): Check for artificial_defs instead
21174         of bb_info being non-NULL.
21175         (df_scan_alloc): DO not create df_scan_block pool.
21176         (problem_SCAN): Set size of block info.
21177         (df_bb_refs_record): Do not allocate bb_info.
21178         * df.h (df_problem): Add block_info_elt_size.
21179         (struct dataflow): Change block_info to void *.
21180         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
21181         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
21182         in-line structures.
21183
21184 2010-06-12  Jan Hubicka  <jh@suse.cz>
21185
21186         PR tree-optimize/44485
21187         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
21188         containing use of return value of noreturn function.
21189
21190 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
21191
21192         * targhooks.c (default_function_value): Don't use
21193         FUNCTION_OUTGOING_VALUE.
21194         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
21195         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
21196
21197 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
21198
21199         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
21200         Add crtfastmath.o to extra_parts.
21201         * config/mips/crtfastmath.c: New.
21202         * config/mips/linux.h (ENDFILE_SPEC): New.
21203
21204 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
21205
21206         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
21207         old_type in parameter.
21208         (gcc_type_for_value): Update call to gcc_type_for_interval.
21209         (compute_type_for_level_1): Renamed compute_type_for_level.
21210         Update call to gcc_type_for_interval.
21211
21212 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21213
21214         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
21215         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
21216
21217 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21218
21219         * opts-common.c: Include options.h.
21220         (integral_argument): Move from opts.c.
21221         (decode_cmdline_option): New.  Based on read_cmdline_option.
21222         * opts.c (integral_argument): Move to opts-common.c.
21223         (read_cmdline_option): Move most contents to
21224         decode_cmdline_option.  Use %qs in diagnostics.
21225         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
21226         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
21227         decode_cmdline_option): New.
21228
21229 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21230
21231         PR target/44481
21232         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
21233         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
21234         (partiysi2_cmp): Ditto.
21235         (*partiyhi2_cmp): Ditto.
21236         (*parityqi2_cmp): Remove.
21237
21238 2010-06-11  Jan Hubicka  <jh@suse.cz>
21239
21240         * bitmap.h (bmp_iter_next_bit): New.
21241         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
21242
21243 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
21244             Eric Botcazou  <ebotcazou@adacore.com>
21245
21246         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
21247         computed cost.
21248
21249 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21250
21251         * config/i386/i386.md (unspec): New define_c_enum.
21252         (unspecv): Ditto.
21253
21254 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
21255
21256         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
21257
21258 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
21259
21260         PR middle-end/44483
21261         * tree-if-conv.c (bb_predicate_s): New struct.
21262         (bb_predicate_p): New.
21263         (bb_has_predicate): New.
21264         (bb_predicate): New.
21265         (set_bb_predicate): New.
21266         (bb_predicate_gimplified_stmts): New.
21267         (set_bb_predicate_gimplified_stmts): New.
21268         (add_bb_predicate_gimplified_stmts): New.
21269         (init_bb_predicate): New.
21270         (free_bb_predicate): New.
21271         (is_predicated): Use bb_predicate.
21272         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
21273         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
21274         before processing their successors.
21275         (clean_predicate_lists): Removed.
21276         (find_phi_replacement_condition): Use bb_predicate.
21277         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
21278         computations.
21279         (insert_gimplified_predicates): New.
21280         (combine_blocks): Call insert_gimplified_predicates.
21281         (tree_if_conversion): Call free_bb_predicate instead of
21282         clean_predicate_lists.
21283
21284 2010-10-11  Paul Brook  <paul@codesourcery.com>
21285
21286         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
21287         * config/arm/arm.c (all_architectures): Change v7e-m default to
21288         cortexm4.
21289         * config/arm/arm-cores.def: Add cortex-m4.
21290         * config/arm/arm-tune.md: Regenerate.
21291
21292 2010-06-11  Jan Hubicka  <jh@suse.cz>
21293
21294         * ipa-pure-const.c (special_builtlin_state): New function.
21295         (check_call): Use it instead of special casign BUILT_IN_RETURN.
21296         (propagate_pure_const): Use it.
21297
21298 2010-06-11  Jan Hubicka  <jh@suse.cz>
21299
21300         * df-problems.c (df_live_scratch): Convert to bitmap_head.
21301         (df_live_alloc): Initialize df_live_scratch when initializing
21302         problem_data.
21303         (df_live_transfer_function): Update uses of df_live_scratch.
21304         (df_live_free): Free problem_data; clear df_live_scratch before
21305         releasing the obstack.
21306         (df_md_free): Free problem data.
21307
21308 2010-06-11  Jan Hubicka  <jh@suse.cz>
21309
21310         * doc/invoke.texi (Wsuggest-attribute): Document.
21311         (Wmissing-noreturn): Remove.
21312         * ipa-pure-const.c (warn_function_noreturn): New function.
21313         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
21314         warn_missing_noreturn.
21315         * common.opt (Wsuggest-attribute=noreturn): New.
21316         * tree-flow.h (warn_function_noreturn): Declare.
21317         * tree-cfg.c (execute_warn_function_noreturn): Use
21318         warn_function_noreturn.
21319         (gate_warn_function_noreturn): New.
21320         (pass_warn_function_noreturn): Update.
21321
21322 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21323
21324         * c-typeck.c (handle_warn_cast_qual): Add loc
21325         parameter. Improve warning message.
21326         (build_c_cast): Pass location to handle_warn_cast_qual.
21327
21328 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21329
21330         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
21331         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
21332         insn mnemonic.
21333         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
21334
21335 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
21336
21337         Fix bootstap on mips
21338         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
21339         be naming typedefs.
21340
21341 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
21342
21343         * system.h (helper_const_non_const_cast): New inline for
21344         gcc version <= 4.0.
21345         (CONST_CAST2): For gcc version <= 4.0 use
21346         new helper to do const/non-const casting.
21347
21348 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21349
21350         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
21351         * Makefile.in (OBJS-common): Include insn-enums.o.
21352         (insn-enums.o): New rule.
21353         (simple_generated_c): Add insn-enums.c.
21354         (build/genenums.o): New rule.
21355         (genprogmd): Add "enums".
21356         * genconstants.c (print_enum_type): Declare a C string array
21357         for each enum.
21358         * genenums.c: New file.
21359         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
21360         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
21361         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
21362
21363 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21364
21365         * doc/md.texi (define_enum_attr): Document.
21366         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
21367         * read-md.h (lookup_enum_type): Declare.
21368         * read-md.c (lookup_enum_type): New function.
21369         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
21370         * genattrtab.c (attr_desc): Add an enum_name field.
21371         (evaluate_eq_attr): Take the associated attribute as argument.
21372         Get the enum prefix from the enum_name field, if defined.
21373         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
21374         (simplify_test_exp): Pass attr to evaluate_eq_attr.
21375         (add_attr_value): New function, split out from...
21376         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
21377         (write_test_expr): Pass attr to evaluate_eq_attr.
21378         (write_attr_get): Use the enum_name as the enum tag, if defined.
21379         (write_attr_valueq): Use the enum_name as a prefix, if defined.
21380         (find_attr): Initialize enum_name.
21381         (main): Handle DEFINE_ENUM_ATTR.
21382         * gensupport.c (process_rtx): Likewise.
21383         * config/mips/mips.h (mips_tune_attr): Delete.
21384         * config/mips/mips.md (cpu): Use define_attr_enum.
21385
21386 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21387
21388         * doc/md.texi (define_c_enum, define_enum): Document.
21389         * read-md.h (md_constant): Add a parent_enum field.
21390         (enum_value, enum_type): New structures.
21391         (upcase_string, traverse_enum_types): Declare.
21392         * read-md.c (enum_types): New variable.
21393         (upcase_string, add_constant): New functions.
21394         (handle_constants): Don't create the hash table here.
21395         Use add_constant.
21396         (traverse_md_constants): Don't check for a null md_constants.
21397         (decimal_string, handle_enum, traverse_enum_types): New functions.
21398         (read_md_files): Initialize md_constants and md_enums.
21399         * genconstants.c (print_md_constant): Ignore info argument.
21400         Only print constants that belong to no enum.
21401         (print_enum_type): New function.
21402         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
21403         for each defined enum type.
21404         * config/mips/mips.md (processor): New define_enum.
21405         (unspec): New define_c_enum.
21406         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
21407         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
21408         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
21409         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
21410         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
21411         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
21412         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
21413         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
21414         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
21415         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
21416         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
21417         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
21418         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
21419         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
21420         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
21421         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
21422         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
21423         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
21424         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
21425         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
21426         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
21427         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
21428         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21429         (UNSPEC_RDDSP): Move to mips-dsp.md.
21430         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
21431         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
21432         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
21433         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
21434         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
21435         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
21436         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
21437         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
21438         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
21439         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
21440         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
21441         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
21442         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
21443         Moved to mips-dspr2.md.
21444         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
21445         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
21446         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
21447         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
21448         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
21449         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
21450         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21451         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21452         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21453         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21454         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21455         UNSPEC_LOONGSON_PSADBH)
21456         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21457         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21458         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
21459         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21460         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21461         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21462         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
21463         (cpu): Update comment.
21464         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
21465         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
21466         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
21467         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
21468         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
21469         UNSPEC_LOONGSON_PCMPEQ)
21470         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
21471         UNSPEC_LOONGSON_PINSR_0)
21472         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21473         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21474         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21475         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21476         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21477         UNSPEC_LOONGSON_PSADBH)
21478         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21479         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21480         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
21481         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21482         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21483         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21484         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
21485         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
21486         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
21487         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
21488         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
21489         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
21490         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
21491         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
21492         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
21493         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
21494         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
21495         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
21496         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
21497         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
21498         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
21499         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
21500         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
21501         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
21502         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
21503         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
21504         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21505         (UNSPEC_RDDSP): Moved from mips.md.
21506         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
21507         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
21508         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
21509         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
21510         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
21511         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
21512         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
21513         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
21514         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
21515         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
21516         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
21517         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
21518         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
21519         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
21520         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
21521         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
21522         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
21523         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
21524         (UNSPEC_SCC): Moved from mips.md.
21525         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
21526         "processor_type" to "processor".
21527         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
21528         * config/mips/mips.h (processor_type): Delete.
21529         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
21530         "processor_type" to "processor".
21531
21532 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21533
21534         * configure.ac (tm_include_list): Add insn-constants.h.
21535         * configure: Regenerate.
21536         * Makefile.in (GTM_H): Move insn-constants.h here from...
21537         (TM_H): ...here.
21538         * mkconfig.sh: Remove special handling for insn-constants.h.
21539
21540 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21541
21542         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
21543         (BUILD_MD): ...this new variable.
21544         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
21545         that include the old contents of simple_generated_h and
21546         simple_generated_c.
21547         (simple_generated_h, simple_generated_c): Include them.  Add
21548         insn-constants.h.
21549         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
21550         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
21551         Remove these dependencies from the main rule and include
21552         insn-conditions.md in the command line only if it appears
21553         in the dependency list.
21554         (insn-constants.h, s-constants): Delete.
21555         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
21556         or gensupport.h.
21557         (build/genmddeps.o): Likewise.
21558         (genprogrtl): New variable that contains everything from genprogmd
21559         except mddeps and constants.
21560         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
21561         depend on $(BUILD_MD)
21562         (genprog): New variable.  Make these programs depend on
21563         $(BUILD_ERRORS).
21564         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
21565         (main): Use read_md_files instead of init_rtx_reader_args.
21566         * genconstants.c: As for genmddeps.c.
21567         * read-md.h (read_skip_construct): Declare.
21568         * read-md.c (read_skip_construct): New function.
21569         (handle_file): Allow a null handle_directive, skipping the
21570         construct if so.
21571         (parse_include): Update the comment accordingly.
21572
21573 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21574
21575         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
21576         * genmddeps.c: Include read-md.h.
21577         (main): Call init_rtx_reader_args instead of init_md_reader_args.
21578         * genattr.c (main): Likewise.
21579         * genattrtab.c (main): Likewise.
21580         * genautomata.c (main): Likewise.
21581         * gencodes.c (main): Likewise.
21582         * genconditions.c (main): Likewise.
21583         * genconfig.c (main): Likewise.
21584         * genconstants.c (main): Likewise.
21585         * genemit.c (main): Likewise.
21586         * genextract.c (main): Likewise.
21587         * genflags.c (main): Likewise.
21588         * genopinit.c (main): Likewise.
21589         * genoutput.c (main): Likewise.
21590         * genpeep.c (main): Likewise.
21591         * genrecog.c (main): Likewise.
21592         * genpreds.c (main): Likewise.
21593         * gensupport.h (in_fname): Move to read-md.h.
21594         (init_md_reader_args_cb): Rename to...
21595         (init_rtx_reader_args_cb): ...this and return a bool.
21596         (init_md_reader_args): Rename to...
21597         (init_rtx_reader_args): ...this and return a bool.
21598         (include_callback): Move to read-md.h.
21599         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
21600         (file_name_list, first_dir_md_include): Move to read-md.c
21601         (first_bracket_include): Delete unused variable.
21602         (last_dir_md_include): Move to read-md.c.
21603         (process_include): Delete, moving code to read-md.c:handle_include.
21604         (process_rtx): Don't handle INCLUDE.
21605         (save_string): Delete.
21606         (rtx_handle_directive): New function.
21607         (init_md_reader_args_cb): Rename to...
21608         (init_rtx_reader_args_cb): ...this and return a boolean success value.
21609         Use read_md_args.
21610         (init_md_reader_args): Rename to...
21611         (init_rtx_reader_args): ...this and return a boolean success value.
21612         * rtl.def (INCLUDE): Delete.
21613         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
21614         argument.
21615         * read-rtl.c (read_conditions): Don't gobble ')' here.
21616         (read_mapping): Likewise.
21617         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
21618         Handle top-level non-rtx constructs here rather than in read_rtx_1.
21619         Store the whole queue in *X.  Remove call to init_md_reader.
21620         (read_rtx_1): Rename to...
21621         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
21622         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
21623         here.
21624         (read_nested_rtx): New function.  Handle (nil) here rather than
21625         in read_rtx_code.
21626         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
21627         gobble ')' here.
21628         * read-md.h (directive_handler_t): New type.
21629         (in_fname, include_callback): Moved from read-md.h.
21630         (read_constants, init_md_reader): Delete.
21631         (read_md_files): Declare.
21632         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
21633         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
21634         from gensupport.c.
21635         (read_constants): Rename to...
21636         (handle_constants): ...this.  Don't gobble ')' here.
21637         (handle_include, handle_file, handle_toplevel_file)
21638         (parse_include): New functions, mostly taken from gensupport.c.
21639         (init_md_reader): Subsume into...
21640         (read_md_files): ...this new function.
21641
21642 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21643
21644         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
21645         (unread_char): Decrement read_md_lineno after putting back '\n'.
21646         * read-md.c (fatal_with_file_and_line): Push back any characters
21647         that we decide not to add to the context.
21648         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
21649         fatal_expected_char in cases where '/' ends a line (for example).
21650         (read_name): Don't increment read_md_lineno here.
21651         (read_escape): Likewise.
21652         (read_quoted_string): Likewise.
21653         (read_braced_string): Likewise.
21654
21655 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21656
21657         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
21658         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
21659         * genconstants.c: Include read-md.h.
21660         * read-rtl.c (md_constants): Move to read-md.c.
21661         (md_name): Move to read-md.h.
21662         (initialize_iterators): Use leading_string_hash instead of def_hash
21663         and leading_string_eq_p instead of def_name_eq_p.
21664         (read_name): Move to read-md.c.
21665         (def_hash, def_name_eq_p): Delete.
21666         (read_constants, traverse_md_constants): Move to read-md.c.
21667         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
21668         * read-md.h: Include hashtab.h.
21669         (md_name): Moved from read-rtl.c.
21670         (md_constant): Moved from read-md.h.
21671         (leading_string_hash, leading_string_eq_p, read_name)
21672         (read_constants, traverse_md_constants): Declare.
21673         * read-md.c (md_constants): Moved from read-rtl.c.
21674         (leading_string_hash, leading_string_eq_p): New functions.
21675         (read_name, read_constants, traverse_md_constants): Moved from
21676         read-rtl.c.
21677
21678 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21679
21680         * read-rtl.c (md_name): New structure.
21681         (read_name): Take an md_name instead of a buffer pointer.
21682         Use the "string" field instead of strcpy when expanding constants.
21683         (read_constants): Remove the tmp_char argument.  Update the calls
21684         to read_name, using two local name buffers instead of the tmp_char
21685         argument.  Merge the constant-creation code.
21686         (read_conditions): Remove the tmp_char argument.  Update the calls
21687         to read_name, using a local name buffer instead of the tmp_char
21688         argument.
21689         (read_mapping): Replace tmp_char variable with a local name buffer.
21690         Update the calls to read_name.
21691         (read_rtx_1): Likewise.  Update the calls to read_constants and
21692         read_conditions.
21693
21694 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21695
21696         * Makefile.in (build/read-md.o): Depend on errors.h.
21697         * read-md.h (error_with_line): Declare.
21698         * read-md.c: Include errors.h.
21699         (message_with_line_1): New function, extracted from...
21700         (message_with_line): ...here.
21701         (error_with_line): New function.
21702         * genattrtab.c: If a call to message_with_line is followed by
21703         "have_error = 1;", replace both statements with a call to
21704         error_with_line.
21705         * genoutput.c: Likewise.
21706         * genpreds.c: Likewise.
21707         * genrecog.c: If a call to message_with_line is followed by
21708         "error_count++;", replace both statements with a call to
21709         error_with_line.
21710         (errorcount): Delete.
21711         (main): Don't check it.
21712         * gensupport.c: If a call to message_with_line is followed by
21713         "errors = 1;", replace both statements with a call to error_with_line.
21714         (errors): Delete.
21715         (process_define_cond_exec): Check have_error instead of errors.
21716         (init_md_reader_args_cb): Likewise.  Don't set errors.
21717
21718 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21719
21720         * read-md.h (read_md_file): Declare.
21721         (read_char, unread_char): New functions.
21722         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21723         (read_quoted_string, read_string): Remove FILE * argument.
21724         * read-md.c (read_md_file): New variable.
21725         (read_md_filename, read_md_lineno): Update comments and remove
21726         unnecessary initialization.
21727         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21728         (read_escape, read_quoted_string, read_braced_string, read_string):
21729         Remove FILE * argument.  Update calls accordingly, using read_char
21730         and unread_char instead of getc and ungetc.
21731         * rtl.h (read_rtx): Remove FILE * argument.
21732         * read-rtl.c (iterator_group): Remove FILE * argument from
21733         "find_builtin".
21734         (iterator_traverse_data): Remove "infile" field.
21735         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
21736         (add_mapping, read_name, read_constants, read_conditions)
21737         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
21738         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
21739         Remove file arguments from all calls, using read_char and unread_char
21740         instead of getc and ungetc.
21741         * gensupport.c (process_include): Preserve read_md_file around
21742         the include.  Set read_md_file to the handle of the included file.
21743         Update call to read_rtx.
21744         (init_md_reader_args_cb): Set read_md_file to the handle of the file
21745         and remove local FILE *.  Update calls to read_rtx.
21746
21747 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21748
21749         * read-md.h (read_rtx_lineno): Rename to...
21750         (read_md_lineno): ...this.
21751         (read_rtx_filename): Rename to...
21752         (read_md_filename): ...this.
21753         (copy_rtx_ptr_loc): Rename to...
21754         (copy_md_ptr_loc): ...this.
21755         (print_rtx_ptr_loc): Rename to...
21756         (print_md_ptr_loc): ...this.
21757         * read-md.c: Likewise.  Update references after renaming.
21758         (string_obstack): Replace RTL with MD in comment.
21759         (set_rtx_ptr_loc): Rename to...
21760         (set_md_ptr_loc): ...this.
21761         (get_rtx_ptr_loc): Rename to...
21762         (get_md_ptr_loc): ...this.
21763         * genconditions.c: Update references after renaming.
21764         * genemit.c: Likewise.
21765         * genoutput.c: Likewise.
21766         * genpreds.c: Likewise.
21767         * gensupport.c: Likewise.
21768         * read-rtl.c: Likewise.
21769
21770 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21771
21772         * Makefile.in (READ_MD_H): New variable.
21773         (BUILD_RTL): Add build/read-md.o.
21774         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
21775         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
21776         (build/genattrtab.o, build/genconditions.o build/genemit.o)
21777         (build/genextract.o, build/genflags.o, build/genoutput.o)
21778         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
21779         (build/read-md.o): New rule.
21780         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
21781         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
21782         * coretypes.h: ...here.
21783         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
21784         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
21785         * genattr.c: Include read-md.h.
21786         * genattrtab.c: Likewise.
21787         * genconditions.c: Likewise.
21788         * genemit.c: Likewise.
21789         * genextract.c: Likewise.
21790         * genflags.c: Likewise.
21791         * genoutput.c: Likewise.
21792         * genpreds.c: Likewise.
21793         * genrecog.c: Likewise.
21794         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
21795         (join_c_conditions, print_c_condition, read_rtx_filename)
21796         (read_rtx_lineno): Move to read-md.h.
21797         * read-rtl.c: Include read-md.h.
21798         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
21799         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
21800         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
21801         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
21802         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
21803         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
21804         (read_braced_string, read_string): Move to read-md.c.
21805         (read_rtx): Move some initialization to init_md_reader and call
21806         init_md_reader here.
21807         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
21808         Move to read-md.h.
21809         * gensupport.c: Include read-md.h.
21810         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
21811         * read-md.h, read-md.c: New files.
21812
21813 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
21814
21815         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21816         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21817         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
21818         * config/moxie/moxie.c (moxie_function_value): Make static.
21819         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
21820         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
21821
21822 2010-06-10  Martin Jambor  <mjambor@suse.cz>
21823
21824         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
21825         * dbgcnt.def (tree_sra): New counter.
21826         * tree-sra.c: Include dbgcnt.h.
21827         (gate_intra_sra): Check tree_sra debug counter.
21828
21829 2010-06-10  Martin Jambor  <mjambor@suse.cz>
21830
21831         PR tree-optimization/44258
21832         * tree-sra.c (build_access_subtree): Return false iff there is a
21833         partial overlap.
21834         (build_access_trees): Likewise.
21835         (analyze_all_variable_accesses): Disqualify candidates if
21836         build_access_trees returns true for them.
21837
21838 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
21839
21840         PR debug/41371
21841         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
21842         tail-recurse into canonical node.  Fast-forward over
21843         non-canonical VALUEs.
21844
21845 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
21846
21847         PR boostrap/44470
21848         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
21849         (*addsi_1_zext) <TYPE_LEA>: Likewise.
21850         (add lea splitter): Likewise.
21851         (add_zext lea splitter): Likewise.
21852
21853 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
21854
21855         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
21856
21857 2010-06-10  Jan Hubicka  <jh@suse.cz>
21858
21859         * df-problems.c (df_live_problem_data): Add live_bitmaps.
21860         (df_live_alloc): Initialize problem data and live_osbtacks.
21861         (df_live_finalize): Remove obstack, problem data; do not
21862         clear all bitmaps.
21863         (df_live_top_dump, df_live_bottom_dump): Do not dump old
21864         data when not allocated.
21865         (df_live_verify_solution_start): Do not allocate problem data.
21866         (df_live_verify_solution_end): Check if out is allocated.
21867         (struct df_md_problem_data): New structure.
21868         (df_md_alloc): Allocate problem data.
21869         (df_md_free): Free problem data; do not clear bitmaps.
21870
21871 2010-06-10  Jan Beulich  <jbeulich@novell.com>
21872
21873         PR bootstrap/37304
21874         * configure.ac: Replace $() with ${} when intending to expand
21875         variables rather than invoking commands.
21876         * configure: Re-generate.
21877
21878 2010-06-10  Jan Hubicka  <jh@suse.cz>
21879
21880         PR rtl-optimization/44460
21881         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
21882         TYPE_NEEDS_CONSTRUCTING sanity check.
21883
21884 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
21885
21886         * doc/include/fdl.texi: Move to GFDL version 1.3.
21887
21888         * doc/cpp.texi: Move to GFDL version 1.3.
21889         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
21890         * doc/gccint.texi: Move to GFDL version 1.3.
21891         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
21892         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
21893         * doc/invoke.texi: Move to GFDL version 1.3.
21894
21895 2010-06-09  Jan Hubicka  <jh@suse.cz>
21896
21897         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
21898         Break out from ...
21899         (propagate) ... here; swap the order.
21900
21901 2010-06-09  Jan Hubicka  <jh@suse.cz>
21902
21903         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
21904         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
21905         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
21906         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
21907
21908 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
21909
21910         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
21911         Do not the gather memory reference in the outer loop if the step
21912         is not a constant.
21913
21914 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
21915
21916         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
21917         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
21918         8 to 4.  Minor change of the related comments.
21919
21920 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21921
21922         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
21923         the scev analysis when the variable is not used outside the loop
21924         in a close phi node: call compute_overall_effect_of_inner_loop.
21925
21926 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21927
21928         * graphite-sese-to-poly.c (single_pred_cond): Renamed
21929         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
21930         (build_sese_conditions_before): Renamed call to single_pred_cond.
21931         (build_sese_conditions_after): Same.
21932
21933 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
21934
21935         * graphite-poly.h: Fix comments and indentation.
21936         * graphite-sese-to-poly.c: Same.
21937         (build_sese_conditions_before): Compute stmt and gbb only when needed.
21938         * tree-chrec.c: Fix comments and indentation.
21939         (tree-ssa-loop-niter.c): Same.
21940
21941 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
21942
21943         PR rtl-optimization/42461
21944         * dce.c (deletable_insn_p): Return true for const or pure calls again.
21945         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
21946
21947 2010-06-09  Jan Hubicka  <jh@suse.cz>
21948
21949         * bitmap.c (bitmap_and): Walk array forward.
21950         (bitmap_and_compl_into): Likewise.
21951         (bitmap_xor): Likewise.
21952         (bitmap_xor_into):  Likewise.
21953         (bitmap_equal_p): Likewise.
21954         (bitmap_intersect_p): Likewise.
21955         (bitmap_intersect_compl_p): Likewise.
21956         (bitmap_ior_and_into): Likewise.
21957         (bitmap_elt_copy): Likewise.
21958         (bitmap_and_compl): Likewise.
21959         (bitmap_elt_ior): Likewise.
21960
21961 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
21962
21963         * opts-common.c (prune_options): Ensure replacement argv array
21964         is correctly terminated by a NULL entry.
21965
21966 2010-06-09  Jan Hubicka  <jh@suse.cz>
21967
21968         * cgraph.h (varpool_first_static_initializer,
21969         varpool_next_static_initializer): Make checking only when
21970         checking enabled.
21971         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
21972         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
21973         gcc_assert to gcc_checking_assert.
21974         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
21975         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
21976         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
21977         op_iter_init_phiuse, op_iter_init_phidef,
21978         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
21979         gcc_checking_assert.
21980         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
21981         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
21982         partition_is_global, live_on_entry, live_on_exit,
21983         live_merge_and_clear): Likewise.
21984         * system.h (gcc_checking_assert): New macro.
21985         * gimple.h (set_bb_seq): Use gcc_checking_assert.
21986
21987 2010-06-09  Jason Merrill  <jason@redhat.com>
21988
21989         * Makefile.in (TAGS): Collect tags info from c-family.
21990
21991 2010-06-09  Jan Hubicka  <jh@suse.cz>
21992
21993         * gimple.h (gcc_gimple_checking_assert): New macro.
21994         (gimple_set_def_ops, gimple_set_use_ops,
21995         gimple_set_vuse, gimple_set_vdef,
21996         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
21997         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
21998         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
21999         gimple_asm_output_op, gimple_asm_output_op_ptr,
22000         gimple_asm_set_output_op, gimple_asm_clobber_op,
22001         gimple_asm_set_clobber_op, gimple_asm_label_op,
22002         gimple_asm_set_label_op, gimple_try_set_kind,
22003         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
22004         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
22005         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
22006         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
22007         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
22008         gimple_omp_for_set_initial, gimple_omp_for_final,
22009         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
22010         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
22011         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
22012         conditional with ENABLE_GIMPLE_CHECKING.
22013         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
22014
22015 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
22016
22017         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
22018         (get_computation_cost_at): Use it.
22019         (determine_use_iv_cost_condition): Likewise.
22020         (determine_iv_cost): Likewise.
22021
22022 2010-06-09  Richard Guenther  <rguenther@suse.de>
22023
22024         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
22025         replace constants.
22026
22027 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
22028
22029         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
22030
22031 2010-06-09  Martin Jambor  <mjambor@suse.cz>
22032
22033         PR tree-optimization/44423
22034         * tree-sra.c (dump_access): Dump also grp_assignment_read.
22035         (analyze_access_subtree): Pass negative allow_replacements to children
22036         if the current type is scalar.
22037
22038 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22039
22040         PR testsuite/42843
22041         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
22042         * doc/plugins.texi (Plugin license check): Update information
22043         on type of plugin_is_GPL_compatible.
22044         * Makefile.in (PLUGINCC): Define as $(COMPILER).
22045         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
22046
22047 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22048
22049         * config/arm/arm.c (thumb2_reorg): New function.
22050         (arm_reorg): Call it.
22051         * config/arm/thumb2.md (define_peephole2 for flag clobbering
22052         arithmetic operations): Delete.
22053
22054 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
22055
22056         PR target/44067
22057         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
22058         e500v2 target.
22059
22060 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22061
22062         PR plugins/44459
22063         * gcc-plugin.h: Encapsulate all declarations in extern "C".
22064
22065 2010-06-08  Jan Hubicka  <jh@suse.cz>
22066
22067         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
22068         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
22069
22070 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
22071
22072         PR tree-optimization/39874
22073         PR middle-end/28685
22074         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
22075         Declare.
22076         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
22077         same_bool_result_p): New.
22078         (and_var_with_comparison, and_var_with_comparison_1,
22079         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
22080         (or_var_with_comparison, or_var_with_comparison_1,
22081         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
22082         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
22083         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
22084         of combine_comparisons.
22085         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
22086
22087 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
22088
22089         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22090         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22091         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
22092         pdp11_function_value_regno_p): New functions.
22093         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22094         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22095
22096 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
22097
22098         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
22099         Thumb-2 in the MINUS case.
22100
22101 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22102
22103         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
22104
22105         * doc/gty.texi (GTY Options): Document typed GC allocation and
22106         variable_size GTY option.
22107
22108         * ggc-internal.h: New.
22109
22110         * ggc.h: Update copyright year.
22111         (digit_string): Move to stringpool.c.
22112         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
22113         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
22114         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
22115         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
22116         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
22117         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
22118         (ggc_force_collect, ggc_get_size, ggc_statistics)
22119         (ggc_print_common_statistics): Move to ggc-internal.h.
22120         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
22121         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
22122         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
22123         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
22124         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
22125         (ggc_alloc_zone_pass_stat): Remove.
22126         (ggc_internal_alloc_stat, ggc_internal_alloc)
22127         (ggc_internal_cleared_alloc_stat): New.
22128         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
22129         (ggc_internal_vec_alloc_stat)
22130         (ggc_internal_cleared_vec_alloc_stat)
22131         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
22132         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
22133         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
22134         (ggc_cleared_alloc_ptr_array_two_args): New.
22135         (htab_create_ggc, splay_tree_new_ggc): Redefine.
22136         (ggc_splay_alloc): Change the type of the first argument to
22137         enum gt_types_enum.
22138         (ggc_alloc_string): Make macro.
22139         (ggc_alloc_string_stat): New.
22140         (ggc_strdup): Redefine.
22141         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
22142         (ggc_alloc_rtvec_sized): New.
22143         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
22144         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
22145         (ggc_internal_cleared_alloc_zone_stat)
22146         (ggc_internal_zone_alloc_stat)
22147         (ggc_internal_zone_cleared_alloc_stat)
22148         (ggc_internal_zone_vec_alloc_stat)
22149         (ggc_alloc_zone_rtx_def_stat)
22150         (ggc_alloc_zone_tree_node_stat)
22151         (ggc_alloc_zone_cleared_tree_node_stat)
22152         (ggc_alloc_cleared_gimple_statement_d_stat): New.
22153
22154         * ggc-common.c: Include ggc-internal.h.
22155         (ggc_internal_cleared_alloc_stat): Rename from
22156         ggc_alloc_cleared_stat.
22157         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
22158         (ggc_calloc): Remove.
22159         (ggc_cleared_alloc_htab_ignore_args): New.
22160         (ggc_cleared_alloc_ptr_array_two_args): New.
22161         (ggc_splay_alloc): Add obj_type parameter.
22162         (init_ggc_heuristics): Formatting fixes.
22163
22164         * ggc-none.c: Update copyright year.
22165         (ggc_alloc_stat): Rename to ggc_alloc_stat.
22166         (ggc_alloc_cleared_stat): Rename to
22167         ggc_internal_cleared_alloc_stat.
22168         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22169
22170         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
22171         Remove references to ggc_alloc in comments.
22172         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
22173         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
22174         (new_ggc_zone, destroy_ggc_zone): Remove.
22175         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22176
22177         * ggc-zone.c: Include ggc-internal.h.  Remove references to
22178         ggc_alloc in comments.
22179         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
22180         (ggc_internal_alloc_zone_pass_stat): New.
22181         (ggc_internal_cleared_alloc_zone_stat): New.
22182         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
22183         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
22184         (new_ggc_zone, destroy_ggc_zone): Remove.
22185
22186         * stringpool.c: Update copyright year.  Include ggc-internal.h
22187         (digit_vector): Make static.
22188         (digit_string): Moved from ggc.h.
22189         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
22190         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
22191
22192         * Makefile.in (GGC_INTERNAL_H): New.
22193         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
22194         $(GGC_INTERNAL_H) to dependencies.
22195
22196         * gentype.c: Update copyright year.
22197         (walk_type): Accept variable_size GTY option.
22198         (USED_BY_TYPED_GC_P): New macro.
22199         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
22200         whitespace at the end of strings.
22201         (get_type_specifier, variable_size_p): New functions.
22202         (alloc_quantity, alloc_zone): New enums.
22203         (write_typed_alloc_def): New function.
22204         (write_typed_struct_alloc_def): Likewise.
22205         (write_typed_typed_typedef_alloc_def): Likewise.
22206         (write_typed_alloc_defns): Likewise.
22207         (output_typename, write_splay_tree_allocator_def): Likewise.
22208         (write_splay_tree_allocators): Likewise.
22209         (main): Call write_typed_alloc_defns and
22210         write_splay_tree_allocators.
22211
22212         * lto-streamer.h (lto_file_decl_data_ptr): New.
22213
22214         * passes.c (order): Define using cgraph_node_ptr.
22215
22216         * strinpool.c (struct string_pool_data): Declare nested_ptr using
22217         ht_identifier_ptr.
22218
22219         * gimple.h (union gimple_statement_d): Likewise.
22220
22221         * rtl.h (struct rtx_def): Likewise.
22222         (struct rtvec_def): Likewise.
22223
22224         * tree.h (union tree_node): Likewise.
22225
22226         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
22227
22228         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
22229
22230         * tree-scalar-evolution.c (scev_initialize): Likewise.
22231
22232         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
22233
22234         * dwarf2asm.c (dw2_force_const_mem): Likewise.
22235
22236         * omp-low.c (lower_omp_critical): Likewise.
22237
22238         * bitmap.h (struct bitmap_head_def): Update comment to not
22239         reference ggc_alloc.
22240
22241         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
22242
22243         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
22244
22245         * ipa-prop.c (duplicate_ggc_array): Rename to
22246         duplicate_ipa_jump_func_array.  Use typed GC allocation.
22247         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
22248
22249         * gimple.c (gimple_alloc_stat): Use
22250         ggc_alloc_cleared_gimple_statement_d_stat.
22251
22252         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
22253
22254         * tree.c (make_node_stat): Use
22255         ggc_alloc_zone_cleared_tree_node_stat.
22256         (make_tree_vec_stat): Likewise.
22257         (build_vl_exp_stat): Likewise.
22258         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
22259         (make_tree_binfo_stat): Likewise.
22260         (tree_cons_stat): Likewise.
22261
22262         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
22263         (shallow_copy_rtx_stat): Likewise.
22264         (make_node_stat): Likewise.
22265
22266         * lto-symtab.c: Fix comment.
22267
22268         * tree-cfg.c (create_bb): Update comment to not reference
22269         ggc_alloc_cleared.
22270         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
22271
22272         * varpool.c (varpool_node): Use typed GC allocation.
22273         (varpool_extra_name_alias): Likewise.
22274
22275         * varasm.c (emutls_decl): Likewise.
22276         (get_unnamed_section): Likewise.
22277         (get_noswitch_section): Likewise.
22278         (get_section): Likewise.
22279         (get_block_for_section): Likewise.
22280         (build_constant_desc): Likewise.
22281         (create_constant_pool): Likewise.
22282         (force_const_mem): Likewise.
22283
22284         * tree.c (build_vl_exp_stat): Likewise.
22285         (build_real): Likewise.
22286         (build_string): Likewise.
22287         (decl_debug_expr_insert): Likewise.
22288         (decl_value_expr_insert): Likewise.
22289         (type_hash_add): Likewise.
22290         (build_omp_clause): Likewise.
22291
22292         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
22293
22294         * tree-ssa.c (init_tree_ssa): Likewise.
22295
22296         * tree-ssa-structalias.c (heapvar_insert): Likewise.
22297
22298         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
22299
22300         * tree-ssa-loop-niter.c (record_estimate): Likewise.
22301
22302         * tree-ssa-alias.c (get_ptr_info): Likewise.
22303
22304         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
22305
22306         * tree-phinodes.c (allocate_phi_node): Likewise.
22307
22308         * tree-iterator.c (tsi_link_before): Likewise.
22309         (tsi_link_after): Likewise.
22310
22311         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
22312
22313         * tree-dfa.c (create_var_ann): Likewise.
22314
22315         * tree-cfg.c (create_bb): Likewise.
22316
22317         * toplev.c (alloc_for_identifier_to_locale): Likewise.
22318         (general_init): Likewise.
22319
22320         * stringpool.c (stringpool_ggc_alloc): Likewise.
22321         (gt_pch_save_stringpool): Likewise.
22322
22323         * sese.c (if_region_set_false_region): Likewise.
22324
22325         * passes.c (do_per_function_toporder): Likewise.
22326
22327         * optabs.c (set_optab_libfunc): Likewise.
22328         (set_conv_libfunc): Likewise.
22329
22330         * lto-symtab.c (lto_symtab_register_decl): Likewise.
22331
22332         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
22333         (input_eh_region): Likewise.
22334         (input_eh_lp): Likewise.
22335         (make_new_block): Likewise.
22336         (unpack_ts_real_cst_value_fields): Likewise.
22337
22338         * lto-section-in.c (lto_new_in_decl_state): Likewise.
22339
22340         * lto-cgraph.c (input_node_opt_summary): Likewise.
22341
22342         * loop-init.c (loop_optimizer_init): Likewise.
22343
22344         * lambda.h (lambda_vector_new): Likewise.
22345
22346         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
22347
22348         * ira.c (update_equiv_regs): Likewise.
22349
22350         * ipa.c (cgraph_node_set_new): Likewise.
22351         (cgraph_node_set_add): Likewise.
22352         (varpool_node_set_new): Likewise.
22353         (varpool_node_set_add): Likewise.
22354
22355         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
22356         (duplicate_ipa_jump_func_array): Likewise.
22357         (ipa_read_node_info): Likewise.
22358
22359         * ipa-cp.c (ipcp_create_replace_map): Likewise.
22360
22361         * integrate.c (get_hard_reg_initial_val): Likewise.
22362
22363         * gimple.c (gimple_alloc_stat): Likewise.
22364         (gimple_build_omp_for): Likewise.
22365         (gimple_seq_alloc): Likewise.
22366         (gimple_copy): Likewise.
22367
22368         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
22369         (gsi_insert_after_without_update): Likewise.
22370
22371         * function.c (add_frame_space): Likewise.
22372         (insert_temp_slot_address): Likewise.
22373         (assign_stack_temp_for_type): Likewise.
22374         (allocate_struct_function): Likewise.
22375         (types_used_by_var_decl_insert): Likewise.
22376
22377         * except.c (init_eh_for_function): Likewise.
22378         (gen_eh_region): Likewise.
22379         (gen_eh_region_catch): Likewise.
22380         (gen_eh_landing_pad): Likewise.
22381         (add_call_site): Likewise.
22382
22383         * emit-rtl.c (get_mem_attrs): Likewise.
22384         (get_reg_attrs): Likewise.
22385         (start_sequence): Likewise.
22386         (init_emit): Likewise.
22387
22388         * dwarf2out.c (new_cfi): Likewise.
22389         (queue_reg_save): Likewise.
22390         (dwarf2out_frame_init): Likewise.
22391         (new_loc_descr): Likewise.
22392         (find_AT_string): Likewise.
22393         (new_die): Likewise.
22394         (add_var_loc_to_decl): Likewise.
22395         (clone_die): Likewise.
22396         (clone_as_declaration): Likewise.
22397         (break_out_comdat_types): Likewise.
22398         (new_loc_list): Likewise.
22399         (loc_descriptor): Likewise.
22400         (add_loc_descr_to_each): Likewise.
22401         (add_const_value_attribute): Likewise.
22402         (tree_add_const_value_attribute): Likewise.
22403         (add_comp_dir_attribute): Likewise.
22404         (add_name_and_src_coords_attributes): Likewise.
22405         (lookup_filename): Likewise.
22406         (store_vcall_insn): Likewise.
22407         (dwarf2out_init): Likewise.
22408
22409         * dbxout.c (dbxout_init): Likewise.
22410
22411         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
22412
22413         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
22414
22415         * config/score/score7.c (score7_output_external): Likewise.
22416
22417         * config/score/score3.c (score3_output_external): Likewise.
22418
22419         * config/s390/s390.c (s390_init_machine_status): Likewise.
22420
22421         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
22422         (rs6000_init_machine_status): Likewise.
22423         (output_toc): Likewise.
22424
22425         * config/pa/pa.c (pa_init_machine_status): Likewise.
22426         (get_deferred_plabel): Likewise.
22427
22428         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
22429
22430         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
22431
22432         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
22433
22434         * config/mep/mep.c (mep_init_machine_status): Likewise.
22435         (mep_note_pragma_flag): Likewise.
22436
22437         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
22438
22439         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
22440
22441         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
22442
22443         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
22444         (i386_pe_maybe_record_exported_symbol): Likewise.
22445
22446         * config/i386/i386.c (get_dllimport_decl): Likewise.
22447         (ix86_init_machine_status): Likewise.
22448         (assign_386_stack_local): Likewise.
22449
22450         * config/frv/frv.c (frv_init_machine_status): Likewise.
22451
22452         * config/darwin.c (machopic_indirection_name): Likewise.
22453
22454         * config/cris/cris.c (cris_init_machine_status): Likewise.
22455
22456         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
22457
22458         * config/avr/avr.c (avr_init_machine_status): Likewise.
22459
22460         * config/arm/arm.c (arm_init_machine_status): Likewise.
22461
22462         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
22463         (alpha_need_linkage): Likewise.
22464         (alpha_use_linkage): Likewise.
22465
22466         * cgraph.c (cgraph_allocate_node): Likewise.
22467         (cgraph_create_edge_1): Likewise.
22468         (cgraph_create_indirect_edge): Likewise.
22469         (cgraph_add_asm_node): Likewise.
22470
22471         * cfgrtl.c (init_rtl_bb_info): Likewise.
22472
22473         * cfgloop.c (alloc_loop): Likewise.
22474         (rescan_loop_exit): Likewise.
22475
22476         * cfg.c (init_flow): Likewise.
22477         (alloc_block): Likewise.
22478         (unchecked_make_edge): Likewise.
22479
22480         * c-parser.c (c_parse_init): Likewise.
22481         (c_parse_file): Likewise.
22482
22483         * c-decl.c (bind): Likewise.
22484         (record_inline_static): Likewise.
22485         (push_scope): Likewise.
22486         (make_label): Likewise.
22487         (lookup_label_for_goto): Likewise.
22488         (finish_struct): Likewise.
22489         (finish_enum): Likewise.
22490         (c_push_function_context): Likewise.
22491
22492         * bitmap.c (bitmap_element_allocate): Likewise.
22493         (bitmap_gc_alloc_stat): Likewise.
22494
22495         * alias.c (record_alias_subset): Likewise.
22496         (init_alias_analysis): Likewise.
22497
22498 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
22499
22500         * fold-const.c (fold_comparison): Remove redundant parenthesis.
22501         * tree-inline.c (expand_call_inline): Pass translated return value of
22502         cgraph_inline_failed_string to diagnostic function.
22503
22504 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
22505             Shujing Zhao  <pearly.zhao@oracle.com>
22506
22507         PR c/37724
22508         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
22509         implicit bad conversions is initialization.
22510         (error_init): Use gmsgid instead of msgid for argument name and change
22511         the call for error.
22512         (pedwarn_init): Use gmsgid instead of msgid for argument name and
22513         change the call for pedwarn.
22514         (warning_init): Use gmsgid instead of msgid for argument name and
22515         change the call for warning.
22516
22517 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
22518
22519         * config/mips/mips-protos.h (mips_print_operand): Delete.
22520         (mips_print_operand_address): Delete.
22521         * config/mips/mips.h (mips_print_operand_punct): Delete.
22522         (PRINT_OPERAND): Delete.
22523         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22524         (PRINT_OPERAND_ADDRESS): Delete.
22525         * config/mips/mips.c (mips_print_operand_punct): Make static.
22526         (mips_print_operand_address): Make static.
22527         (mips_print_operand): Make static.  Call
22528         mips_print_operand_punct_valid_p.
22529         (mips_print_operand_punct_valid_p): New function.
22530         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22531         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22532
22533 2010-06-07  Jan Hubicka  <jh@suse.cz>
22534
22535         PR middle-end/44454
22536         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
22537         are allocated.
22538
22539 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
22540
22541         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
22542         name of RECORD.
22543
22544 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22545
22546         * doc/sourcebuild.texi (Effective-Target Keywords, Other
22547         attributes): Document gas.
22548
22549 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
22550
22551         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
22552         <TYPE_LEA>: Split instruction.
22553         <default>: Remove alternative 2 handling.
22554         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
22555         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
22556         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
22557
22558         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
22559         (ashift_zext lea splitter): Use DImode for multiplication.
22560
22561         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
22562         to generate addition.
22563
22564 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
22565
22566         * common.opt (fira-verbose): Use Var.
22567         (fpcc-struct-return): Use Init instead of VarExists.
22568         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
22569         toplev.c.
22570         * flags.h (flag_signed_char, flag_short_enums,
22571         flag_pcc_struct_return, flag_ira_verbose,
22572         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
22573         * toplev.c (flag_detailed_statistics, flag_signed_char,
22574         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
22575         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
22576         * toplev.h (flag_crossjumping, flag_if_conversion,
22577         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
22578         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
22579         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
22580         flag_cprop_registers, time_report, flag_ira_loop_pressure,
22581         flag_ira_coalesce, flag_ira_move_spills,
22582         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
22583
22584 2010-06-07  Jan Hubicka  <jh@suse.cz>
22585
22586         * df-core.c (df_analyze_problem): Do verification after allocation.
22587
22588         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
22589         (df_lr_alloc): Initialize problem data; move bitmaps to
22590         lr_bitmaps obstack.
22591         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
22592         (df_lr_verify_solution_start): Do not initialize problem data;
22593         allocate bitmaps in lr_bitmaps.
22594         (df_lr_verify_solution_end): Do not free problem data.
22595
22596 2010-06-07  Jan Hubicka  <jh@suse.cz>
22597
22598         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
22599         if caller is noreturn.
22600         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
22601         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
22602         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
22603         * ipa-pure-const.c (check_decl): Add IPA parameter.
22604         (state_from_flags): New function.
22605         (better_state, worse_state): New functions.
22606         (check_call): When in IPA mode, do not care about callees.
22607         (check_load, check_store): Update.
22608         (check_ipa_load, check_ipa_store): New.
22609         (check_stmt): When in IPA mode, use IPA checkers.
22610         (analyze_function): Use state_from_flags.
22611         (propagate): Check indirect edges and references.
22612
22613 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
22614
22615         PR rtl-optimization/44404
22616         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
22617         of count_occurrences to see if it's safe to modify mem_insn.
22618
22619 2010-06-07  Richard Guenther  <rguenther@suse.de>
22620
22621         * gimplify.c (gimplify_cleanup_point_expr): For empty body
22622         and EH-only cleanup drop the cleanup instead of inserting it
22623         unconditionally.
22624
22625 2010-06-07  Ira Rosen  <irar@il.ibm.com>
22626
22627         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
22628         documentation.
22629         * targhooks.c (default_builtin_vectorization_cost): New function.
22630         * targhooks.h (default_builtin_vectorization_cost): Declare.
22631         * target.h (enum vect_cost_for_stmt): Define.
22632         (builtin_vectorization_cost): Change argument and comment.
22633         * tree-vectorizer.h: Remove cost model macros.
22634         * tree-vect-loop.c: Include target.h.
22635         (vect_get_cost): New function.
22636         (vect_estimate_min_profitable_iters): Replace cost model macros with
22637         calls to vect_get_cost.
22638         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
22639         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
22640         default implementation.
22641         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
22642         calls to target hook builtin_vectorization_cost.
22643         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
22644         Likewise.
22645         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
22646         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
22647         implementation to return costs.
22648         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
22649         * config/spu/spu.h: Remove vectorizer cost model macros.
22650         * config/i386/i386.h: Likewise.
22651         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
22652         a call to target hook builtin_vectorization_cost.
22653
22654 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
22655
22656         PR target/44319
22657         * config/i386/i386.c (override_options): Turn zee pass on for level 2
22658         and above and defer till target is known.
22659         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
22660         turn off otherwise.
22661
22662 2010-05-25  Jan Hubicka  <jh@suse.cz>
22663
22664         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
22665         (df_compact_blocks): Likewise.
22666         * df.h (struct df): Turn hardware_regs_used,
22667         regular_block_artificial_uses, eh_block_artificial_uses,
22668         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
22669         bitmap_head.
22670         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
22671         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
22672         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
22673         df_scan_blocks, df_insn_delete, df_insn_rescan,
22674         df_insn_rescan_debug_internal, df_insn_rescan_all,
22675         df_process_deferred_rescans, df_process_deferred_rescans,
22676         df_notes_rescan, df_get_call_refs, df_get_call_refs,
22677         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
22678         df_record_entry_block_defs, df_record_exit_block_uses,
22679         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
22680         df_scan_verify): Update.
22681
22682 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
22683
22684         PR c++/44188
22685         * c-common.c (is_typedef_decl): Move this definition ...
22686         * tree.c (is_typedef_decl): ... here.
22687         (typdef_variant_p): Move definition here from cp/tree.c.
22688         * c-common.h (is_typedef_decl): Move this declaration ...
22689         * tree.h (is_typedef_decl): ... here.
22690         (typedef_variant_p): Move declaration here from cp/cp-tree.h
22691         * dwarf2out.c (is_naming_typedef_decl): New function.
22692         (gen_tagged_type_die): Split out of ...
22693         (gen_type_die_with_usage): ... this function. When an anonymous
22694         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
22695         is emitted for the typedef.
22696         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
22697         anonymous tagged types.
22698
22699 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22700
22701         PR c/20000
22702         * c-decl.c (grokdeclarator): Delete warning.
22703
22704 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22705
22706         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
22707         newly built CALL_EXPR.
22708         * tree-profile.c (tree_profiling): Don't profile functions produced
22709         for built-in stuff.
22710
22711 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
22712
22713         PR bootstrap/44427
22714         PR bootstrap/44428
22715         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
22716         endianness-independent.
22717
22718 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
22719
22720         * c-common.c: Move to c-family/.
22721         * c-common.def: Likewise.
22722         * c-common.h: Likewise.
22723         * c-cppbuiltin.c: Likewise.
22724         * c-dump.c: Likewise.
22725         * c-format.c: Likewise.
22726         * c-format.h : Likewise.
22727         * c-gimplify.c: Likewise.
22728         * c-lex.c: Likewise.
22729         * c-omp.c: Likewise.
22730         * c.opt: Likewise.
22731         * c-opts.c: Likewise.
22732         * c-pch.c: Likewise.
22733         * c-ppoutput.c: Likewise.
22734         * c-pragma.c: Likewise.
22735         * c-pragma.h: Likewise.
22736         * c-pretty-print.c: Likewise.
22737         * c-pretty-print.h: Likewise.
22738         * c-semantics.c: Likewise.
22739         * stub-objc.c: Likewise.
22740
22741         * gengtype.c (get_file_langdir): Special-case files in c-family/.
22742         (get_output_file_with_visibility): Fix name for c-common.h.
22743         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
22744
22745         * c-tree.h: Update include path for moved files.
22746         * c-lang.c: Likewise.
22747         * c-lang.h: Likewise.
22748         * c-parser.c: Likewise.
22749         * c-convert.c: Likewise.
22750         * c-decl.c: Likewise.
22751         * c-objc-common.c: Likewise.
22752         * configure.ac: Make sure c-family/ exists in the build directory.
22753         * configure: Regenerate.
22754         * Makefile.in: Update paths for moved files.  Regroup files per
22755         location and update dependencies.  Move generated_files down after
22756         ALL_GTFILES_H.
22757
22758         * config/spu/spu-c.c: Update paths for moved files.
22759         * config/mep/mep-pragma.c: Likewise.
22760         * config/darwin-c.c: Likewise.
22761         * config/i386/msformat-c.c: Likewise.
22762         * config/i386/i386-c.c: Likewise.
22763         * config/avr/avr-c.c: Likewise.
22764         * config/sol2-c.c: Likewise.
22765         * config/ia64/ia64-c.c: Likewise.
22766         * config/rs6000/rs6000-c.c: Likewise.
22767         * config/arm/arm.c: Likewise.
22768         * config/arm/arm-c.c: Likewise.
22769         * config/h8300/h8300.c: Likewise.
22770         * config/v850/v850-c.c: Likewise.
22771
22772         * config/t-darwin: Fix dependencies for moved files.
22773         * config/t-sol2: Fix dependencies for moved files.
22774         * config/mep/t-mep: Fix dependencies for moved files.
22775         * config/ia64/t-ia64: Fix dependencies for moved files.
22776         * config/rs6000/t-rs6000: Fix dependencies for moved files.
22777         * config/v850/t-v850: Fix dependencies for moved files.
22778         * config/v850/t-v850e: Fix dependencies for moved files.
22779
22780         * config/m32c/m32c-pragma.c
22781
22782         * po/exgettext: Look in c-family/ also.
22783
22784 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
22785
22786         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
22787         (mark_control_dependent_edges_necessary): Call it instead of marking
22788         the last statement manually.
22789         (propagate_necessity): Likewise.
22790
22791 2010-06-05  Jan Hubicka  <jh@suse.cz>
22792
22793         * basic-block.h (compute_dominance_frontiers): Updated.
22794         (compute_idf): Likewise.
22795
22796         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
22797         for dominance frontiers.
22798         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
22799         (insert_updated_phi_nodes_for): Likewise.
22800         (update_ssa): Likewise.
22801         * cfganal.c (compute_dominance_frontiers_1): Likewise.
22802         (compute_dominance_frontiers): Likewise.
22803         (compute_idf): Likewise.
22804         * df-problems.c (df_md_local_compute): Likewise.
22805
22806 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
22807
22808         * target.h (struct gcc_target): Add memory_move_cost field.
22809         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
22810         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
22811         * targhooks.c (default_memory_move_cost): New function.
22812         * targhooks.h (default_memory_move_cost): Declare function.
22813         * reload.h (memory_move_cost): Declare.
22814         (memory_move_secondary_cost): Change type of 'in' argument to bool.
22815         * reginfo.c (memory_move_cost): New function.
22816         (memory_move_secondary_cost): Change type of 'in' argument to bool.
22817         * ira.h (ira_memory_move_cost): Update comment.
22818         * ira.c (ira_memory_move_cost): Update comment.
22819         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
22820         with memory_move_cost.
22821         * postreload.c (reload_cse_simplify_set): (Ditto.).
22822         * reload1.c (choose_reload_regs): (Ditto.).
22823         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
22824         (MEMORY_MOVE_COST):  Revise documentation.
22825
22826         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
22827         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
22828         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
22829         type of 'in' argument to bool.
22830         (TARGET_MEMORY_MOVE_COST): Define.
22831
22832 2010-06-05  Jan Hubicka  <jh@suse.cz>
22833
22834         * ipa-pure-const.c (propagate): Fix typo in handling of functions
22835         that cannot return.  Be more careful when merging the results with
22836         previously known ones.
22837
22838 2010-06-05  Matthias Klose  <doko@ubuntu.com>
22839
22840         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
22841         function to add the -iplugindir option.
22842         (find_plugindir_spec_function): Add new declaration and function.
22843         (static_spec_func): Use it for "find-plugindir".
22844
22845 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
22846
22847         PR c++/44361
22848         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
22849         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
22850         statement expression.
22851
22852 2010-06-05  Jan Hubicka  <jh@suse.cz>
22853
22854         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
22855         (df_rd_problem_data): Convert sparse_invalidated_by_call,
22856         dense_invalidated_by_call to bitmap head.
22857         (df_rd_alloc, df_rd_bb_local_compute_process_def,
22858         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
22859         df_rd_start_dump, df_lr_verify_transfer_functions,
22860         df_live_verify_transfer_functions, df_chain_create_bb,
22861         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
22862         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
22863         df_simulate_one_insn_forwards, df_md_alloc,
22864         df_md_bb_local_compute_process_def,
22865         df_md_bb_local_compute_process_def, df_md_local_compute,
22866         df_md_transfer_function df_md_free): Update.
22867
22868 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
22869
22870         PR c/44322
22871         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
22872         target type for ADDR_EXPR; require no changes to qualifiers except
22873         for function types.
22874         * c-tree.h (c_build_type_variant): Remove.
22875
22876 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
22877
22878         * genautomata.c (get_excl_set): Do work per element, not per char.
22879         (check_presence_pattern_sets): Similar.
22880         (check_absence_pattern_sets): Similar.
22881
22882 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
22883
22884         * genautomata.c (curr_state_pass_num): Delete.
22885         (min_issue_delay_pass_states): Delete.
22886         (min_issue_delay): Delete.
22887         (initiate_min_issue_delay_pass_states): Delete.
22888         (output_min_issue_delay_table): Compute min_issue_delay_vect
22889         using a breadth-first search variant.
22890         (output_tables): Don't call initiate_min_issue_delay_pass_states.
22891
22892 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
22893
22894         PR boostrap/44421
22895         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
22896         (df_byte_lr_bb_local_compute): Likewise.
22897
22898 2010-06-03  Jason Merrill  <jason@redhat.com>
22899
22900         Implement noexcept operator (5.3.7)
22901         * c-common.c (c_common_reswords): Add noexcept.
22902         * c-common.h (enum rid): Add RID_NOEXCEPT.
22903
22904 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
22905
22906         * config/darwin-driver.c (darwin_default_min_version): Use
22907         GCC-specific formats in diagnostics.
22908         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
22909         diagnostics.
22910         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
22911         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
22912         eval_spec_function, handle_braces, process_brace_body, main,
22913         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
22914         getenv_spec_function, compare_version_strings,
22915         version_compare_spec_function): Use GCC-specific formats in
22916         diagnostics.
22917
22918 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
22919
22920         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
22921         that operand 0 and operand 1 are equal.
22922         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
22923         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
22924         and operand 1 are equal.
22925         <default>: Ditto.  Remove ??? comment.
22926         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
22927         and operand 1 are equal.
22928         <default>: Ditto.  Remove ??? comment.
22929         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
22930         are equal.
22931         (*add<mode>_4) <default>: Ditto.
22932         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
22933
22934 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
22935
22936         * config/i386/i386-protos.h (ix86_print_operand): Declare.
22937         * config/i386/i386.c (ix86_print_operand): Make non-static.
22938         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
22939         * output.h (output_operand): Declare.
22940         * final.c (output_operand): Make non-static.
22941
22942 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
22943
22944         PR rtl-optimization/44013
22945         * sched-deps.c (add_dependence_list_and_free): Don't free lists
22946         when processing debug insns.
22947
22948         PR debug/41371
22949         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
22950         recursing.  Check that recursion is bounded.  Rename inner var
22951         to avoid hiding incoming argument.
22952
22953 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
22954
22955         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
22956         operands[2] == 255.
22957         (*addqi_3): Ditto.
22958         (*addqi_4): Ditto.
22959         (*addqi_5): Ditto.
22960         (*addqi_ext_1_rex64): Ditto.
22961         (*addqi_ext_1): Ditto.
22962
22963         (*addqi_4): Check for incdec_operand in QImode.
22964
22965         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
22966         using SWI mode iterator.
22967         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
22968         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
22969         mode iterator.
22970         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
22971         using SWI mode iterator.
22972
22973 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22974
22975         PR c/25880
22976         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
22977         * c-format.c (gcc_diag_flag_specs): Add hash.
22978         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
22979         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
22980         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
22981         pp_c_cv_qualifiers. Handle qualifiers spelling here.
22982         (pp_c_type_qualifier_list): Call the function above.
22983         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
22984         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
22985         (WARN_FOR_QUALIFIERS): New macro.
22986         (convert_for_assignment): Use it.
22987
22988 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
22989
22990         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
22991
22992 2010-06-04  Jan Hubicka  <jh@suse.cz>
22993
22994         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
22995         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
22996         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
22997         DF_BYTE_LR_OUT): Update for embedded bitmaps.
22998         * fwprop.c (single_def_use_enter_block): Likewise.
22999         * ddg.c (create_ddg_dep_from_intra_loop_link,
23000         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
23001         * loop-iv.c (latch_dominating_def): Likewise.
23002         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
23003         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
23004         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
23005         df_rd_transfer_function, df_rd_top_dump,
23006         df_rd_bottom_dump): Update.
23007         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
23008         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
23009         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
23010         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
23011         df_lr_verify_solution_start, df_lr_verify_solution_end,
23012         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
23013         df_live_free_bb_info, df_live_alloc, df_live_reset,
23014         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
23015         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
23016         df_live_verify_solution_start, df_live_verify_solution_end,
23017         df_live_verify_transfer_functions, df_chain_create_bb,
23018         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
23019         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23020         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23021         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
23022         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
23023         df_byte_lr_transfer_function, df_byte_lr_top_dump,
23024         df_byte_lr_bottom_dump, df_create_unused_note,
23025         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
23026         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
23027         df_md_transfer_function, df_md_init, df_md_confluence_0,
23028         df_md_confluence_n,
23029         df_md_top_dump, df_md_bottom_dump): Update.
23030         (struct df_lr_problem_data): Embedd bitmap headers.
23031
23032 2010-06-04  Jan Hubicka  <jh@suse.cz>
23033
23034         * dce.c (dce_process_block): Do not re-scan already marked
23035         instructions.
23036
23037 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
23038
23039         PR rtl-optimization/39871
23040         PR rtl-optimization/40615
23041         PR rtl-optimization/42500
23042         PR rtl-optimization/42502
23043         * ira.c (init_reg_equiv_memory_loc: New function.
23044         (ira): Call it twice.
23045         * reload.h (calculate_elim_costs_all_insns): Declare.
23046         * ira-costs.c: Include "reload.h".
23047         (regno_equiv_gains): New static variable.
23048         (init_costs): Allocate it.
23049         (finish_costs): Free it.
23050         (ira_costs): Call calculate_elim_costs_all_insns.
23051         (find_costs_and_classes): Take estimated elimination costs
23052         into account.
23053         (ira_adjust_equiv_reg_cost): New function.
23054         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
23055         * reload1.c (init_eliminable_invariants, free_reg_equiv,
23056         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
23057         (elim_bb): New static variable.
23058         (reload): Move code out of here into init_eliminable_invariants and
23059         free_reg_equiv.  Call them.
23060         (calculate_elim_costs_all_insns): New function.
23061         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
23062         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
23063         but call note_reg_elim_costly if we turned a valid memory address
23064         into an invalid one.
23065         * Makefile.in (ira-costs.o): Depend on reload.h.
23066
23067 2010-06-04  Julian Brown  <julian@codesourcery.com>
23068
23069         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
23070         for pool ranges.
23071
23072 2010-06-04  Richard Guenther  <rguenther@suse.de>
23073
23074         PR lto/41584
23075         * cgraph.h (struct varpool_node): Add lto_file_data field.
23076         * lto-cgraph.c (input_varpool_node): Initialize it.
23077
23078 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23079
23080         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
23081         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
23082         predicate in "type" attribute calculation.
23083         (*addsi_1_zext): Ditto.
23084         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
23085         (*addsi_2_zext): Ditto.
23086         (*add<mode>_3): Ditto.
23087         (*addsi_3_zext): Ditto.
23088         (*add<mode>_5): Ditto.
23089
23090 2010-06-03  Jan Hubicka  <jh@suse.cz>
23091
23092         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
23093         of bitmap_bit_p.
23094         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23095
23096 2010-06-03  Jan Hubicka  <jh@suse.cz>
23097
23098         * df-problems.c (df_create_unused_note, df_note_bb_compute):
23099         micro-optimize the checks when to add new note.
23100
23101 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
23102
23103         * final.c (output_asm_insn): Call
23104         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
23105         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
23106         (output_address): Call targetm.asm_out.print_operand_address.
23107         Update comments.
23108         * target.h (struct gcc_target): Add print_operand,
23109         print_operand_address, and print_operand_punct_valid_p fields.
23110         * targhooks.h (default_print_operand): Declare.
23111         (default_print_operand_address): Declare.
23112         (default_print_operand_punct_valid_p): Declare.
23113         * targhooks.c (default_print_operand): Define.
23114         (default_print_operand_address): Define.
23115         (default_print_operand_punct_valid_p): Define.
23116         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
23117         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
23118         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
23119         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
23120         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
23121         * vmsdbgout.c (addr_const_to_string): Update comment.
23122         * config/i386/i386.c (print_operand): Rename to...
23123         (ix86_print_operand): ...this.  Make static.
23124         (print_operand_address): Rename to...
23125         (ix86_print_operand_address): ...this.  Make static.  Call
23126         ix86_print_operand instead of PRINT_OPERAND.
23127         (ix86_print_operand_punct_valid_p): New function.
23128         (TARGET_PRINT_OPERAND): Define.
23129         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23130         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23131         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
23132         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23133         (PRINT_OPERAND): Delete.
23134         (PRINT_OPERAND_ADDRESS): Delete.
23135         * config/i386/i386-protos.h (print_operand): Delete prototype.
23136         (print_operand_address): Delete prototype.
23137
23138 2010-06-03  Richard Guenther  <rguenther@suse.de>
23139
23140         PR tree-optimization/44403
23141         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23142         Preserve pointer qualifiers.
23143         (vect_create_data_ref_ptr): Likewise.
23144
23145 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
23146
23147         PR c++/44294
23148         * defaults.h (MAX_FIXED_MODE_SIZE): New.
23149
23150         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
23151
23152 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
23153
23154         PR debug/44375
23155         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
23156         return false if merging the bbs would lead to goto_locus
23157         location being lost from the IL.
23158
23159 2010-06-03  Jan Hubicka  <jh@suse.cz>
23160             Jakub Jelinek  <jakub@redhat.com>
23161
23162         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
23163         set->regs[i] is NULL or has just one entry.
23164
23165 2010-06-03  Jan Hubicka  <jh@suse.cz>
23166
23167         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
23168         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
23169
23170 2010-06-03  Paul Brook  <paul@codesourcery.com>
23171
23172         * config/arm/arm.c (FL_TUNE): Define.
23173         (arm_default_cpu, arm_cpu_select): Remove.
23174         (all_cores): Populate core field.
23175         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
23176         (arm_find_cpu): New function.
23177         (arm_handle_option): Lookup cpu/architecture names.
23178         (arm_override_options): Cleanup mcpu/march/mtune handling.
23179         (arm_file_start): Ditto.
23180
23181 2010-06-03  Alan Modra  <amodra@gmail.com>
23182
23183         PR target/44169
23184         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
23185         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
23186         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
23187         (rs6000_emit_load_toc_table): Likewise.
23188
23189 2010-06-02  Jan Hubicka  <jh@suse.cz>
23190
23191         * passes.c (init_optimization_passes): Put ipa reference
23192         after ipa pure-const.
23193
23194 2010-06-02  Jan Hubicka  <jh@suse.cz>
23195
23196         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
23197         calls_read_all and calls_write_all.
23198         (get_reference_optimization_summary): Fix formatting.
23199         (is_proper_for_analysis): Check that decl is not readonly.
23200         (propagate_bits): Check CONST/PURE/noreturn flags.
23201         (ipa_init): Move all_module_statics to optimization_summary_obstack.
23202         (analyze_function): Ignore indirect edges.
23203         (copy_global_bitmap): For all module statics, do nothing.
23204         (generate_summary): Do not print calls_read_all/calls_write_all.
23205         (read_write_all_from_decl): Take node as argument; check
23206         cgraph_node_cannot_return.
23207         (propagate): Reorganize read_all/write_all computation;
23208         check indirect edges; check ecf flags; use all_module_statics
23209         in the results; do not free all_module_statics.
23210         (stream_out_bitmap): Handle all_module_statics.
23211         (ipa_reference_write_optimization_summary): Likewise; use
23212         varpool/cgraph encoders to get boundaries.
23213         (ipa_reference_read_optimization_summary): Read in all_module_statics;
23214         use it when possible.
23215
23216 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
23217
23218         PR target/44218
23219         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
23220         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
23221
23222         * doc/extend.texi (powerpc builtins): Document vec_recip,
23223         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
23224
23225         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
23226         (rs6000_emit_swrsqrt): Ditto.
23227         (rs6000_emit_swdivsf): Delete.
23228         (rs6000_emit_swdivdf): Ditto.
23229         (rs6000_emit_swrsqrtsf): Ditto.
23230
23231         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
23232         describe the reciprocal estimate support for each type.
23233         (recip_options): Map -mrecip=<opt> into option bits.
23234         (gen_2arg_fn_t): New typedef for binary rtx gen function.
23235         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
23236         reciprocal estimate instructions.
23237         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
23238         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
23239         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
23240         cost information if -mdebug=cost or -mdebug=reg.
23241         (rs6000_override_options): Set -mrecip-precision for power6, and
23242         power7 machines.  If -mvsx or -mdfp, enable various options that
23243         came in previous instruction set ISAs, unless the option was
23244         explicitly disabled by the command line option.  Parse
23245         -mrecip=<opt> options.
23246         (rs6000_builtin_vectorized_function): Add support for vectorizing
23247         the reciprocal estimate builtins and expansions.
23248         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
23249         (bdesc_2arg): Add reciprocal estimate builtins.
23250         (bdesc_1arg): Add reciprocal square root estimate builtins.
23251         (rs6000_expand_builtin): Rewrite to use a switch statement,
23252         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
23253         (rs6000_init_builtins): Create declarations for reciprocal
23254         estimate builtins.
23255         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
23256         sized, prefer traditional floating point registers, if integer
23257         vector types, prefer altivec registers.  Don't actually look at
23258         the memory address any more.
23259         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
23260         builtins.
23261         (rs6000_load_constant_and_splat): New helper function to load up
23262         the constant for reciprocal estimate instructions.
23263         (rs6000_emit_madd): New helper function for generating
23264         multiply/add type instructions, based on the current switches.
23265         (rs6000_emit_msub): Ditto.
23266         (rs6000_emit_mnsub): Ditto.
23267         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
23268         replace a divide with a reciprocal estimate and fixup, adding
23269         support for machines with high precision and vectors.
23270         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
23271         low precision machines.
23272         (rs6000_emit_swdiv): New common function to be called to replace a
23273         division with reciprocal estimate and fixup.
23274         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
23275         for double and vector types.  Add support for high precision machines.
23276
23277         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
23278         the reciprocal estimate instructions can be generated.
23279         (TARGET_FRE): Ditto.
23280         (TARGET_FRSQRTES): Ditto.
23281         (TARGET_FRSQRTE): Ditto.
23282         (RS6000_RECIP_*): New macros for reciprocal estimate support.
23283
23284         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
23285         square root estimate on vectors.
23286         (re<mode>2): New insn for reciprocal division estimate on vectors.
23287
23288         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
23289         New builtin.
23290         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
23291         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
23292         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
23293         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
23294         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
23295         (RS6000_BUILTIN_RSQRT): Ditto.
23296         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
23297         floating point builtin.
23298
23299         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
23300         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
23301         __RECIP_PRECISION__ based on the command line switches.
23302         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
23303
23304         * config/rs6000/rs6000.opt (-mrecip): Document add support for
23305         replacing division instructions with reciprocal estimate and fixup.
23306         (-mrecip=<opt>): New option.
23307         (-mrecip-precision): Ditto.
23308
23309         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
23310         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
23311         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
23312         precision scalar.
23313
23314         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
23315         (UNSPEC_VREFP): Ditto.
23316         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
23317         conterparts with regard to support of -mno-fused-madd and -ffast-math.
23318         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
23319         reciprocal estimate instructions to be generated.
23320         (altivec_vrefp): Ditto.
23321
23322         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
23323         estimate support.
23324         (rreg): New mode attribute for reciprocal estimate support.
23325         (recip<mode>3): New insn for division using reciprocal estimate
23326         and fixup builtins.
23327         (divide define_split): New define_split to convert floating point
23328         division to use reciprocal estimate if the user used the
23329         appropriate options and the split is run when we can add new
23330         pseudo registers for the fixup.
23331         (rsqrt<mode>2): New insn for reciprocal square root support.
23332         (recipsf3): Move into recip<mode>3.
23333         (recipdf3): Ditto.
23334         (fres): Use TARGET_FRES.
23335         (rsqrtsf2): Move into rsqrt<mode>2.
23336         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
23337         (copysignsf3): Add support for VSX.
23338         (fred): Use TARGET_FRE.
23339         (fred_fpr): Ditto.
23340         (rsqrtdf_internal1): New function for frsqrte instruciton.
23341
23342         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
23343         (vec_rsqrt): Ditto.
23344
23345 2010-06-03  Richard Guenther  <rguenther@suse.de>
23346
23347         PR middle-end/44291
23348         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
23349         (set_user_assembler_libfunc): Likewise.
23350
23351 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23352
23353         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
23354         defaults.h.
23355         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
23356         to defaults.h
23357         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
23358         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
23359         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
23360         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
23361         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
23362         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
23363         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
23364         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
23365         * defaults.h: Updated for above mentioned changes.
23366
23367 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
23368
23369         * c-common.c: Remove header include of tm_p.h.
23370         * Makefile.in (c-common.o): Remove TM_P_H dependency.
23371
23372 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
23373
23374         * tree.h (struct tree_decl_map): New type.
23375         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
23376         (tree_decl_map_hash): New prototype.
23377         (debug_expr_for_decl, value_expr_for_decl): Change into
23378         tree_decl_map hashtab from tree_map.
23379         (init_ttree): Adjust initialization.
23380         (tree_decl_map_hash): New function.
23381         (decl_debug_expr_lookup, decl_debug_expr_insert,
23382         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
23383
23384 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23385
23386         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
23387         linker emulations.
23388         * configure: Regenerate.
23389         * config.in: Regenerate.
23390
23391         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
23392         (X86_64_EMULATION): Define.
23393         (TARGET_LD_EMULATION): Use them.
23394
23395         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
23396         (SPARC64_EMULATION): Define.
23397         (LINK_ARCH_SPEC): Use them.
23398
23399 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23400
23401         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
23402         smallest_mode_for_size for computing the precision types of new
23403         graphite IVs.  Do not call lang_hooks.types.type_for_size.
23404
23405 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23406
23407         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
23408         information.
23409         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
23410
23411 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23412
23413         PR middle-end/44363
23414         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
23415         return false instead.
23416
23417 2010-06-02  Jan Hubicka  <jh@suse.cz>
23418
23419         PR middle-end/44295
23420         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
23421         create new cgraph node to check callee.
23422
23423 2010-06-02  Richard Guenther  <rguenther@suse.de>
23424
23425         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
23426
23427 2010-06-02  Richard Guenther  <rguenther@suse.de>
23428
23429         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
23430         (lto_wrapper_cleanup): ... this.  Do not exit.
23431         (fatal): Adjust.  Exit here.
23432         (fatal_perror): Likewise.
23433         (fatal_signal): New function.
23434         (main): Set up signal handlers to cleanup temporary files.
23435         * Makefile.in (lto-wrapper.o): Adjust dependencies.
23436
23437 2010-06-02  Richard Guenther  <rguenther@suse.de>
23438
23439         PR tree-optimization/44377
23440         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
23441
23442 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23443
23444         * config/s390/2097.md (z10_fhex): Remove insn reservation.
23445         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
23446         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
23447         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
23448         instruction.
23449         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
23450
23451 2010-06-02  Jan Hubicka  <jh@suse.cz>
23452
23453         * bitmap.c (bitmap_descriptor): Add search_iter.
23454         (bitmap_find_bit): Increment it.
23455         (print_statistics): Print it.
23456
23457 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
23458
23459         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
23460         instead of gimple_build_call_vec.  Delete unnecessary local variable.
23461
23462 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23463
23464         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
23465         change from yesterday.
23466
23467 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23468
23469         * c-ada-spec.c: Clean up redundant includes.
23470
23471 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
23472
23473         * gimplify.c: Do not include except.h and optabs.h.
23474         (gimplify_body): Do not initialize RTL profiling.
23475         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
23476         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
23477         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
23478         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
23479         langhooks.h.
23480
23481         * tree-pretty-print.h: Include pretty-print.h.
23482         * gimple-pretty-print.h: Include pretty-print.h.
23483
23484         * tree-pretty-print.c: Do not include diagnostic.h.
23485         * tree-vrp.c: Likewise.
23486         * tree-tailcall.c: Likewise
23487         * tree-scalar-evolution.c: Likewise
23488         * tree-ssa-dse.c: Likewise
23489         * tree-chrec.c: Likewise
23490         * tree-ssa-sccvn.c: Likewise
23491         * tree-ssa-copyrename.c: Likewise
23492         * tree-nomudflap.c: Likewise
23493         * tree-call-cdce.c: Likewise
23494         * tree-stdarg.c: Likewise
23495         * tree-ssa-math-opts.c: Likewise
23496         * tree-nrv.c: Likewise
23497         * tree-ssa-sink.c: Likewise
23498         * tree-browser.c: Likewise
23499         * tree-ssa-loop-ivcanon.c: Likewise
23500         * tree-ssa-loop.c: Likewise
23501         * tree-parloops.c: Likewise
23502         * tree-ssa-address.c: Likewise
23503         * tree-ssa-ifcombine.c: Likewise
23504         * tree-if-conv.c: Likewise
23505         * tree-data-ref.c: Likewise
23506         * tree-affine.c: Likewise
23507         * tree-ssa-phiopt.c: Likewise
23508         * tree-ssa-coalesce.c: Likewise
23509         * tree-ssa-pre.c: Likewise
23510         * tree-ssa-live.c: Likewise
23511         * tree-predcom.c: Likewise
23512         * tree-ssa-forwprop.c: Likewise
23513         * tree-ssa-dce.c: Likewise
23514         * tree-ssa-ter.c: Likewise
23515         * tree-ssa-loop-prefetch.c: Likewise
23516         * tree-optimize.c: Likewise
23517         * tree-ssa-phiprop.c: Likewise
23518         * tree-object-size.c: Likewise
23519         * tree-outof-ssa.c: Likewise
23520         * tree-ssa-structalias.c: Likewise
23521         * tree-switch-conversion.c: Likewise
23522         * tree-ssa-reassoc.c: Likewise
23523         * tree-ssa-operands.c: Likewise
23524         * tree-vectorizer.c: Likewise
23525         * tree-vect-data-refs.c: Likewise
23526         * tree-vect-generic.c: Likewise
23527         * tree-vect-stmts.c: Likewise
23528         * tree-vect-patterns.c: Likewise
23529         * tree-vect-slp.c: Likewise
23530         * tree-vect-loop.c: Likewise
23531         * tree-ssa-loop-ivopts.c: Likewise
23532         * tree-ssa-loop-im.c: Likewise
23533         * tree-ssa-loop-niter.c: Likewise
23534         * tree-ssa-loop-unswitch.c: Likewise
23535         * tree-ssa-loop-manip.c: Likewise
23536         * tree-ssa-loop-ch.c: Likewise
23537         * tree-dump.c: Likewise
23538         * tree-complex.c: Likewise
23539
23540         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
23541         * tree-ssa-uninit.c: Likewise
23542         * tree-ssa-threadupdate.c: Likewise
23543         * tree-ssa-uncprop.c: Likewise
23544         * tree-ssa-ccp.c: Likewise
23545         * tree-ssa-dom.c: Likewise
23546         * tree-ssa-propagate.c: Likewise
23547         * tree-ssa-alias.c: Likewise
23548         * tree-dfa.c: Likewise
23549         * tree-cfgcleanup.c: Likewise
23550         * tree-sra.c: Likewise
23551         * tree-ssa-copy.c: Likewise
23552         * tree-ssa.c: Likewise
23553         * tree-profile.c: Likewise
23554         * tree-cfg.c: Likewise
23555         * tree-ssa-threadedge.c: Likewise
23556         * tree-vect-loop-manip.c: Likewise
23557
23558         * tree-inline.c: Do not include diagnostic.h and expr.h.
23559         Include rtl.h.
23560         (copy_decl_for_dup_finish): Do not use NULL_RTX.
23561
23562         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
23563         * tree-loop-distribution.c: Likewise.
23564
23565 2010-06-01  Jan Hubicka  <jh@suse.cz>
23566
23567         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
23568
23569 2010-06-01  Jan Hubicka  <jh@suse.cz>
23570
23571         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
23572         remove return value.
23573         (split_bbs_on_noreturn_calls) .... here.
23574         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
23575         * tree-flow.h (fixup_noreturn_call): New.
23576
23577 2010-06-01  Jan Hubicka  <jh@suse.cz>
23578
23579         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
23580
23581 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
23582
23583         * tree.h (build_nt_call_list): Delete.
23584         * tree.c (build_nt_call_list): Delete.
23585
23586 2010-06-01  Jan Hubicka  <jh@suse.cz>
23587
23588         * fwprop.c: Make emit-rtl.h include last.
23589         * rtlanal.c: Include emit-rtl.h.
23590         * genautomata.c: Output emit-rtl include into insn-automata.c
23591         * df-scan.c: Include emit-rtl.h.
23592         * haifa-sched.c: Indlude emit-rtl.h.
23593         * mode-switching.c: Indlude emit-rtl.h.
23594         * graph.c: Indlude emit-rtl.h.
23595         * sel-sched.c: Include emit-rtl.h.
23596         * sel-sched-ir.c: Include emit-rtl.h.
23597         * ira-build.c: Include emit-rtl.h.
23598         * emit-rtl.c (first_insn, last_insn): Remove defines.
23599         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
23600         Move to emit-rtl.h.
23601         (set_new_first_and_last_insn, get_last_insn_anywhere,
23602         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
23603         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
23604         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
23605         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
23606         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
23607         Use accessor functions.
23608         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23609          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23610         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23611         mem_expr_equal_p): Move here from rtl.h.
23612         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
23613         Move here from emit-rtl.c; make inline.
23614         * cfglayout.h: Include emit-rtl.h.
23615         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23616          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23617         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23618         mem_expr_equal_p, get_insns, set_first-insn,
23619         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
23620         * reg-stack.c: Include emit-rtl.h.
23621         * dce.c: Likewise.
23622
23623 2010-06-01  Jan Hubicka  <jh@suse.cz>
23624
23625         * cgraph.h (tree_function_versioning): Update prototype.
23626         (cgraph_function_versioning): Update prototype.
23627         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
23628         bitmap.
23629         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
23630         (cgraph_materialize_clone, save_inline_function_body): Update use of
23631         tree_function_versioning.
23632         * tree-inline.c (copy_bb): Look for previous copied block to link
23633         after; fix debug output.
23634         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
23635         (copy_body): Likewise.
23636         (expand_call_inline): Update use of copy_body.
23637         (tree_function_versioning): Update use of copy body; accept
23638         blocks_to_copy and new_entry.
23639
23640 2010-06-01  Jan Hubicka  <jh@suse.cz>
23641
23642         * gegenrtl.c: Remove unnecesary prototypes.
23643         (gendecl): Remove.
23644         (gendef): Produce static inline.
23645         (gencode): Remove.
23646         (main): Do not decode parameters; generate header only.
23647         * Makefile.in (genrtl.c): Remove.
23648
23649 2010-06-01  Jan Hubicka  <jh@suse.cz>
23650
23651         * tree-switch-conversion.c (build_one_array): Make it readonly.
23652
23653 2010-06-01  Richard Guenther  <rguenther@suse.de>
23654
23655         * optabs.c (init_optabs): Guard all accesses to reinit.
23656         * ipa-pure-const.c (propagate): Fix another typo.
23657         * opts.c (common_handle_option): Split assignment to bool.
23658         * c-opts.c (c_common_handle_option): Likewise.
23659
23660 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
23661             Matthew Gingell  <gingell@adacore.com>
23662
23663         * doc/invoke.texi: Mention -fdump-ada-spec.
23664         * tree-dump.c (dump_files): Add ada-spec.
23665         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
23666         * tree-pass.h (tree_dump_index): Add TDI_ada.
23667         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
23668         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
23669         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
23670         * c-decl.c: Include c-ada-spec.h.
23671         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
23672         functions.
23673         (c_write_global_declarations): Add handling of -fdump-ada-spec.
23674         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
23675         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
23676         * c-ada-spec.h, c-ada-spec.c: New files.
23677
23678 2010-06-01  Richard Guenther  <rguenther@suse.de>
23679
23680         PR lto/43853
23681         * ipa-pure-const.c (get_function_state): Hand back varying state
23682         if we do not have one.
23683         (has_function_state): New function.
23684         (duplicate_node_data): Adjust.
23685         (remove_node_data): Likewise.
23686         (pure_const_write_summary): Likewise.
23687         (propagate): Likewise.  Fix typo.
23688
23689 2010-06-01  Jan Hubicka  <jh@suse.cz>
23690
23691         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
23692         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
23693         (execute_all_ipa_transforms): Do not play with the states.
23694
23695 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
23696
23697         * config/arm/t-linux-androideabi: New.
23698         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
23699
23700 2010-06-01  Jan Hubicka  <jh@suse.cz>
23701
23702         * tree-inline.c (estimate_num_insns): For stdarg functions look
23703         into call statement to count cost of argument passing.
23704
23705 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
23706
23707         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
23708         argument for fprintf.
23709         (ix86_output_addr_diff_elt): Likewise.
23710         (x86_function_profiler): Likewise.
23711         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
23712         (LPREFIX): Likewise.
23713         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
23714
23715 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23716
23717         PR target/44338
23718         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
23719         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
23720         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
23721         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
23722         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
23723         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
23724         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
23725         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
23726         TARGET_FUSED_MADD.
23727
23728 2010-05-31  Jan Hubicka  <jh@suse.cz>
23729
23730         * tree.h (tree_range_check_failed): Declare noreturn.
23731
23732 2010-05-31  Jan Hubicka  <jh@suse.cz>
23733
23734         * gimple.c (gimple_call_builtin_p): New function.
23735         * gimple.h (gimple_call_builtin_p): Declare.
23736         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
23737         to exit.
23738         (execute_warn_function_return): BUILT_IN_RETURN is return.
23739         (split_critical_edges): Return edges are not critical.
23740         (is_ctrl_altering_stmt): Builtin_in_return is altering.
23741         (gimple_verify_flow_info): Handle built_in_return.
23742         (execute_warn_function_return): Handle built_in_return.
23743         * ipa-pure-const.c (check_call): Ignore builtin_return.
23744
23745 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23746
23747         PR middle-end/44337
23748         * expr.c (expand_assignment): Don't store anything for out-of-bounds
23749         array accesses with non-MEM.
23750
23751         PR tree-optimization/44182
23752         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
23753         newly needs to end a bb is followed by debug stmts, instead return
23754         true from the function at the end.
23755         (maybe_move_debug_stmts_to_successors): New function.
23756         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
23757
23758 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
23759
23760         PR target/44161
23761         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
23762
23763 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
23764
23765         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
23766         for nested functions in non-optimized compilation.
23767
23768 2010-05-31  Richard Guenther  <rguenther@suse.de>
23769
23770         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
23771
23772 2010-05-30  Jan Hubicka  <jh@suse.cz>
23773
23774         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
23775
23776 2010-05-30  Richard Guenther  <rguenther@suse.de>
23777
23778         PR lto/42975
23779         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
23780         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
23781         no longer needed.
23782
23783 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
23784
23785         * config/darwin.c (output_objc_section_asm_op): Add comment.
23786         (name_needs_quotes): Add '_' to list of valid comment chars.
23787         (machopic_output_function_base_name): Remove unneeded quotes.
23788         (darwin_encode_section_info): Adjust asm whitespace.
23789         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
23790         (ASM_OUTPUT_LOCAL): Ditto.
23791         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
23792         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
23793         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
23794
23795 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
23796
23797         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
23798         RS6000_OUTPUT_BASENAME unconditionally.
23799         (rs6000_output_function_epilogue): Likewise.
23800
23801 2010-05-30  Jan Hubicka  <jh@suse.cz>
23802
23803         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
23804         nodes.
23805
23806 2010-05-30  Richard Guenther  <rguenther@suse.de>
23807
23808         * tree-cfg.c (verify_gimple_assign_single): Implement
23809         verification for COND_EXPR rhs.
23810
23811 2010-05-30  Jan Hubicka  <jh@suse.cz>
23812
23813         * cgraph.h (cgraph_dump_file): Declare.
23814         * cgraphunit.c (cgraph_dump_file): Export.
23815         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
23816
23817 2010-05-30  Jan Hubicka  <jh@suse.cz>
23818
23819         * dwarf2out.c (reference_to_unused,
23820         premark_types_used_by_global_vars_helper): Avoid creation of new
23821         varpool nodes.
23822
23823 2010-05-30  Jan Hubicka  <jh@suse.cz>
23824
23825         * cgraph.h (cgraph_node_cannot_return,
23826         cgraph_edge_cannot_lead_to_return): New functions.
23827         * cgraph.c (cgraph_node_cannot_return,
23828         cgraph_edge_cannot_lead_to_return): Use them.
23829         * ipa-pure-const.c (pure_const_names): New static var.
23830         (check_call): Handle calls not leading to return.
23831         (pure_const_read_summary): Dump info read.
23832         (propagate): Dump info about propagation process; ignore side effects
23833         of functions not leading to exit; fix handling of pure functions.
23834
23835 2010-05-30  Jan Hubicka  <jh@suse.cz>
23836
23837         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
23838         for tail call epilogues.
23839
23840 2010-05-30  Jan Hubicka  <jh@suse.cz>
23841
23842         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
23843         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
23844         dump files.
23845
23846 2010-05-29  Jan Hubicka  <jh@suse.cz>
23847
23848         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
23849         node; remove references in node we no longer keep in cgrpah but need
23850         body of.
23851
23852 2010-05-29  Jan Hubicka  <jh@suse.cz>
23853
23854         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
23855
23856 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23857
23858         PR target/44165
23859         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
23860
23861 2010-05-29  Jan Hubicka  <jh@suse.cz>
23862
23863         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
23864         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
23865         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
23866         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
23867         debug_names_replaced_by, debug_update_ssa): Likewise.
23868         * sbitmap.c (debug_sbitmap): Likewise.
23869         * genrecog.c (debug_decision, debug_decision_list): Likewise.
23870         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
23871         debug_tree_chain): Likewise.
23872         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
23873         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
23874         * optabs.c (debug_optab_libfuncs): Likewise.
23875         (verify_loop_closed_ssa): Likewise.
23876         * value-prof.c (verify_histograms): Likewise.
23877         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
23878         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
23879         * cfghooks.c (verify_flow_info): Likewise.
23880         * fold-const.c (debug_fold_checksum): Likewise.
23881         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
23882         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
23883         Likewise.
23884         * omega.c (debug_omega_problem): Likewise.
23885         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
23886         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
23887         * dominance.c (verify_dominators, debug_dominance_info,
23888         debug_dominance_tree): Likewise.
23889         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
23890         * df_regno_debug, df_ref_debug,
23891         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
23892         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
23893         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
23894         * sel-sched.c (debug_state): Likewise.
23895         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
23896         Likewise.
23897         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
23898         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
23899         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
23900         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
23901         Likewise.
23902         * c-pretty-print.c (debug_c_tree): Likewise.
23903         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
23904         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
23905         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
23906         * ebitmap.c (debug_ebitmap): Likewise.
23907         * function.c (debug_find_var_in_block_tree): Likewise.
23908         * print-rtl.c (debug_rtx): Likewise.
23909         (debug_rtx_count): Likewise.
23910         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
23911         * stor-layout.c (debug_rli): Likewise.
23912         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
23913         * tree-data-ref.c (debug_data_references,
23914         debug_data_dependence_relations, debug_data_reference,
23915         debug_data_dependence_relation, debug_rdg_vertex,
23916         debug_rdg_component, debug_rdg): Likewise.
23917         * tree-affine.c (debug_aff): Likewise.
23918         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
23919         Likewise.
23920         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
23921         * emit-rtl.c (verify_rtl_sharing): Likewise.
23922         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
23923         debug_value_expressions): Likewise.
23924         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
23925         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
23926         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
23927         * cfglayout.c (verify_insn_chain): Likewise.
23928         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
23929         debug_clast_stmt, debug_generated_program): Likewise.
23930         * ggc-page.c (debug_print_page_list): Likewise.
23931         * tree-ssa-ter.c (debug_ter): Likewise.
23932         * graphite-dependences.c (debug_pddr): Likewise.
23933         * sched-deps.c (debug_ds): Likewise.
23934         * tree-ssa.c (verify_ssa): Likewise.
23935         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
23936         debug_scattering_functions, debug_iteration_domains, debug_pdr,
23937         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
23938         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
23939         * tree-inline.c (debug_find_tree): Likewise.
23940         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
23941         debug_ppl_powerset_matrix): Likewise.
23942         * var-tracking.c (debug_dv): Likewise.
23943         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
23944         * cfgloop.c (verify_loop_structure): Likewise.
23945         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
23946         * c-common.c (verify_sequence_points): Likewise.
23947         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
23948         debug_candidates, debug_rgn_dependencies): Likewise.
23949         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
23950         * debug_constraint_graph, debug_solution_for_var,
23951         debug_sa_points_to_info): Likewise.
23952         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
23953         Likewie.
23954         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
23955         debug_loops, debug_loop, debug_loop_num): Likewise.
23956         * passes.c (debug_pass): Likewise.
23957         (dump_properties): Likewise; add cfglayout property.
23958         (debug_properties): Likewise.
23959         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
23960         * varpool.c (debug_varpool): Likewise.
23961         * regcprop.c (debug_value_data): Likewise.
23962         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
23963         debug_immediate_uses_for): Likewise.
23964
23965 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
23966
23967         PR bootstrap/44315
23968         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
23969         Filter out insn-flags.h.
23970
23971 2010-05-29  Jan Hubicka  <jh@suse.cz>
23972
23973         * cgraph.h (struct varpool_node_set_def,
23974         struct cgraph_node_set_def): Remove unused AUX pointer.
23975         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
23976         VEC_empty macro.
23977
23978 2010-05-29  Jan Hubicka  <jh@suse.cz>
23979
23980         PR middle-end/44324
23981         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
23982
23983 2010-05-29  Richard Guenther  <rguenther@suse.de>
23984
23985         * lto-streamer.c (cached_bp): New global variable.
23986         (bitpack_create): Return the cached bitpack, if available.
23987         (bitpack_delete): Clear and cache the bitpack, if appropriate.
23988         (bp_pack_value): Remove redundant asserts.
23989
23990 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
23991
23992         PR middle-end/44306
23993         * tree-if-conv.c (is_true_predicate): New.
23994         (is_predicated): Use is_true_predicate.
23995         (add_to_predicate_list): Same.  Do not use unshare_expr.
23996         (add_to_dst_predicate_list): Same.
23997
23998 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
23999
24000         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
24001         field on edges.
24002         (predicate_bbs): Same.
24003         (clean_predicate_lists): Same.
24004         (find_phi_replacement_condition): Do not AND the predicate from
24005         edge->aux.
24006
24007 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
24008
24009         PR bootstrap/44315
24010         * Makefile.in (build/gencondmd.o): Add a missing `\'.
24011
24012 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24013
24014         PR target/44261
24015         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
24016         (negdf2): Adjust expander pattern and use negdf2_slow.
24017         (negsf2): Likewise.
24018
24019 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
24020
24021         * basic-block.h (struct control_flow_graph): Move last_label_uid field
24022         up.
24023         * df.h (struct df_base_ref): Move regno field up.
24024         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
24025         * expr.h (struct separate_ops): Move location field up.
24026         * optabs.h (struct optab_d): Move libcall_basename field down.
24027         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
24028         * config/i386/i386.h (struct machine_function): Convert call_abi field
24029         into a bitfield.  Move cfa field to the end of the structure.
24030
24031 2010-05-29  Jan Hubicka  <jh@suse.cz>
24032
24033         * varpool.c (varpool_get_node): Fix lookup.
24034
24035 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24036
24037         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
24038         RTL specific prototypes with #ifdef RTX_CODE.
24039         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
24040         * config/spu/t-spu-elf: Fix dependencies.
24041
24042         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
24043
24044 2010-05-29  Mike Stump  <mikestump@comcast.net>
24045
24046         PR bootstrap/44315
24047         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
24048         TM_H when building to avoid dependency loops.
24049
24050 2010-05-29  Jan Hubicka  <jh@suse.cz>
24051
24052         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
24053         refs and body; not the whole node for masters of materialized clones.
24054
24055 2010-05-29  Mike Stump  <mikestump@comcast.net>
24056
24057         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
24058
24059 2010-05-29  Jan Hubicka  <jh@suse.cz>
24060
24061         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
24062         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
24063         use of clone_function_name.
24064         * cgraph.h (cgraph_create_virtual_clone,
24065         cgraph_function_versioning): update prototypes.
24066         (clone_function_name): Declare.
24067         * ipa-cp.c (ipcp_insert_stage): Update call of
24068         cgraph_create_virtual_clone.
24069         * omp-low.c (create_omp_child_function_name): Use
24070         cgraph_create_virtual_clone.
24071         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
24072         (cgraph_function_versioning): Take SUFFIX argument; produce new name
24073         and make decl local.
24074
24075 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24076
24077         * vec.h: Include statistics.h
24078         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
24079         with VEC_H.
24080
24081 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24082
24083         * c-lex.c: Do not include c-tree.h.
24084         * c-pretty-print.c: Likewise.
24085         * c-opts.c: Likewise.
24086         * c-gimplify.c: Likewise.
24087         * c-common.c: Likewise.
24088         * c-dump.c: Likewise.  Include c-common.h.
24089
24090 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24091
24092         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
24093         before including diagnostic-core.h.
24094         (c_cpp_error): New prototype moved from c-tree.h.
24095         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
24096         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
24097         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
24098         (c_cpp_error): Prototype moved to c-common.h.
24099         * Makefile.in: Update dependency for C_COMMON_H.
24100
24101 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24102
24103         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
24104         * c-common.c (c_register_addr_space): Remove here.
24105         * c-decl.c (c_register_addr_space): Re-add here.
24106
24107 2010-05-28  Mike Stump  <mikestump@comcast.net>
24108
24109         * config/darwin-c.c: Remove c-tree.h include.
24110
24111 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24112
24113         * gcc.c: Include diagnostic.h.
24114         (error_count): Remove.  All users changed to use errorcount.
24115         (programname): Remove.  All users changed to use progname.
24116         (fancy_abort, internal_error, fatal_error, error, warning, inform,
24117         fnotice): Remove.
24118         (execute): Don't include "Internal error" and bug reporting
24119         information in argument of internal_error call.
24120         (process_command): Don't increment error_count after calling
24121         perror_with_name.
24122         (input_filename): Rename to gcc_input_filename.  All users
24123         changed.
24124         (main): Call diagnostic_initialize.  Register delete_temp_files
24125         with atexit.  Use seen_error to test for errors.
24126         * gcc.h: Include diagnostic-core.h.
24127         (fatal_error, error, warning): Remove.
24128         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
24129         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
24130         (gcc.o): Update dependencies.
24131
24132 2010-05-28  Jeff Law  <law@redhat.com>
24133
24134         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
24135         functions.
24136         * ira.h (ira_bad_reload_regno): Declare
24137         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
24138
24139         * ira-color.c (update_curr_costs): Free updated hard reg costs.
24140         (ira_reassign_conflict_allocnos): Remove bogus asserts.
24141         (allocno_reload_assign): Likewise.
24142
24143 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
24144
24145         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
24146         build1_stat.
24147
24148 2010-05-28  Richard Guenther  <rguenther@suse.de>
24149
24150         PR lto/44312
24151         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
24152         Stream fixed-point constants mode.
24153         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
24154         and TYPE_PRECISION.
24155         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
24156         Stream fixed-point constants mode.
24157         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
24158         and TYPE_PRECISION.
24159
24160 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24161
24162         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
24163         only place it was called from.
24164         (number_of_latch_executions): Do not return chrec_dont_know when the
24165         may_be_zero is a runtime condition: instead, return a COND_EXPR
24166         including the may_be_zero condition.
24167         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
24168         of nb_iterations.
24169         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
24170         COND_EXPRs.
24171
24172 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24173
24174         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
24175         generate COND_EXPRs for degenerate_phi_result.
24176
24177 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24178
24179         PR middle-end/44293
24180         * tree-if-conv.c (if_convertible_loop_p): Check the
24181         if-convertibility of phi nodes in non predicated BBs.
24182
24183 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24184
24185         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
24186
24187 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24188
24189         PR driver/15303
24190         * gcc.c (inform, warning, inform): New functions.
24191         (fatal_ice): Rename to internal_error; change cmsgid parameter to
24192         gmsgid.  All callers changed.
24193         (notice): Rename to fnotice; add parameter fp.  All callers changed.
24194         (fatal_error): Rename to fatal_signal.  All users changed.
24195         (fatal): Rename to fatal_error; change cmsgid parameter to
24196         gmsgid.  All callers changed.
24197         (process_command): Use warning instead of error for warnings.
24198         (end_going_arg): Don't use _() around argument of error.
24199         (do_spec_1): Use inform for message from %n specs.  Use warning
24200         instead of error for warnings.
24201         (main): Use inform for comparison messages.  Use warning for
24202         message about unused linker input.
24203         (error): Increment error_count.  Print "error: ".
24204         * gcc.h (fatal): Change to fatal_error.
24205         (warning): Declare.
24206         * config/darwin-driver.c (darwin_default_min_version): Use warning
24207         instead of fprintf for warnings.
24208         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
24209
24210 2010-05-28  Julian Brown  <julian@codesourcery.com>
24211
24212         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
24213         (*thumb2_addsi3_compare0_scratch): New.
24214         * config/arm/constraints.md (Pv): New.
24215         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
24216         for ARM mode only.
24217         (*addsi3_compare0_scratch): Likewise.
24218
24219 2010-05-28  Jan Hubicka  <jh@suse.cz>
24220
24221         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
24222         check.
24223         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
24224         only on local statics.
24225
24226 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
24227
24228         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
24229
24230 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
24231
24232         PR bootstrap/44314
24233         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
24234         (OPTION_GLIBC): Define.
24235
24236 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24237
24238         PR debug/41048
24239         * dwarf2out.c (double_int_type_size_in_bits): New function.
24240         (round_up_to_align): Change first argument and return value to
24241         double_int.
24242         (field_byte_offset): Work internally on double_ints.
24243
24244         PR target/43636
24245         * builtins.c (expand_movstr): Use a temporary pseudo instead
24246         of target even when target is not NULL and not const0_rtx, but
24247         fails movstr predicate.
24248         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
24249
24250 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24251
24252         * final.c (rest_of_clean_state): Use %m in errors instead of
24253         strerror (errno).
24254         * gengtype.c (read_input_list, close_output_files): Use xstrerror
24255         instead of strerror.
24256         * toplev.c (process_options): Use %m in errors instead of strerror
24257         (errno).
24258         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
24259         (errno).
24260
24261 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
24262
24263         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
24264         (ix86_canonical_va_list_type): Make static.  Add declaration.
24265         (ix86_enum_va_list): Make static.  Reindent.
24266         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
24267         (ix86_canonical_va_list_type): Ditto.
24268         (ix86_enum_va_list): Ditto.
24269
24270 2010-05-28  Richard Guenther  <rguenther@suse.de>
24271
24272         * lto-wrapper.c (run_gcc): With -save-temps generate a
24273         user-visible ltrans filename.  Fixup ltrans unit numbering.
24274
24275 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
24276
24277         * c-common.c (c_common_nodes_and_builtins): Replace use
24278         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
24279         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
24280         to ix86_enum_va_list.
24281         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
24282         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
24283         (TARGET_ENUM_VA_LIST_P): Add hook description.
24284         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
24285         * target.h (gcc_target): Add enum_va_list hook.
24286
24287         PR bootstrap/44299
24288         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
24289         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
24290         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
24291
24292 2010-05-28  Alan Modra  <amodra@gmail.com>
24293
24294         PR target/44266
24295         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
24296         emit_library_call machinery to set up __tls_get_addr calls.
24297
24298 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24299
24300         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
24301
24302 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
24303
24304         Revert fix for PR c++/44188
24305         * c-common.c (is_typedef_decl): Revert the moving of  this
24306         definition ...
24307         * tree.c (is_typedef_decl): ... here.
24308         (typdef_variant_p): Revert the moving of this  definition
24309         here from cp/tree.c.
24310         * c-common.h (is_typedef_decl): Revert the moving of this
24311         declaration ...
24312         * tree.h (is_typedef_decl): ... here.
24313         (typedef_variant_p): Revert the moving of this  declaration here
24314         from cp/cp-tree.h
24315         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
24316         (gen_tagged_type_die): Revert the splitting out of ...
24317         (gen_type_die_with_usage): ... this function. Revert the anonymous
24318         tagged type handling.
24319         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
24320         typedefs naming anonymous tagged types.
24321
24322 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24323
24324         * config/rs6000/rs6000-modes.def (PSImode): Delete.
24325
24326 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24327
24328         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
24329         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
24330         throughout.
24331         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
24332         "xer" to "ca".
24333         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
24334         XER_REGS to CA_REGS throughout.
24335         * config/rs6000/rs6000.h: Same.
24336         (ADDITIONAL_REGISTER_NAMES): Add "xer".
24337         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
24338         that mode_iterator "P" is the size for arithmetic carries as well.
24339         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
24340
24341 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24342
24343         PR bootstrap/44255
24344         * combine.c (struct rtx_subst_pair): Define unconditionally.
24345         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
24346         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
24347         Call make_compound_operation on pair->to.
24348         (propagate_for_debug): Don't call make_compound_operation here.
24349         Always use simplify_replace_fn_rtx.
24350
24351 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
24352
24353         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
24354         * config/xtensa/xtensa.c (override_options): Check
24355           TARGET_FORCE_NO_PIC and set flag_pic.
24356         * config/xtensa/xtensa.opt: Document -mforce-no-pic
24357
24358 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24359
24360         PR bootstrap/44299
24361         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
24362         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
24363
24364 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24365
24366         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
24367         toplev.h.
24368         * diagnostic.c: Don't include toplev.h.
24369         (progname): Define.  Moved from toplev.c.
24370         (seen_error): New function.
24371         * diagnostic.h: Include diagnostic-core.h.
24372         (diagnostic_t, emit_diagnostic): Don't declare here.
24373         * toplev.c (progname): Move to toplev.c.
24374         (emit_debug_global_declarations, compile_file, finalize,
24375         do_compile, toplev_main): Use seen_error.
24376         * toplev.h: Include diagnostic-core.h.
24377         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
24378         internal_error, warning, warning_at, error, error_n, error_at,
24379         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
24380         verbatim, fnotice, progname): Move to diagnostic-core.h.
24381         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
24382         (expand_builtin_expect): Use seen_error.
24383         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
24384         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
24385         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
24386         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
24387         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
24388         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
24389         errorcount for errors.
24390         * c-opts.c (c_common_finish): Use seen_error.
24391         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24392         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
24393         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
24394         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
24395         (get_coverage_counts): Use seen_error.
24396         * dwarf2out.c (dwarf2out_finish): Use seen_error.
24397         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
24398         gimplify_body): Use seen_error.
24399         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
24400         * ipa-pure-const.c (gate_pure_const): Use seen_error.
24401         * ipa-reference.c (gate_reference): Use seen_error.
24402         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
24403         * lambda-code.c: Include diagnostic-core.h instead of
24404         diagnostic.h.
24405         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24406         * lto-compress.c: Include diagnostic-core.h instead of
24407         diagnostic.h.
24408         * lto-section-in.c: Include diagnostic-core.h instead of
24409         diagnostic.h.
24410         * lto-streamer-out.c: Include diagnostic-core.h instead of
24411         diagnostic.h.
24412         * lto-streamer.c: Include diagnostic-core.h instead of
24413         diagnostic.h.
24414         (gate_lto_out): Use seen_error.
24415         * matrix-reorg.c: Include diagnostic-core.h instead of
24416         diagnostic.h.
24417         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
24418         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
24419         (gate_expand_omp, lower_omp_1): Use seen_error.
24420         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
24421         (rest_of_decl_compilation, rest_of_type_compilation,
24422         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
24423         * tree-cfg.c (label_to_block_fn): Use seen_error.
24424         * tree-inline.c (optimize_inline_calls): Use seen_error.
24425         * tree-mudflap.c (mudflap_finish_file): Use
24426         seen_error.
24427         * tree-optimize.c (gate_all_optimizations,
24428         gate_all_early_local_passes, gate_all_early_optimizations): Use
24429         seen_error.
24430         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
24431         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
24432         (varpool_remove_unreferenced_decls,
24433         varpool_assemble_pending_decls): Use seen_error.
24434         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
24435         (TOPLEV_H, DIAGNOSTIC_H): Update.
24436         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
24437         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
24438         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
24439         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
24440         coverage.o, lambda-code.o): Update dependencies.
24441
24442 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24443
24444         PR c++/44188
24445         * c-common.c (is_typedef_decl): Move this definition ...
24446         * tree.c (is_typedef_decl): ... here.
24447         (typdef_variant_p): Move definition here from cp/tree.c.
24448         * c-common.h (is_typedef_decl): Move this declaration ...
24449         * tree.h (is_typedef_decl): ... here.
24450         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24451         * dwarf2out.c (is_naming_typedef_decl): New function.
24452         (gen_tagged_type_die): Split out of ...
24453         (gen_type_die_with_usage): ... this function. When an anonymous
24454         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24455         is emitted for the typedef.
24456         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24457         anonymous tagged types.
24458
24459 2010-05-27  Jason Merrill  <jason@redhat.com>
24460
24461         * print-tree.c (debug_vec_tree): New fn.
24462         (print_vec_tree): New fn.
24463         * tree.h: Declare them.
24464         * gdbinit.in (pvt): New command.
24465
24466         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
24467
24468         * gdbinit.in (pdd): New command.
24469
24470 2010-05-27  Jan Hubicka  <jh@suse.cz>
24471
24472         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
24473         (update_caller_keys): Return early if there are no callers;
24474         only update fibheap when decresing the key.
24475         (update_callee_keys): Avoid recursion.
24476         (decide_inlining_of_small_functions): When badness does not match;
24477         re-insert into fibheap.
24478
24479 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
24480
24481         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
24482         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
24483         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
24484         (ALL_HOST_OBJS): Now a union of the above two.
24485         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
24486         all files in ALL_HOST_FRONTEND_OBJS.
24487         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
24488
24489         * c-common.c: Pretend to be a backend file by undefining
24490         IN_GCC_FRONTEND (still need rtl.h here).
24491
24492 2010-05-27  Jan Hubicka  <jh@suse.cz>
24493
24494         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
24495         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
24496
24497 2010-05-27  Jan Hubicka  <jh@suse.cz>
24498
24499         * sched-ebb.c: Rename struct deps to struct deps_desc.
24500         * ddg.c: Likewise.
24501         * sel-sched-ir.c: Likewise.
24502         * sched-deps.c: Likewise.
24503         * sched-int.h: Likewise.
24504         * sched-rgn.c: Likewise.
24505
24506 2010-05-27  Jon Beniston  <jon@beniston.com>
24507
24508         PR 43726
24509         * config/lm32/lm32.h: Remove definition of
24510         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
24511
24512 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
24513
24514         PR lto/44230
24515         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
24516
24517 2010-05-27  Richard Guenther  <rguenther@suse.de>
24518
24519         PR tree-optimization/44284
24520         * tree-vect-stmts.c (vectorizable_assignment): Handle
24521         sign-changing conversions as simple copy.
24522
24523 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24524
24525         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
24526         Bionic C library.
24527         (__gthread_active_p): Check for pthread_create if compiling against
24528         Bionic C library.
24529
24530 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24531
24532         Support compilation for Android platform.  Reimplement -mandroid.
24533
24534         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
24535         (*android*): Set ANDROID_DEFAULT.
24536         (arm*-*-linux*): Include linux-android.h.
24537         (arm*-*-eabi*): Don't include previous -mandroid implementation.
24538         * config/arm/eabi.h: Remove, move Android-specific parts ...
24539         * config/linux-android.h: ... here.  New file.
24540         * config/arm/eabi.opt: Rename to ...
24541         * config/linux-android.opt: ... this.
24542         (mandroid): Allow -mno-android option.  Initialize based on
24543         ANDROID_DEFAULT.
24544         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
24545         Move logic to corresponding LINUX_TARGET_* macros.
24546         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
24547         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
24548         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
24549         Android definitions.
24550         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
24551         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
24552         Document.
24553
24554 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24555
24556         Add support for Bionic C library
24557
24558         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
24559         macro.
24560         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
24561         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
24562
24563         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
24564         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
24565         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
24566         to support multiple C libraries.  Handle Bionic.
24567         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
24568         (BIONIC_DYNAMIC_LINKER64): Define.
24569         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
24570         Update.
24571         (TARGET_HAS_SINCOS): Enable for Bionic.
24572
24573         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
24574         the last option specified on command line take effect.
24575         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
24576         (mbionic): New.
24577         (mglibc, muclibc): Update.
24578
24579         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
24580         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
24581         DEFAULT_LIBC.
24582
24583         * doc/invoke.texi (-mglibc, -muclibc): Update.
24584         (-mbionic): Document.
24585
24586 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24587
24588         * c-common.h (c_register_addr_space): Add prototype.
24589         (ADDR_SPACE_KEYWORD): Remove.
24590         * c-common.c (c_register_addr_space): New function.
24591         (c_addr_space_name): Reimplement.
24592         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
24593
24594         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
24595         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
24596
24597         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
24598         Remove TARGET_ADDR_SPACE_KEYWORDS.
24599
24600 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24601
24602         * input.c: New file.
24603         * input.h (main_input_filename): Move declaration to toplev.h.
24604         * toplev.c (input_location, line_table): Move to input.c
24605         * toplev.h (main_input_filename): Move declaration from input.h.
24606         * tree.c (expand_location): Move to input.c.
24607         * Makefile.in (OBJS-common): Add input.o.
24608         (input.o): Add dependencies.
24609
24610 2010-05-27  Richard Guenther  <rguenther@suse.de>
24611
24612         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
24613         for non-existant files.
24614         (fork_execute): Mark args_name file as deleted.
24615
24616 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24617
24618         PR bootstrp/44287
24619         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
24620         (narrow_signed_type): Likewise.
24621
24622 2010-05-26  Jan Hubicka  <jh@suse.cz>
24623
24624         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
24625         edge only when checking is enabled; check using former_clone_of;
24626         check inline clones too.
24627         (cgraph_materialize_clone): Record former_clone_of pointer.
24628         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
24629         combining redirections; dump args_to_skip bitmap
24630         (cgraph_materialize_all_clones): Do no redirection here.
24631         * ipa-inline.c (inline_transform): Do redirection here.
24632         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
24633         cheking only).
24634
24635 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24636
24637         * config/avr/avr-c.c: Do not include regs.h.
24638         Include cpplib.h for cpp_define and tree.h for c-common.h.
24639         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
24640         * config/avr/t-avr: Fix dependencies for avr-c.o.
24641
24642 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24643
24644         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
24645         string instead of SYMBOL_REF rtx.
24646         * rtl.h (set_stack_check_libfunc): Move prototype from here...
24647         * libfuncs.h: ...to here.  Adjust for explow.c change.
24648
24649 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
24650
24651         * pretty-print.c: Don't include ggc.h.
24652         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
24653         (identifier_to_locale): Use them for allocation.
24654         * pretty-print.h (identifier_to_locale_alloc,
24655         identifier_to_locale_free): Declare.
24656         * toplev.c (alloc_for_identifier_to_locale): New.
24657         (general_init): Set identifier_to_locale_alloc and
24658         identifier_to_locale_free.
24659         * Makefile.in (pretty-print.o): Update dependencies.
24660
24661 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24662
24663         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
24664         pointer types if they have different alignment or mode.
24665
24666 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
24667
24668         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24669         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24670         * config/sparc/sparc-protos.h (function_value): Remove declaration.
24671         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
24672         sparc_function_value_regno_p): New functions.
24673         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24674         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24675         (function_value): Rename to...
24676         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
24677         argument to 'outgoing'.
24678         (function_arg_record_value, function_arg_union_value,
24679         function_arg_vector_value): Update comment.
24680
24681 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24682
24683         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
24684         (fde_needed_for_eh_p): New predicate.
24685         (output_call_frame_info): Use it throughout to decide whether FDEs
24686         are needed for EH purpose.
24687         (dwarf2out_begin_prologue): Reorder assignments.
24688
24689 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24690
24691         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
24692         special case loop->header.
24693         (is_predicated): New.
24694         (if_convertible_loop_p): Call it.
24695
24696 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24697
24698         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
24699         iterator in parameter.  Do not generate code during the analysis.
24700         (tree_if_convert_cond_stmt): Removed.
24701         (tree_if_convert_stmt): Removed.
24702         (predicate_bbs): New.
24703         (if_convertible_loop_p): Call predicate_bbs.
24704         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
24705         now contains all the analysis part.
24706
24707 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24708
24709         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
24710         statements in the analysis part.
24711         (tree_if_convert_stmt): Update comment.
24712         (remove_conditions_and_labels): New.
24713         (combine_blocks): Call remove_conditions_and_labels.
24714         (tree_if_conversion): Update comment.
24715
24716 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24717
24718         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
24719         than 2 predecessors or more than 2 successors.
24720
24721 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24722
24723         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
24724         of loops in which the data dependence analysis fails.
24725
24726 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24727
24728         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
24729         CDI_POST_DOMINATORS.
24730         (tree_if_conversion): Same.
24731
24732 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24733
24734         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
24735
24736 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24737
24738         * tree-if-conv.c: Update copyright years.  Fix comments.
24739         Fix indentation.
24740
24741 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
24742
24743         * builtin-types.def (BT_INT128): New primitive type.
24744         (BT_UINT128): Likewise.
24745         * c-common.c (c_common_r): Add __int128 keyword.
24746         (c_common_type_for_size): Handle __int128.
24747         (c_common_type_for_mode): Likewise.
24748         (c_common_signed_or_unsigned_type): Likewise.
24749         (c_common_nodes_and_builtins): Add builtin type
24750         if target supports 128-bit integer scalar.
24751         * c-common.h (enum rid): Add RID_INT128.
24752         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
24753         if target supports 128-bit integer scalar.
24754         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
24755         (finish_declspecs): Likewise.
24756         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
24757         (c_token_starts_declspecs): Likewise.
24758         (c_parser_declspecs): Likewise.
24759         (c_parser_attributes): Likewise.
24760         (c_parser_objc_selector): Likewise.
24761         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
24762         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
24763         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
24764         * tree.c (make_or_reuse_type): Likewise.
24765         (make_unsigned_type): Likewise.
24766         (build_common_tree_nodes_2): Likewise.
24767         * tree.h (enum integer_type_kind): Add itk_int128 and
24768         itk_unsigned_int128.
24769         (int128_integer_type_node): New define.
24770         (int128_unsigned_type_node): New define.
24771         * doc/extend.texi: Add documentation about __int128 type.
24772
24773 2010-05-26  Richard Guenther  <rguenther@suse.de>
24774
24775         * tree-ssa-sccvn.c (copy_nary): Adjust.
24776         (copy_phis): Rename to ...
24777         (copy_phi): ... this.  Adjust.
24778         (copy_references): Rename to ...
24779         (copy_reference): ... this.  Adjust.
24780         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
24781         result into the valid table.
24782
24783 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24784
24785         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
24786         insn-config.h, insn-codes.h, recog.h, and optabs.h.
24787
24788 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24789
24790         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
24791
24792 2010-05-26  Richard Guenther  <rguenther@suse.de>
24793
24794         * opts.c (common_handle_option): Handle OPT_Ofast.
24795
24796 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
24797
24798         * diagnostic.c: Don't include opts.h.
24799         (permissive_error_option): Define.
24800         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
24801         for classify_diagnostic.  Don't use memset for
24802         classify_diagnostic.  Initialize new and recently added fields.
24803         (diagnostic_classify_diagnostic): Use context->n_opts instead of
24804         N_OPTS.
24805         (diagnostic_report_diagnostic): Pass context parameter to
24806         diagnostic_report_warnings_p.  Use option_enabled and option_name
24807         hooks from context.
24808         (emit_diagnostic): Use permissive_error_option.
24809         (permerror): Likewise.
24810         * diagnostic.h: Don't include options.h.
24811         (struct diagnostic_context): Add n_opts, opt_permissive,
24812         inhibit_warnings, warn_system_headers, option_enabled and
24813         option_name fields.  Change classify_diagnostic to a pointer.
24814         * opts-diagnostic.h: New file.
24815         * opts.c: Include opts-diagnostic.h.
24816         (common_handle_option): Set global_dc fields for -Wfatal-errors,
24817         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
24818         (option_name): New function.
24819         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
24820         (c_common_handle_option): Set global_dc->permissive for
24821         -fpermissive.
24822         * c-common.c (c_cpp_error): Save and restore
24823         global_dc->warn_system_headers, not variable warn_system_headers.
24824         * toplev.c: Include opts-diagnostic.h.
24825         (general_init): Update call to diagnostic_initialize.  Set
24826         global_dc->show_column, global_dc->option_enabled and
24827         global_dc->option_name.
24828         (process_options): Don't set global_dc fields here.
24829         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
24830         (diagnostic.o, opts.o, toplev.o): Update dependencies.
24831
24832 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
24833
24834         * config/picochip/picochip.md (movsi): Split a movsi from a
24835         const after reload.
24836
24837 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24838
24839         * ggc-zone.c: Update copyright year.
24840         (poison_region): Mark memory for Valgrind as undefined before
24841         memset () call and inaccessible afterwards.
24842         (ggc_pch_total_size): Change type of i to int.
24843
24844 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24845
24846         * ggc-common.c (ggc_free_overhead): Allow empty slot.
24847
24848 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
24849
24850         * ggc-common.c: Update copyright year.
24851         (ggc_rlimit_bound): Remove prototype.  Compile only if
24852         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
24853         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
24854         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
24855         (ggc_min_heapsize_heuristic): Likewise.
24856
24857 2010-05-26  Richard Guenther  <rguenther@suse.de>
24858
24859         PR rtl-optimization/44164
24860         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
24861         no-common access-path disambiguation.
24862         (indirect_ref_may_alias_decl_p): Adjust.
24863         (indirect_refs_may_alias_p): Likewise.
24864         (refs_may_alias_p_1): Likewise.
24865
24866 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24867
24868         * c-typeck.c: Do not include expr.h.
24869
24870 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24871
24872         * rtl.h (decl_default_tls_model): Move prototype from here...
24873         * output.h: ...to here.
24874         * c-decl.c: Do not include rtl.h.
24875         * c-pragma.c: Likewise.
24876         * c-parser.c: Likewise.
24877         * c-gimplify.c: Likewise.  And also not hard-reg-set.
24878         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
24879         FIXME note for it.  Add a FIXME note for expr.h.
24880         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
24881         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
24882         defined.
24883
24884 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
24885
24886         PR target/44199
24887         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
24888         or total_size is larger than red zone size for non-V4 ABI, emit a
24889         stack_tie resp. frame_tie insn before stack pointer restore.
24890         * config/rs6000/rs6000.md (frame_tie): New insn.
24891
24892 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
24893
24894         * function.h (struct function): Add can_throw_non_call_exceptions bit.
24895         * lto-streamer-in.c (input_function): Stream it in.
24896         * lto-streamer-out.c (output_function): Stream it out.
24897         * function.c (allocate_struct_function): Set it.
24898         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
24899         for flag_non_call_exceptions.
24900         * cfgbuild.c (control_flow_insn_p): Likewise.
24901         (make_edges): Likewise.
24902         * cfgexpand.c (expand_stack_alignment): Likewise.
24903         * combine.c (distribute_notes): Likewise.
24904         * cse.c (cse_extended_basic_block): Likewise.
24905         * except.c (insn_could_throw_p): Likewise.
24906         * gcse.c (simple_mem): Likewise.
24907         * ipa-pure-const.c (check_call): Likewise.
24908         (check_stmt ): Likewise.
24909         * lower-subreg.c (lower-subreg.c): Likewise.
24910         * optabs.c (emit_libcall_block): Likewise.
24911         (prepare_cmp_insn): Likewise.
24912         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
24913         * postreload.c (rest_of_handle_postreload): Likewise.
24914         * reload1.c (reload_as_needed): Likewise.
24915         (emit_input_reload_insns): Likewise.
24916         (emit_output_reload_insns): Likewise.
24917         (fixup_abnormal_edges): Likewise.
24918         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
24919         * store-motion.c (find_moveable_store): Likewise.
24920         * tree-eh.c (stmt_could_throw_p): Likewise.
24921         (tree_could_throw_p): Likewise.
24922         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
24923         * config/arm/arm.c (arm_expand_prologue): Likewise.
24924         (thumb1_expand_prologue): Likewise.
24925         * config/rx/rx.md (cbranchsf4): Likewise.
24926         (cmpsf): Likewise.
24927         * config/s390/s390.c (s390_emit_prologue): Likewise.
24928         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
24929         (inline_forbidden_into_p): New predicate.
24930         (expand_call_inline): Use it to forbid inlining.
24931         (tree_can_inline_p): Likewise.
24932
24933 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24934
24935         * config/i386/i386-c.c: Do not include rtl.h.
24936         * config/i386/t-i386: Update dependencies.
24937
24938 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24939
24940         * attribs.c: Do not include rtl.h.
24941         * Makefile.in: Update dependencies.
24942
24943 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
24944
24945         * double-int.h (double_int_and): New.
24946         * combine.c (try_combine): Clean up, use double_int_* and
24947         immed_double_int_const functions.
24948
24949 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24950
24951         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
24952         stderr to /dev/null instead of grep -q.
24953         * configure: Regenerate.
24954
24955 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24956
24957         * Makefile.in (EXCEPT_H): Fix typo.
24958
24959 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
24960
24961         * ira-build.c (update_conflict_hard_reg_costs): New.
24962         (ira_build): Call update_conflict_hard_reg_costs.
24963
24964 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
24965
24966         PR debug/41371
24967         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
24968         ENABLE_CHECKING.
24969         (intersect_loc_chains): Walk the s2var's loc_chain together
24970         with s1node chain as long as the locations are equal, don't
24971         call find_loc_in_1pdv in that case.
24972
24973         PR debug/42801
24974         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
24975         (copy_bind_expr): ... instead of here.
24976         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
24977         if the block hasn't been remapped.
24978         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
24979         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
24980
24981 2010-05-25  Richard Guenther  <rguenther@suse.de>
24982
24983         PR middle-end/44069
24984         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
24985         out-of-bounds array accesses.
24986
24987 2010-05-25  Richard Guenther  <rguenther@suse.de>
24988
24989         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
24990         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
24991         (run_gcc): Re-organize to make cleanup easier.
24992
24993 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24994
24995         * config/s390/s390.c (optimization_options): Fix and move the
24996         flag_prefetch_loop_arrays override ...
24997         (override_options): ... here.
24998
24999 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
25000
25001         * diagnostic.c: Don't include plugin.h.
25002         (diagnostic_report_diagnostic): Don't handle plugins specially
25003         here.  Pass context to internal_error callback.
25004         * diagnostic.h (struct diagnostic_context): Add context parameter
25005         to internal_error callback.
25006         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
25007         * plugin.h (struct diagnostic_context): Declare.
25008         (warn_if_plugins, plugins_internal_error_function): Declare.
25009         * toplev.c (general_init): Set global_dc->internal_error.
25010         * Makefile.in (diagnostic.o): Update dependencies.
25011
25012 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
25013
25014         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
25015         * config/rs6000/t-darwin64: New.
25016         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
25017         build crt2.
25018
25019 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
25020
25021         PR 44203
25022         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
25023         match the original (and intended) behaviour before r159557.  This
25024         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
25025         in two ways.
25026
25027 2010-05-25  Richard Guenther  <rguenther@suse.de>
25028
25029         * doc/invoke.texi: Document -Ofast.
25030         * target.h (struct gcc_target): Add handle_ofast.
25031         * target-def.h (TARGET_HANDLE_OFAST): Add.
25032         (TARGET_INITIALIZER): Adjust.
25033         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
25034         * common.opt (Ofast): Add.
25035
25036 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25037
25038         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
25039         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
25040
25041 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25042
25043         PR target/43610
25044         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
25045         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
25046         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
25047         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
25048
25049 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
25050
25051         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
25052         DW_OP_minus with negated offset instead of DW_OP_plus.
25053         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
25054
25055 2010-05-25  Wei Guozhi  <carrot@google.com>
25056
25057         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
25058         tst instruction and a new alternative.
25059         * config/arm/constraints.md (Pu): New constraint.
25060
25061 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
25062
25063         * function.c (assign_stack_local_1): Initialize variable
25064         to avoid warning when bootstrapping at -O3.
25065
25066 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
25067
25068         * configure.ac (all_lang_makefiles): Remove everything related to it.
25069         * configure: Regenerate.
25070         * Makefile.in: Fix reference to ada Make-lang.in.
25071         Remove support for LANG_MAKEFILES.
25072
25073 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
25074             Sandra Loosemore  <sandra@codesourcery.com>
25075
25076         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
25077         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
25078         description.  Add arm_neon_fp16_ok.
25079         (Add Options): Add arm_neon and arm_neon_fp16.
25080
25081 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
25082
25083         * diagnostic.c: Don't include flags.h.
25084         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
25085         context parameters.  Check flags in the context passed as a parameter.
25086         (diagnostic_build_prefix): Add context parameter.  Check
25087         show_column flag in context.
25088         (diagnostic_action_after_output): Check fatal_errors flag in context.
25089         (diagnostic_report_current_module): Check show_column flag in context.
25090         (default_diagnostic_starter): Update call to
25091         diagnostic_build_prefix.
25092         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
25093         (emit_diagnostic): Pass context to permissive_error_kind.
25094         (permerror): Pass context to permissive_error_kind.
25095         * diagnostic.h (struct diagnostic_context): Add show_column,
25096         pedantic_errors, permissive and fatal_errors fields.
25097         (diagnostic_build_prefix): Update prototype.
25098         * langhooks.c
25099         * toplev.c (process_options): Set flags in global_dc from
25100         flag_show_column, flag_pedantic_errors, flag_permissive,
25101         flag_fatal_errors.
25102         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
25103         to diagnostic_build_prefix.
25104         * Makefile.in (diagnostic.o): Update dependencies.
25105
25106 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
25107
25108         * config/i386/ia32intrin.h (__crc32q): Define only if
25109         __SSE4_2__ is defined.
25110
25111 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
25112
25113         PR target/44132
25114         PR middle-end/43602
25115         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
25116         DECL_VISIBILITY_SPECIFIED.
25117         (emutls_decl): Set DECL_PRESERVE_P and copy
25118         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
25119         (emutls_finalize_control_var): New callback.
25120         (emutls_finish): Finalize emutls control variables.
25121         * toplev.c (compile_file): Move the call to emutls_finish ()
25122         before varpool_assemble_pending_decls ().
25123
25124 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
25125
25126         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
25127         added to the preprocessor condition.
25128
25129 2010-05-24  Paul Brook  <paul@codesourcery.com>
25130
25131         * gengtype-lex.l: Add HARD_REG_SET.
25132         * expr.c (expand_expr_real_1): Record writes to hard registers.
25133         * function.c (rtl_data): Add asm_clobbers.
25134         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
25135         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
25136         Use crtl->asm_clobbers.
25137
25138 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25139
25140         * doc/makefile.texi (Makefile): Mention stages 'profile'
25141         and 'feedback' for profiledbootstrap.
25142
25143 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
25144
25145         PR target/44245
25146         * config/i386/i386.c (def_builtin): Properly check
25147         OPTION_MASK_ISA_64BIT.
25148
25149 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
25150
25151         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
25152         typedefs with different but compatible types.  Allow duplicate
25153         typedefs with the same type except for pedantic non-C1X, but give
25154         warning for variably modified types.
25155         * c-typeck.c (tagged_types_tu_compatible_p,
25156         function_types_compatible_p, type_lists_compatible_p,
25157         comptypes_internal): Add parameter different_types_p; set
25158         *different_types_p for different but compatible types.  All
25159         callers changed.
25160         (comptypes_check_different_types): New.
25161         * c-tree.h (comptypes_check_different_types): Declare.
25162
25163 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25164
25165         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
25166         * jump.c: Include basic-block.h.
25167         * profile.c: Likewise.
25168         * tree-profile.c: Likewise.
25169         * coverage.c: Likewise.
25170         * basic-block.h (optimize_function_for_size_p): Move to function.h.
25171         (optimize_function_for_speed_p): Likewise.
25172         * function.h (optimize_function_for_size_p,
25173         optimize_function_for_speed_p): Moved here from basic-block.h.
25174         * Makefile.in: Update dependencies.
25175
25176 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25177
25178         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
25179         before calling make; allow override through $MAKE.
25180         * doc/invoke.texi (Optimize Options): Document override.
25181
25182 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
25183
25184         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
25185         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25186         (rs6000_mode_dependent_address_ptr): Make static.
25187         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25188         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
25189         Remove.
25190
25191 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
25192
25193         PR target/43869
25194         * config/i386/i386.c: Make sure that the correct regparm is passed.
25195
25196 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25197
25198         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
25199         * sbitmap.c: ...to here to internalize sbitmap element access.
25200         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
25201         Explain why basic-block.h is included.
25202         * function.h: Include tm.h for CUMULATIVE_ARGS.
25203         * Makefile.in: Update dependencies.
25204
25205 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25206
25207         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
25208         New core types.
25209         * sbitmap.h (struct sbitmap_def): Do not typedef here.
25210         * sbitmap.c: Include sbitmap.h.
25211         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
25212         hard-reg-set.h.  Split everything related to regsets out from here...
25213         * regset.h: ...to here.  New file.
25214         * df.h: Include regset.h and sbitmap.h.
25215         * tree-flow.h: Likewise.
25216         * cfgloop.h: Likewise.
25217         * except.h: Do not include sbitmap.h.  Include hashtab.h.
25218         * cgraph.h: Include vec.h and function.h.
25219         * reload.h (struct insn_chain): Change types of live_throughout
25220         and dead_or_set from regset_head to bitmap_head.
25221         (compute_use_by_pseudos): Be defined also if regset.h is not included.
25222         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
25223         spilled_regs from regset_head to bitmap_head to avoid dependency
25224         in regset.h.
25225         * sel-sched-ir.h: Include regset.h.
25226         * reload.c: Include df.h before reload.h.
25227         * caller-save.c: Likewise.
25228         * reload1.c: Likewise.
25229         * ira.c: Likewise.
25230         (mark_elimination): Update type of r to bitmap, consistent with
25231         DF_LR_IN.
25232         * dominance.c: Include bitmap.h.
25233         * modulo-sched.c: Include df.h.
25234         * cfganal.c: Include bitmap.h and sbitmap.h.
25235         * cfgbuild.c: Include sbitmap.h.
25236         * lcm.c: Include sbitmap.h.
25237         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
25238         * domwalk.c: Include sbitmap.h, exclude ggc.h.
25239         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
25240         * cselib.c: Include bitmap.h.
25241         * tree-optimize.c: Include regset.h.
25242         * stmt.c: Include bitmap.h.
25243         * Makefile.in: Update dependencies.
25244
25245 2010-05-22  Jan Hubicka  <jh@suse.cz>
25246
25247         * cgraph.h (struct varpool_node): Add same_comdat_group.
25248         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
25249         pointer.
25250         (output_varpool): Update call of lto_output_varpool_node.
25251         (input_varpool): Read same_comdat_group pointer.
25252         (input_varpool_1): Fixup same_comdat_group pointer.
25253         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
25254         group is needed, all are.
25255         * varpool.c (varpool_remove_node): Remove node from same comdat group
25256         linklist too.
25257         (varpool_analyze_pending_decls): Walk same comdat groups.
25258
25259 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25260
25261         * rtl.h (union rtunion_def): Remove rt_bit member.
25262         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
25263         * print-rtl (print_rtx): Do not print the member.
25264         * gengtype.c (adjust_field_rtx_def): Do not handle it.
25265         * gengenrtl.c (type_from_format): Likewise.
25266         (accessor_from_format): Likewise.
25267
25268 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
25269
25270         * dbgcnt.c: Include toplev.h instead of errors.h.
25271         * ira-emit.c: Don't include errors.h.
25272         * ira.c: Include toplev.h instead of errors.h.
25273         * lto-compress.c: Include toplev.h instead of errors.h.
25274         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
25275         ira.o, dbgcnt.o): Update dependencies.
25276
25277 2010-05-22  Richard Guenther  <rguenther@suse.de>
25278
25279         * gimple.c (gimple_types_compatible_p): Check type qualifications
25280         before merging pointer to complete and pointer to incomplete type.
25281         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
25282         we use our own resolution algorithm.  The gold linker plugin
25283         doesn't do the job we want it to do here.
25284
25285 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
25286
25287         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25288         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25289         (sparc_mode_dependent_address_p): New function.
25290
25291 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25292
25293         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
25294
25295         * timevar.c: Do not include any core headers.
25296         (timevar_print): De-i18n-ize.
25297         (print_time): Likewise.
25298         * timevar.h (timevar_push, timevar_pop): Make inline functions.
25299
25300 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
25301
25302         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
25303         langhooks-def.h.
25304         (diagnostic_initialize): Initialize x_data not last_function.
25305         (diagnostic_report_current_function): Move to tree-diagnostic.c.
25306         (default_diagnostic_starter): Call
25307         diagnostic_report_current_module not
25308         diagnostic_report_current_function.
25309         (diagnostic_report_diagnostic): Initialize x_data not
25310         abstract_origin.
25311         (verbatim): Likewise.
25312         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
25313         x_data.
25314         (struct diagnostic_context): Change last_function to x_data.
25315         (diagnostic_auxiliary_data): Replace with
25316         diagnostic_context_auxiliary_data and
25317         diagnostic_info_auxiliary_data.
25318         (diagnostic_last_function_changed, diagnostic_set_last_function,
25319         diagnostic_report_current_function): Move to tree-diagnostic.h.
25320         (print_declaration, dump_generic_node, print_generic_stmt,
25321         print_generic_stmt_indented, print_generic_expr,
25322         print_generic_decl, debug_c_tree, dump_omp_clauses,
25323         print_call_name, debug_generic_expr, debug_generic_stmt,
25324         debug_tree_chain, default_tree_printer): Move to
25325         tree-pretty-print.h.
25326         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
25327         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
25328         gimple-pretty-print.h.
25329         * pretty-print.c: Don't include tree.h
25330         (pp_base_format): Don't handle %K here.
25331         (pp_base_tree_identifier): Move to tree-pretty-print.c.
25332         * pretty-print.h (text_info): Change abstract_origin to x_data.
25333         (pp_tree_identifier, pp_unsupported_tree,
25334         pp_base_tree_identifier): Move to tree-pretty-print.h.
25335         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
25336         tree-pretty-print.h: New files.
25337         * tree-pretty-print.c: Include tree-pretty-print.h.
25338         (percent_K_format): New.  Moved from pretty-print.c.
25339         (pp_base_tree_identifier): Move from pretty-print.c.
25340         * c-objc-common.c: Include tree-pretty-print.h.
25341         (c_tree_printer): Handle %K here.
25342         * langhooks.c: Include tree-diagnostic.h.
25343         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
25344         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
25345         (default_tree_printer): Handle %K using percent_K_format.
25346         (general_init): Use default_tree_diagnostic_starter.
25347         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
25348         (free_lang_data): Use default_tree_diagnostic_starter.
25349         * c-pretty-print.c: Include tree-pretty-print.h.
25350         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25351         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25352         * dwarf2out.c: Include tree-pretty-print.h.
25353         * except.c: Include tree-pretty-print.h.
25354         * gimple-pretty-print.c: Include tree-pretty-print.h and
25355         gimple-pretty-print.h.
25356         * gimplify.c: Include tree-pretty-print.h.
25357         * graphite-poly.c: Include tree-pretty-print.h and
25358         gimple-pretty-print.h.
25359         * ipa-cp.c: Include tree-pretty-print.h.
25360         * ipa-inline.c: Include gimple-pretty-print.h.
25361         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25362         * ipa-pure-const.c: Include gimple-pretty-print.h.
25363         * ipa-struct-reorg.c: Include tree-pretty-print.h and
25364         gimple-pretty-print.h.
25365         * ipa-type-escape.c: Include tree-pretty-print.h.
25366         * print-rtl.c: Include tree-pretty-print.h.
25367         * print-tree.c: Include gimple-pretty-print.h.
25368         * sese.c: Include tree-pretty-print.h.
25369         * tree-affine.c: Include tree-pretty-print.h.
25370         * tree-browser.c: Include tree-pretty-print.h.
25371         * tree-call-cdce.c: Include gimple-pretty-print.h.
25372         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25373         * tree-chrec.c: Include tree-pretty-print.h.
25374         * tree-data-ref.c: Include tree-pretty-print.h and
25375         gimple-pretty-print.h.
25376         * tree-dfa.c: Include tree-pretty-print.h.
25377         * tree-if-conv.c: Include tree-pretty-print.h and
25378         gimple-pretty-print.h.
25379         * tree-inline.c: Include tree-pretty-print.h.
25380         * tree-into-ssa.c: Include tree-pretty-print.h and
25381         gimple-pretty-print.h.
25382         * tree-nrv.c: Include tree-pretty-print.h.
25383         * tree-object-size.c: Include tree-pretty-print.h and
25384         gimple-pretty-print.h.
25385         * tree-outof-ssa.c: Include tree-pretty-print.h and
25386         gimple-pretty-print.h.
25387         * tree-parloops.c: Include tree-pretty-print.h and
25388         gimple-pretty-print.h.
25389         * tree-predcom.c: Include tree-pretty-print.h and
25390         gimple-pretty-print.h.
25391         * tree-scalar-evolution.c: Include tree-pretty-print.h and
25392         gimple-pretty-print.h.
25393         * tree-sra.c: Include tree-pretty-print.h.
25394         * tree-ssa-address.c: Include tree-pretty-print.h.
25395         * tree-ssa-alias.c: Include tree-pretty-print.h.
25396         * tree-ssa-ccp.c: Include tree-pretty-print.h and
25397         gimple-pretty-print.h.
25398         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
25399         * tree-ssa-copy.c: Include tree-pretty-print.h and
25400         gimple-pretty-print.h.
25401         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
25402         * tree-ssa-dce.c: Include tree-pretty-print.h and
25403         gimple-pretty-print.h.
25404         * tree-ssa-dom.c: Include tree-pretty-print.h and
25405         gimple-pretty-print.h.
25406         * tree-ssa-dse.c: Include gimple-pretty-print.h.
25407         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
25408         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
25409         * tree-ssa-live.c: Include tree-pretty-print.h and
25410         gimple-pretty-print.h.
25411         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
25412         gimple-pretty-print.h.
25413         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
25414         gimple-pretty-print.h.
25415         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
25416         gimple-pretty-print.h.
25417         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
25418         gimple-pretty-print.h.
25419         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
25420         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
25421         * tree-ssa-operands.c: Include tree-pretty-print.h and
25422         gimple-pretty-print.h.
25423         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
25424         gimple-pretty-print.h.
25425         * tree-ssa-pre.c: Include tree-pretty-print.h and
25426         gimple-pretty-print.h.
25427         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
25428         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
25429         gimple-pretty-print.h.
25430         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
25431         gimple-pretty-print.h.
25432         * tree-ssa-sink.c: Include gimple-pretty-print.h.
25433         * tree-ssa-ter.c: Include tree-pretty-print.h and
25434         gimple-pretty-print.h.
25435         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
25436         * tree-ssa.c: Include tree-pretty-print.h and
25437         gimple-pretty-print.h.
25438         * tree-stdarg.c: Include gimple-pretty-print.h.
25439         * tree-switch-conversion.c: Include gimple-pretty-print.h.
25440         * tree-tailcall.c: Include tree-pretty-print.h and
25441         gimple-pretty-print.h.
25442         * tree-vect-data-refs.c: Include tree-pretty-print.h and
25443         gimple-pretty-print.h.
25444         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
25445         gimple-pretty-print.h.
25446         * tree-vect-loop.c: Include tree-pretty-print.h and
25447         gimple-pretty-print.h.
25448         * tree-vect-patterns.c: Include gimple-pretty-print.h.
25449         * tree-vect-slp.c: Include tree-pretty-print.h and
25450         gimple-pretty-print.h.
25451         * tree-vect-stmts.c: Include tree-pretty-print.h and
25452         gimple-pretty-print.h.
25453         * tree-vectorizer.c: Include tree-pretty-print.h.
25454         * tree-vrp.c: Include tree-pretty-print.h and
25455         gimple-pretty-print.h.
25456         * value-prof.c: Include tree-pretty-print.h and
25457         gimple-pretty-print.h.
25458         * var-tracking.c: Include tree-pretty-print.h.
25459         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
25460         (tree-diagnostic.o): New dependencies.
25461         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
25462         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
25463         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
25464         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
25465         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
25466         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
25467         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
25468         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
25469         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
25470         tree-ssa-address.o, tree-ssa-loop-niter.o,
25471         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
25472         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
25473         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
25474         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
25475         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
25476         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
25477         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
25478         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
25479         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
25480         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
25481         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
25482         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
25483         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
25484         tree-switch-conversion.o, var-tracking.o, value-prof.o,
25485         cfgexpand.o, pretty-print.o): Update dependencies.
25486
25487 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
25488
25489         * tree-ssa-structalias.c: Remove tm_p.h from include.
25490
25491 2010-05-21  Jeff Law  <law@redhat.com>
25492
25493         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
25494
25495 2010-05-21  Jason Merrill  <jason@redhat.com>
25496
25497         * tree-eh.c (cleanup_is_dead_in): New.
25498         (lower_try_finally): Don't generate a dead cleanup region.
25499         (lower_cleanup): Likewise.
25500
25501 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25502
25503         PR debug/44223
25504         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
25505         unchain each use from the cyclic next_regno_use chain first.
25506
25507 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25508
25509         * real: Do not include gmp.h, mpfr.h, and mpc.h.
25510         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
25511         (real_value_negate, real_value_abs): New prototypes.
25512         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
25513         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
25514         new include file for interface between MPFR and REAL_VALUE_TYPE.
25515         * real.c: Include realmpfr.h.
25516         (real_arithmetic2): Remove legacy function.
25517         (real_value_negate): New.
25518         (real_value_abs): New.
25519         (mfpr_from_real, real_from_mpfr): Move from here...
25520         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
25521         * builtins.c: Include realmpfr.h.
25522         * fold-const.c: Include realmpfr.h.
25523         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
25524         (fold_negate_const): Likewise.
25525         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
25526         * toplev.c: Include realmpfr.h.
25527         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
25528         and real_value_negate.
25529         * fixed-value.c (check_real_for_fixed_mode): Likewise.
25530         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
25531         (vfp3_const_double_index): Likewise.
25532         (arm_print_operand): Likewise.
25533         * Makefile.in: Update dependencies.
25534
25535 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25536
25537         * config/s390/s390.c (override_options): Increase the default
25538         of max-completely-peel-times.
25539
25540 2010-05-21  Julian Brown  <julian@codesourcery.com>
25541             Mark Mitchell  <mark@codesourcery.com>
25542
25543         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
25544         sibling calls for Thumb-1.
25545         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
25546         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
25547         Thumb-2.
25548         (*call_insn, *call_value_insn): Don't use for Thumb-2.
25549         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
25550         for Thumb-2.
25551         (return): New expander.
25552         (*arm_return): New name for ARM return insn.
25553         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
25554
25555 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
25556
25557         * config.gcc (sparc64-*-rtems*): New target.
25558
25559 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25560
25561         * tree.c (build_function_decl_skip_args): Fix grammar.
25562         (build_function_type_list_1): Fix typos, adjust formatting.
25563
25564 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25565
25566         * tree.h: Include real.h and fixed-value.h as basic datatypes.
25567         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
25568         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
25569         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
25570         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
25571         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
25572         tree-pretty-print.c, tree-loop-distribution.c,
25573         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
25574         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
25575         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
25576         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
25577         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
25578         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
25579         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
25580         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
25581         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
25582         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
25583         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
25584         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
25585         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
25586         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
25587         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
25588         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
25589         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
25590         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
25591         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
25592         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
25593         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
25594         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
25595         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
25596         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
25597         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
25598         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
25599         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
25600         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
25601         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
25602         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
25603         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
25604         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
25605         config/score/score7.c, config/score/score.c, config/arm/arm.c,
25606         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
25607         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
25608         config/bfin/bfin.c: Clean up redundant includes.
25609         * Makefile.in: Update accordingly.
25610
25611 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25612
25613         PR middle-end/44204
25614         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
25615         statement has no arguments.
25616
25617 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
25618
25619         PR/44139
25620         * varasm.c (emutls_decl): Merge attributes to new decl.
25621
25622 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
25623
25624         PR middle-end/44101
25625         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
25626         around the uniquized constructor if its type requires a conversion.
25627
25628 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25629
25630         PR debug/44205
25631         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
25632         at -O0 goto_locus of any of the incoming edges differs from
25633         goto_locus of outgoing edge, or gimple_location of any of the
25634         labels differs.
25635
25636 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
25637
25638         * ira.c (ira_non_ordered_class_hard_regs): Define.
25639         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
25640         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
25641         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
25642         cost of unaligned hard regs when allocating multi-reg pseudos.
25643
25644 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
25645
25646         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
25647         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
25648         for TARGET_NO_FLOAT.
25649         * config/mips/mips.c (mips_file_start): Expand conditional expression
25650         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
25651         (mips_override_options): Move -mno-float override -msoft-float and
25652         -mhard-float.
25653         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
25654         Condition(TARGET_SUPPORTS_NO_FLOAT).
25655         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
25656         __mips_no_float here.
25657         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
25658         (TARGET_SUPPORTS_NO_FLOAT): Define.
25659         * config/mips/sdemtk.opt: Delete.
25660
25661 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
25662
25663         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
25664
25665 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
25666
25667         PR target/43733
25668         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
25669         * configure: Regenerate.
25670         * config.in: Regenerate.
25671         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
25672         instead of sahf only for 64bit targets.
25673
25674 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25675
25676         PR debug/44178
25677         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
25678         setup_ref_regs for DEBUG_INSNs.
25679
25680 2010-05-20  Jan Hubicka  <jh@suse.cz>
25681
25682         PR middle-end/44197
25683         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
25684
25685 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
25686
25687         PR bootstrap/43870
25688         * df-scan.c (df_ref_compare): Stabilize sort.
25689
25690 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25691
25692         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
25693         argument.  Don't use DW_OP_piece if offset is non-zero,
25694         put offset into second DW_OP_bit_piece argument.
25695         (dw_sra_loc_expr): Adjust callers.  For memory expressions
25696         compute offset.
25697
25698 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
25699
25700         PR target/44202
25701         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
25702         settings for 16-bit-constant "addo" alternative.
25703
25704 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
25705
25706         * config/mips/mips-dsp.md (add<DSPV:mode>3,
25707         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
25708
25709         PR target/43764
25710         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
25711         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
25712         Use it.
25713
25714 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
25715
25716         * diagnostic.c (FLOAT, FFS): Don't undefine.
25717         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
25718         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
25719         include ordering.
25720
25721 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25722
25723         * combine.c (propagate_for_debug): Call make_compound_operation
25724         on the source value.
25725         (try_combine): When implementing a split chosen by find_split_point,
25726         either copy i2src or set it to null.  Assert that i2src is not null
25727         before substituting into CALL_INSN_FUNCTION_USAGE.
25728
25729 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
25730
25731         * double-int.h (double_int_ior): New function.
25732         * tree.h (build_int_cst_wide_type): Remove.
25733         * tree.c (build_int_cst_wide_type): Remove.
25734         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
25735         of build_int_cst_wide_type.
25736         * stor-layout.c (set_sizetype): (Ditto.).
25737         * dojump.c (do_jump): Use build_int_cstu instead of
25738         build_int_cst_wide_type.
25739
25740 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
25741
25742         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
25743         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
25744         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
25745         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
25746         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
25747         propagate the 'data' argument to copy_tree_r.
25748         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
25749         Propagate 'data' argument to walk_tree.
25750         (copy_if_shared): New function.
25751         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
25752         (unmark_visited): New function.
25753         (unshare_body): Call copy_if_shared instead of doing it manually.
25754         (unvisit_body): Call unmark_visited instead of doing it manually.
25755
25756 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
25757
25758         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
25759         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
25760         * hooks.c: Likewise.
25761         * target-def.h (TARGET_FOLD_BUILTIN): Define to
25762         hook_tree_tree_int_treep_bool_null.
25763         * target.h (struct gcc_target): Update signature of fold_builtin
25764         field.
25765         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
25766         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
25767         instead of the call expression.
25768         (fold_builtin_call_array): Pass n and argarray directly.
25769         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
25770         consing a list.
25771         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
25772         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
25773         `i' and use it in place of `arity'.
25774         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
25775         Dereference `args' directly.
25776         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
25777
25778 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25779
25780         * doc/sourcebuild.texi (Effective-Target Keywords): Document
25781         3dnow, sse3, sse2.
25782         (Directives): Document optional dg-require-effective-target
25783         selector.
25784
25785 2010-05-19  Richard Guenther  <rguenther@suse.de>
25786
25787         PR lto/44196
25788         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
25789
25790 2010-05-19  Richard Guenther  <rguenther@suse.de>
25791
25792         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
25793         * common.opt (fwhopr=): New.
25794         * opts.c (common_handle_option): Handle OPT_fwhopr.
25795         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
25796         * collect2.c (main): Match -fwhopr*.
25797         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
25798         Execute ltrans stage in parallel when jobs is bigger than 1.
25799
25800 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25801
25802         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
25803         pentiumpro on Solaris 8/x86 with Sun as.
25804         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
25805         hidden alias bug.
25806         (gcc_cv_as_ix86_quad): Check for .quad directive.
25807         * configure: Regenerate.
25808         * config.in: Regenerate.
25809         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
25810
25811 2010-05-19  Martin Jambor  <mjambor@suse.cz>
25812
25813         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
25814         also for indirect edges.  Actual printing moved...
25815         (ipa_print_node_jump_functions_for_edge): ...here.
25816         (ipa_compute_jump_functions): Renamed to
25817         ipa_compute_jump_functions_for_edge and made static.
25818         (ipa_compute_jump_functions): New function.
25819         (make_edge_direct_to_target): Check if the number of arguments on
25820         the newly direct edge is the same as the number of parametrs of
25821         the callee.
25822         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
25823         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
25824         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
25825         analysis functions unconditionally, call the new
25826         ipa_analyze_params_uses on the node instead of every edge.
25827
25828 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
25829
25830         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
25831         to tree.
25832         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
25833         also checks for a constant int vs.  non-constant but
25834         loop-invariant steps.
25835         (find_or_create_group): Change the sort algorithm to only consider
25836         steps that are constant ints.
25837         (idx_analyze_ref): Adopt code to handle a tree instead of a
25838         HOST_WIDE_INT for step.
25839         (gather_memory_references_ref): Handle tree instead of int and be
25840         prepared to see a NULL_TREE.
25841         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
25842         prefetches if the step cannot be calculated at compile time.
25843         (issue_prefetch_ref): Issue prefetches for non-constant but
25844         loop-invariant steps.
25845
25846 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25847
25848         Revert:
25849         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25850
25851         * tree.h (build_call_list): Remove.
25852         * tree.c (build_call_list): Remove.
25853
25854 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
25855
25856         * tree.h (build_call_list): Remove.
25857         * tree.c (build_call_list): Remove.
25858
25859 2010-05-18  Jan Hubicka  <jh@suse.cz>
25860
25861         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
25862
25863 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
25864
25865         PR rtl-optimization/43332
25866         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
25867
25868 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
25869
25870         * tree.h (build_int_cstu): Implement as static inline.
25871         * tree.c (build_int_cstu): Remove function.
25872         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
25873         sign extended.
25874
25875 2010-05-18  Richard Guenther  <rguenther@suse.de>
25876
25877         PR lto/44143
25878         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
25879         (debug): Initialize from -save-temps.
25880         (collect_execute): Print command-line when verbose.
25881         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
25882         for ltrans invocation.  Produce -dumpbase flag again.
25883         (process_args): Remove.
25884         (main): Simplify.
25885         * collect2.c (maybe_run_lto_and_relink): Only pass object
25886         files to lto-wrapper.
25887         * gcc.c (LINK_COMMAND_SPEC): Likewise.
25888
25889 2010-05-18  Jan Hubicka  <jh@suse.cz>
25890
25891         * opts.c (decode_options): Do not disable whopr at ipa_cp.
25892         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
25893
25894 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
25895
25896         PR lto/44184
25897         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
25898         in a GIMPLE_ASM.
25899         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
25900         in a GIMPLE_ASM.
25901
25902 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
25903
25904         PR debug/41371
25905         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
25906         rtx_equal_p inline.
25907
25908 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
25909
25910         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
25911         lto-macho as lto_binary_reader.
25912
25913         * darwin.c (darwin_asm_named_section): Do not add assembler comment
25914         after .section directive; just print it before the directive instead.
25915
25916 2010-05-17  Jan Hubicka  <jh@suse.cz>
25917
25918         * cgraph.c (cgraph_create_virtual_clone): Only check
25919         versionable_function_p when not in wpa and checking is enabled.
25920         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
25921         there are no more functions to materialize.
25922
25923 2010-05-17  Jan Hubicka  <jh@suse.cz>
25924
25925         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
25926         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
25927         New functions.
25928         (output_cgraph): Call output_cgraph_opt_summary.
25929         (input_cgrpah): Call input_cgraph_opt_summary.
25930         (output_cgraph_opt_summary_p, output_node_opt_summary,
25931         input_node_opt_summary, input_cgraph_opt_section): New functions.
25932         * lto-section-in.c (lto_section_name): Add cgraphopt.
25933         * tree-inline.c (tree_function_versioning): Handle parm_num.
25934         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
25935         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
25936
25937 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
25938
25939         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
25940         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
25941         the insn to prefetch ratio heuristic to loops with known trip count.
25942
25943 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
25944
25945         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
25946         (schedule_prefetches): Do not generate a prefetch if the unroll factor
25947         is far from what is required by the prefetch.
25948
25949 2010-05-17  Jan Hubicka  <jh@suse.cz>
25950
25951         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
25952         (ipcp_estimate_growth): Likewise.
25953         (ipcp_const_param_count): Likewise.
25954         (ipcp_insert_stage): Likewise.
25955         * ipa-prop.c (visit_load_for_mod_analysis): New function.
25956         (visit_store_addr_for_mod_analysis): Set used flag.
25957         (ipa_detect_param_modifications): Set used flag for SSE params;
25958         update use of walk_stmt_load_store_addr_ops.
25959         (ipa_print_node_params): Print used flag.
25960         (ipa_write_node_info): Stream used flag.
25961         (ipa_read_node_info): Likewise.
25962         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
25963         (ipa_is_param_used): New function.
25964         (lto_ipa_fixup_call_notes): Remove unused declaration.
25965
25966 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25967
25968         PR target/44074
25969         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
25970         * configure: Regenerate.
25971         * config.in: Regenerate.
25972         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
25973         !HAVE_AS_IX86_REP_LOCK_PREFIX.
25974         Don't emit whitespace.
25975         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
25976         (*rep_movsi): Likewise.
25977         (*rep_movsi_rex64): Likewise.
25978         (*rep_movqi): Likewise.
25979         (*rep_movqi_rex64): Likewise.
25980         (*rep_stosdi_rex64): Likewise.
25981         (*rep_stossi): Likewise.
25982         (*rep_stossi_rex64): Likewise.
25983         (*rep_stosqi): Likewise.
25984         (*rep_stosqi_rex64): Likewise.
25985         (*cmpstrnqi_nz_1): Use {%;} after repz.
25986         (*cmpstrnqi_nz_rex_1): Likewise.
25987         (*cmpstrnqi_1): Likewise.
25988         (*cmpstrnqi_rex_1): Likewise.
25989         (*strlenqi_1): Use {%;} after repnz.
25990         (*strlenqi_rex_1): Likewise.
25991         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
25992         (*sync_compare_and_swap<mode>): Likewise.
25993         (sync_double_compare_and_swap<mode>): Likewise.
25994         (*sync_double_compare_and_swapdi_pic): Likewise.
25995         (sync_old_add<mode>): Likewise.
25996         (sync_add<mode>): Likewise.
25997         (sync_sub<mode>): Likewise.
25998         (sync_<code><mode>): Likewise.
25999
26000 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26001
26002         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
26003         otr_token and polymorphic.
26004         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
26005         (cgraph_clone_edge): Copy the above fields.
26006         * tree.c (get_binfo_at_offset): New function.
26007         * tree.h (get_binfo_at_offset): Declare.
26008         * ipa-prop.h (enum jump_func_type): Added known_type jump function
26009         type, reordered items, updated comments.
26010         (union jump_func_value): Added base_type field, reordered fields.
26011         (enum ipa_lattice_type): Moved down in the file.
26012         (struct ipa_param_descriptor): New field polymorphic.
26013         (ipa_is_param_polymorphic): New function.
26014         * ipa-prop.c: Include gimple.h and gimple-fold.h.
26015         (ipa_print_node_jump_functions): Print known type jump functions.
26016         (compute_complex_pass_through): Renamed to...
26017         (compute_complex_assign_jump_func): this.
26018         (compute_complex_ancestor_jump_func): New function.
26019         (compute_known_type_jump_func): Likewise.
26020         (compute_scalar_jump_functions): Create known type and complex ancestor
26021         jump functions.
26022         (ipa_note_param_call): New parameter polymorphic, set the corresponding
26023         flag in the call note accordingly.
26024         (ipa_analyze_call_uses): Renamed to...
26025         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
26026         variable var only in the block where it is used.
26027         (ipa_analyze_virtual_call_uses): New function.
26028         (ipa_analyze_call_uses): Likewise.
26029         (combine_known_type_and_ancestor_jfs): Likewise.
26030         (update_jump_functions_after_inlining): Implemented handling of a
26031         number of new jump function types combination.
26032         (print_edge_addition_message): Removed.
26033         (make_edge_direct_to_target): New function.
26034         (try_make_edge_direct_simple_call): Likewise.
26035         (try_make_edge_direct_virtual_call): Likewise.
26036         (update_call_notes_after_inlining): Renamed to...
26037         (update_indirect_edges_after_inlining): this.  Moved edge creation for
26038         indirect calls to try_make_edge_direct_simple_call, also calls
26039         try_make_edge_direct_virtual_call for virtual calls.
26040         (ipa_print_node_params): Changed the header message.
26041         (ipa_write_jump_function): Stream also known type jump functions.
26042         (ipa_read_jump_function): Likewise.
26043         (ipa_write_indirect_edge_info): Stream new fields in
26044         cgraph_indirect_call_info.
26045         (ipa_read_indirect_edge_info): Likewise.
26046         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
26047         GIMPLE_FOLD_H.
26048
26049 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26050
26051         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
26052
26053 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26054
26055         * tree.h (CALL_EXPR_ARGS): Delete.
26056         (call_expr_arglist): Delete.
26057         * tree.c (call_expr_arglist): Delete.
26058         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
26059         targetm.fold_builtin.
26060         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
26061         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
26062         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
26063         arglist parameter.  Use CALL_EXPR_ARG.
26064         (picochip_expand_builtin_3op): Likewise.
26065         (picochip_expand_builtin_2opvoid): Likewise.
26066         (picochip_expand_array_get): Likewise.
26067         (picochip_expand_array_put): Likewise.
26068         (picochip_expand_array_testport): Likewise.
26069         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
26070         rather than arglist.
26071         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
26072         CALL_EXPR_ARGS.
26073         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
26074         than TREE_VALUE and TREE_CHAIN.
26075         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
26076         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
26077         the arglist.
26078
26079 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26080
26081         PR bootstrap/42347
26082         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
26083         to have no fallthru edge.
26084
26085         PR middle-end/44102
26086         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
26087         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
26088         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
26089         add BARRIER after previous bb if needed.
26090
26091 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26092
26093         * tree.c (build_function_type_list_1): Remove bogus assert condition.
26094
26095 2010-05-17  Alan Modra  <amodra@gmail.com>
26096
26097         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
26098         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
26099         with copy_reg rtx param.
26100         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
26101         Correct cases where code for ABI_V4 did not initialise the reg
26102         used to access frame.  Also leave frame_reg_rtx as sp for large
26103         frames that save no regs.
26104
26105 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26106
26107         PR middle-end/44133
26108         * tree-sra.c (create_access_replacement): New parameter rename, mark
26109         the replaement for renaming only when it is true.
26110         (get_access_replacement): Pass true in the rename parameter of
26111         create_access_replacement.
26112         (get_unrenamed_access_replacement): New function.
26113         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
26114         replacement declaration from it.
26115
26116 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
26117
26118         * function.c (try_fit_stack_local, add_frame_space): New static
26119         functions.
26120         (assign_stack_local_1): Use them.  Look for opportunities to use
26121         space previously wasted on alignment.
26122         * function.h (struct frame_space): New.
26123         (struct rtl_data): Add FRAME_SPACE_LIST member.
26124         * reload1.c (something_was_spilled): New static variable.
26125         (alter_reg): Set it.
26126         (reload): Test it in addition to testing if the frame size changed.
26127
26128 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
26129
26130         * config/s390/s390.c: Define sane prefetch settings and activate
26131         flag_prefetch_loop_arrays on -O3.
26132         * config/s390/s390.h: Declare that read can use write prefetch.
26133
26134 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26135
26136         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
26137         build.
26138
26139 2010-05-16  Jan Hubicka  <jh@suse.cz>
26140
26141         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
26142         function body; do not check stdarg field of struct function.
26143
26144 2010-05-16  Jan Hubicka  <jh@suse.cz>
26145
26146         * cgraph.c (dump_cgraph_node): Dump versionable flag.
26147         * cgraph.h (cgraph_local_info): Add versionable flag.
26148         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
26149         (ipcp_versionable_function_p): Use it.
26150         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26151         versionable flag.
26152
26153 2010-05-16  Jan Hubicka  <jh@suse.cz>
26154
26155         * cgraph.c (cgraph_clone_node): Take decl argument and insert
26156         clone into hash when it is different from orig.
26157         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
26158         * cgraph.h (cgraph_clone_node): Update prototype.
26159         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
26160         (lto_cgraph_encoder_delete): Delete body map.
26161         (lto_cgraph_encoder_size): Move to header.
26162         (lto_cgraph_encoder_encode_body_p,
26163         lto_set_cgraph_encoder_encode_body): New.
26164         (lto_output_node): Do not take written_decls argument; output clone_of
26165         pointer.
26166         (add_node_to): Add include_body_argument; call
26167         lto_set_cgraph_encoder_encode_body on master of the clone.
26168         (add_references): Update use of add_node_to.
26169         (compute_ltrans_boundary): Likewise.
26170         (output_cgraph): Do not create written_decls bitmap.
26171         (input_node): Take nodes argument; stream in clone_of correctly.
26172         (input_cgraph_1): Update use of input_node.
26173         * lto-streamer-out.c (lto_output): Use encoder info to decide
26174         what bodies to output.
26175         * ipa-inline.c (cgraph_clone_inlined_nodes,
26176         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
26177         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
26178         (lto_cgraph_encoder_size): Define here.
26179         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
26180         Declare.
26181
26182 2010-05-16  Richard Guenther  <rguenther@suse.de>
26183
26184         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
26185         -fipa-type-escape.
26186         * ipa-type-escape.c (gate_type_escape_vars): Run when
26187         -fipa-struct-reorg runs.
26188         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
26189         * common.opt (fipa-type-escape): Remove.
26190
26191 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26192
26193         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
26194         (decode_options): Likewise.
26195         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
26196
26197 2010-05-16  Jan Hubicka  <jh@suse.cz>
26198
26199         * ipa.c (function_and_variable_visibility): Also bring local all
26200         aliases.
26201
26202 2010-05-16  Richard Guenther  <rguenther@suse.de>
26203
26204         * alias.c (nonoverlapping_memrefs_p): Remove use of
26205         IPA type-escape information.
26206
26207 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
26208
26209         * c-common.c (c_common_reswords): Add _Static_assert for C.
26210         * c-parser.c (c_token_starts_declaration,
26211         c_parser_next_token_starts_declaration,
26212         c_parser_static_assert_declaration_no_semi,
26213         c_parser_static_assert_declaration): New.
26214         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
26215         Handle static assertions if static_assert_ok.
26216         (c_parser_external_declaration, c_parser_declaration_or_fndef,
26217         c_parser_compound_statement_nostart, c_parser_label,
26218         c_parser_for_statement, c_parser_objc_methodprotolist,
26219         c_parser_omp_for_loop): All callers of
26220         c_parser_declaration_or_fndef changed.
26221         (c_parser_struct_declaration): Handle static assertions.
26222         (c_parser_compound_statement_nostart): Use
26223         c_parser_next_token_starts_declaration and
26224         c_token_starts_declaration to detect start of declarations.
26225         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
26226         Likewise.
26227
26228 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
26229
26230         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26231         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26232         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26233         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26234         (mmix_function_outgoing_value): Rename to...
26235         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
26236         (mmix_function_value_regno_p): Make static.
26237         (mmix_libcall_value): New function.
26238         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
26239         mmix_function_value_regno_p): Remove declaration.
26240
26241 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26242
26243         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
26244         BUILT_IN_ALLOCA if stack checking is enabled.
26245
26246 2010-05-16  Richard Guenther  <rguenther@suse.de>
26247
26248         * var-tracking.c (vars_copy_1): Inline ...
26249         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26250         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
26251         (variable_merge_over_cur): Adjust.  Merge asserts.
26252         (variable_merge_over_src): Likewise.
26253         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
26254         (variable_post_merge_new_vals): Merge asserts.
26255         (variable_post_merge_perm_vals): Likewise.
26256         (find_mem_expr_in_1pdv): Likewise.
26257         (dataflow_set_different_value): Remove.
26258         (onepart_variable_different_p): Merge asserts.
26259         (variable_different_p): Likewise.
26260         (dataflow_set_different_1): Inline ...
26261         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26262         (emit_notes_for_differences_1): Merge asserts.
26263
26264 2010-05-16  Richard Guenther  <rguenther@suse.de>
26265
26266         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
26267         * optabs.c (libfunc_decl_hash): Likewise.
26268         * varasm.c (emutls_decl): Likewise.
26269
26270 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
26271
26272         * c-decl.c: Don't include gimple.h.
26273         (merge_decls): Do not copy gimple_body.
26274
26275 2010-05-15  Jason Merrill  <jason@redhat.com>
26276
26277         * c.opt: Add -fnothrow-opt.
26278
26279 2010-05-15  Jan Hubicka  <jh@suse.cz>
26280
26281         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
26282         analyzed.
26283         * passes.c (ipa_write_summaries): Write all analyzed nodes.
26284
26285 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
26286
26287         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
26288         * Makefile.in: Add it.
26289         Fix all other Makefile dependencies for changes below.
26290         * tree.h: Include it instead of defining VEC primitives here.
26291         * gimple.h: Likewise.
26292         * rtl.h: Likewise.
26293         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
26294         * except.h: Include vecir.h, break dependence on tree.h.
26295
26296         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
26297         Move from here...
26298         * tree-iterator.c: ...to here.
26299         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
26300
26301         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
26302         tm_p.h.
26303         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
26304         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
26305         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
26306         tree-mudflap.h, and target.h.
26307         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
26308         predict.h, tree-inline.h, gimple.h, and langhooks.h.
26309         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
26310         Add FIXME for why gimple.h is still included (should be unnecessary
26311         since GCC 4.5 gimplification unit-at-a-time).
26312         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
26313         * c-pragma.c: Add FIXME for why function.h needs to be included just
26314         for cfun, at front-end level.
26315         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
26316         Do not include ggc.h, but include vecprim.h for VEC(char).
26317         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
26318         Explain why target.h is included.
26319         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
26320         Explain why gimple.h is included.
26321         * c-ppoutput.c: Do not include tm.h.
26322         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
26323         * c-parses.c: Explain why rtl.h is included, and that this (and only
26324         this) is also why tm.h must be included.
26325         Do not include except.h.
26326         * c-lang.c: Do not include ggc.h.
26327
26328 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
26329
26330         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
26331
26332 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
26333
26334         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
26335         unions by default if those structs and unions have no tags.  Do
26336         not condition anonymous struct and unions handling on flag_iso.
26337         Allow anonymous structs and unions for C1X.
26338         (finish_struct): Do not diagnose lack of named fields when
26339         anonymous structs and unions present for C1X.  Accept flexible
26340         array members in structure with anonymous structs or unions but no
26341         directly named fields.
26342         * doc/extend.texi (Unnamed Fields): Update.
26343
26344 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
26345
26346         * gimple.h (compare_field_offset): Rename into...
26347         (gimple_compare_field_offset): ...this.
26348         * gimple.c (compare_field_offset): Rename into...
26349         (gimple_compare_field_offset): ...this.  Compare the full access if
26350         the offset is self-referential.
26351         (gimple_types_compatible_p): Adjust for above renaming.
26352         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
26353         DECL_NONADDRESSABLE_P flag of fields before merging them.
26354
26355 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
26356
26357         * tree.h (ctor_to_list): Delete.
26358         * tree.c (ctor_to_list): Delete.
26359
26360 2010-05-15  Jan Hubicka  <jh@suse.cz>
26361
26362         * ipa-reference.c: Include toplev.h
26363         (is_proper_for_analysis): Only add to all_module_statics
26364         if it is allocated.
26365         (write_node_summary_p, stream_out_bitmap,
26366         ipa_reference_write_optimization_summary,
26367         ipa_reference_read_optimization_summary): New.
26368         (struct ipa_opt_pass_d pass_ipa_reference): Add
26369         optimization summary streaming.
26370         * lto-cgraph.c (referenced_from_this_partition_p,
26371         reachable_from_this_partition_p): New functions.
26372         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
26373         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
26374         * opts.c (decode_options): Enable ipa_reference.
26375         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
26376         * lto-streamer.h (referenced_from_this_partition_p,
26377         reachable_from_this_partition_p): Declare.
26378
26379 2010-05-15  Richard Guenther  <rguenther@suse.de>
26380
26381         PR tree-optimization/44038
26382         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
26383         taking the address of a V_C_E of a constant.
26384
26385 2010-05-14  Jan Hubicka  <jh@suse.cz>
26386
26387         * tree.h (memory_identifier_string): Remove.
26388         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
26389         (ipa_reference_global_vars_info_d): Remove statics_not_read and
26390         statics_not_written.
26391         (ipa_reference_optimization_summary_d): New structure.
26392         (ipa_reference_optimization_summary_t): New type and vector.
26393         (ipa_reference_vars_info_d): Embedd structures instead of using
26394         pointers.
26395         (reference_vars_to_consider): Remove out of GGC space.
26396         (module_statics_escape): Remove.
26397         (global_info_obstack): Rename to ...
26398         (optimization_summary_obstack): ... this one.
26399         (initialization_status_t): Remove.
26400         (memory_identifier_string): Remove.
26401         (get_reference_vars_info): Fix indenting.
26402         (set_reference_vars_info): Likewise.
26403         (get_reference_optimization_summary): New.
26404         (set_reference_optimization_summary): New.
26405         (get_global_reference_vars_info): Remove.
26406         (ipa_reference_get_read_global): Remove.
26407         (ipa_reference_get_written_global): Remove.
26408         (ipa_reference_get_not_read_global): Update.
26409         (ipa_reference_get_not_written_global): Update.
26410         (is_proper_for_analysis): Outlaw addressable.
26411         (propagate_bits): Update for new datastructures.
26412         (analyze_variable): Remove.
26413         (init_function_info): Update for new datastructures.
26414         (clean_function_local_data): Remove.
26415         (clean_function): Remove.
26416         (copy_global_bitmap): Use optimizations_summary_obstack.
26417         (duplicate_node_data): Duplicate optimization summary only.
26418         (remove_node_data): Remove optimization summary only.
26419         (generate_summary): Do not analyze variables; do not compute
26420         module_statics_escape; do not prune solutions by it.
26421         (read_write_all_from_decl): Fix typos in comments.
26422         (propagate): Doscover readonly and nonaddressable first;
26423         update for new datastructures; share global bitmaps.
26424         * ipa-reference.h (ipa_reference_get_read_global,
26425         ipa_reference_get_written_global): Remove.
26426         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
26427         * Makefile.in: Remove ipa-refereference from GT files.
26428
26429 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26430
26431         PR debug/44112
26432         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
26433         for all SYMBOL_REF_DECLs.
26434
26435 2010-05-14  Jan Hubicka  <jh@suse.cz>
26436
26437         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
26438         (varpool_all_refs_explicit_p): New inline function.
26439         * ipa-reference.c: Update comment.
26440         (module_statics_written): Remove.
26441         (get_static_decl): Remove.
26442         (ipa_init): Do not initialize module_statics_written.
26443         (analyze_function): Likewise.
26444         (generate_summary): Likewise; do not compute module_statics_readonly
26445         and do not update variable flags.
26446         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
26447         * ipa.c: Inlucde flags.h
26448         (cgraph_local_node_p): New.
26449         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
26450         promote functions to local.
26451         (ipa_discover_readonly_nonaddressable_vars): New function.
26452         (function_and_variable_visibility): Use cgraph_local_node_p.
26453         * varpool.c (varpool_finalize_decl): Set force_output for
26454         DECL_PRESERVE_P vars.
26455
26456 2010-05-14  Jan Hubicka  <jh@suse.cz>
26457
26458         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
26459
26460 2010-05-14  Richard Guenther  <rguenther@suse.de>
26461
26462         PR tree-optimization/44119
26463         * tree-ssa-pre.c (eliminate): Properly mark replacement of
26464         a PHI node necessary.
26465
26466 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
26467
26468         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
26469
26470 2010-05-14  Jason Merrill  <jason@redhat.com>
26471
26472         PR c++/44127
26473         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
26474         (gimple_call_set_nothrow): New.
26475         * gimple.c (gimple_build_call_from_tree): Call it.
26476         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
26477
26478         PR c++/44127
26479         * gimplify.c (gimplify_seq_add_stmt): No longer static.
26480         * gimple.h: Declare it.
26481         * gimple.c (gimple_build_eh_filter): No ops.
26482
26483 2010-05-14  Jan Hubicka  <jh@suse.cz>
26484
26485         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
26486         nodes already in queue.
26487         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
26488         re-enqueueing node.
26489
26490 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26491
26492         PR debug/44136
26493         * cfgexpand.c (expand_debug_expr): If non-memory op0
26494         has BLKmode, return NULL.
26495
26496 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
26497
26498         * config.gcc: Add support for --with-cpu option for bdver1.
26499         * config/i386/i386.h (TARGET_BDVER1): New macro.
26500         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
26501         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26502         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
26503         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26504         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
26505         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
26506         (processor_type): Add PROCESSOR_BDVER1.
26507         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
26508         processor_type in config/i386/i386.h.
26509         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
26510         movaps <reg, reg> instead of movapd <reg, reg> when replacing
26511         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
26512         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
26513         to emit packed xor instead of packed double/packed integer
26514         xor for SSE and AVX when moving a zero value.
26515         * config/i386/sse.md: Add check for
26516         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
26517         movapd/movdqa for SSE and AVX.
26518         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
26519         single logical operations i.e and, or and xor instead of packed double
26520         logical operations for SSE and AVX.
26521         * config/i386/i386-c.c (ix86_target_macros_internal):
26522         Add PROCESSOR_BDVER1.
26523         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
26524         (has_fma4, has_xop): New.
26525         * config/i386/i386.c (bdver1_cost): New variable.
26526         (m_BDVER1): New macro.
26527         (m_AMD_MULTIPLE): Add m_BDVER1.
26528         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
26529         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
26530         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
26531         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
26532         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
26533         x86_tune_sse_partial_reg_dependency,
26534         x86_tune_sse_unaligned_load_optimal,
26535         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
26536         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
26537         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
26538         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
26539         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
26540         Enable/disable for bdver1.
26541         (processor_target_table): Add bdver1_cost.
26542         (cpu_names): Add bdver1.
26543         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
26544          processor_alias_table.
26545         (ix86_expand_vector_move_misalign): Change.
26546         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
26547         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
26548         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
26549         of movupd/movdqu for SSE and AVX.
26550         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
26551         (ix86_tune_adjust_cost): Add code for bdver1.
26552         (standard_sse_constant_opcode): Add check for
26553         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
26554         of packed double xor for SSE and AVX.
26555
26556 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
26557
26558         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
26559         result to unsigned.
26560
26561 2010-05-14  Tristan Gingold  <gingold@adacore.com>
26562
26563         * toplev.c (default_debug_hooks): Remove this variable.
26564         (process_options): Remove assignments to default_debug_hooks.
26565
26566 2010-05-14  Martin Jambor  <mjambor@suse.cz>
26567
26568         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
26569         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
26570         * langhooks.h (struct lang_hooks_for_decls): Removed field
26571         fold_obj_type_ref.
26572         * tree.c (free_lang_data): Remove assignment to
26573         lang_hooks.fold_obj_type_ref.
26574         * tree.def (OBJ_TYPE_REF): Update comment.
26575
26576 2010-05-14  Richard Guenther  <rguenther@suse.de>
26577
26578         PR tree-optimization/44124
26579         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
26580
26581 2010-05-14  Alan Modra  <amodra@gmail.com>
26582
26583         PR target/44075
26584         * config/rs6000/rs6000.c (struct machine_function): Reorder
26585         fields for better packing.  Add lr_save_state.
26586         (rs6000_ra_ever_killed): Return lr_save_state if set.
26587         (rs6000_emit_eh_reg_restore): Set lr_save_state.
26588
26589 2010-05-13  Jan Hubicka  <jh@suse.cz>
26590
26591         * varpool.c (decide_is_variable_needed): Drop code checking
26592         TREE_SYMBOL_REFERENCED.
26593
26594 2010-05-13  Jan Hubicka  <jh@suse.cz>
26595
26596         * final.c (output_addr_const): Do not call mark_decl_referenced.
26597         * cgraphunit.c (process_function_and_variable_attributes): Use
26598         mark_needed_node dirrectly.
26599         (assemble_thunk): Do not call mark_decl_referenced.
26600
26601 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
26602
26603         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
26604
26605 2010-05-13  Jeff Law  <law@redhat.com>
26606
26607         * ira-conflicts.c (print_allocno_conflicts): New function broken out
26608         from...
26609         (print_conflicts): Call print_allocno_conflicts.
26610
26611 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26612
26613         PR debug/44104
26614         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
26615         if it is NULL.
26616
26617 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
26618
26619         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
26620         t-mingw-w64 or t-mingw-w32 for multilib configuration.
26621         * config/i386/t-mingw-w32: New.
26622         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
26623
26624 2010-05-13  Martin Jambor  <mjambor@suse.cz>
26625
26626         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
26627         gimple-fold.c).
26628         * gimple-fold.c (get_base_binfo_for_type): New function.
26629         (gimple_get_relevant_ref_binfo): Likewise.
26630         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26631         (gimple_fold_obj_type_ref): Likewise.
26632         (fold_gimple_call): Simplify condition for folding virtual calls
26633         and call gimple_fold_obj_type_ref.
26634         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
26635         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26636
26637 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
26638
26639         * config/rs6000/rs6000-protos.h
26640         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
26641         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
26642         (rs6000_debug_mode_dependent_address)
26643         (rs6000_mode_dependent_address_ptr): Likewise.
26644
26645 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26646
26647         PR debug/43983
26648         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
26649         by SRA.
26650         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
26651         * tree-sra.c (create_access_replacement): Call unshare_expr before
26652         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
26653         * dwarf2out.c: Include tree-flow.h.
26654         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
26655         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
26656         Handle DW_OP_bit_piece.
26657         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
26658         construct_piece_list, adjust_piece_list): New functions.
26659         (add_var_loc_to_decl): Handle SRA optimized variables.
26660         Adjust for var_loc_note to loc field renaming.
26661         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
26662         in VAR_LOCATION note.
26663         (new_loc_descr_op_bit_piece): New function.
26664         (dw_sra_loc_expr): New function.
26665         (dw_loc_list): Use it.  Don't handle the last range after the
26666         loop, handle it inside of the loop.  Adjust for var_loc_note
26667         to loc field renaming.
26668         (add_location_or_const_value_attribute): Only special case
26669         single entry loc lists if loc is NOTE_P.  Adjust for
26670         var_loc_note to loc field renaming.
26671         (dwarf2out_var_location): Don't set newloc->var_loc_note
26672         and newloc->next here.
26673
26674 2010-05-12  Jan Hubicka  <jh@suse.cz>
26675
26676         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
26677         flag.
26678         * cgraph.h (cgraph_only_called_directly_p,
26679         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
26680         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
26681         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
26682         (assemble
26683         * ipa.c (cgraph_remove_unreachable_nodes): Use
26684         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
26685         flags.
26686         * tree-inline.c (copy_bb): Check address_taken flag.
26687         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
26688         externally_visible flag.
26689
26690 2010-05-12  Jason Merrill  <jason@redhat.com>
26691
26692         PR bootstrap/44048
26693         PR target/44099
26694         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
26695         * sdbout.c (plain_type_1): Likewise.
26696         * dwarf2out.c (is_base_type): Likewise.
26697         (gen_type_die_with_usage): Likewise.  Generate
26698         DW_TAG_unspecified_type for any LANG_TYPE.
26699
26700 2010-05-12  Jan Hubicka  <jh@suse.cz>
26701
26702         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
26703         indrect edges too.
26704         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
26705         (cgraph_clone_edge): Update.
26706         (cgraph_node_remove_callees): Remove indirect calls too.
26707         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
26708         (cgraph_create_indirect_edge): Update prototype.
26709         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
26710         is_proper_for_analysis.
26711         (add_new_function, visited_nodes, function_insertion_hook_holder,
26712         get_local_reference_vars_info, mark_address_taken, mark_address,
26713         mark_load, mark_store, check_asm_memory_clobber, check_call,
26714         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
26715         (ipa_init): Do not initialize visited_nodes;
26716         function_insertion_hook_holder.
26717         (analyze_variable): Rewrite.
26718         (analyze_function): Rewrite.
26719         (copy_local_bitmap): Remove.
26720         (duplicate_node_dat): Do not duplicate local info.
26721         (generate_summary): Simplify to only walk cgraph.
26722         (write_node_summary_p, ipa_reference_write_summary,
26723         ipa_reference_read_summary): Remove.
26724         (propagate): Do not remove function insertion;
26725         generate summary.
26726         (pass_ipa_reference): NULLify summary handling fields.
26727         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
26728         (input_edge): Input ecf_flags.
26729         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
26730         (update_indirect_edges_after_inlining): Ignore edges with unknown
26731         param.
26732
26733 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
26734
26735         * implicit-zee.c: New file.
26736         * tree-pass.h (pass_implicit_zee): Declare.
26737         * passes.c (init_optimization_passes): Add zee pass.
26738         * common.opt (fzee): New flag.
26739         * timevar.def (TV_ZEE): Define.
26740         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
26741         and beyond.
26742         * Makefile.in (implicit-zee.o): Add new build file.
26743
26744 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26745             Nathan Froyd  <froydnj@codesourcery.com>
26746
26747         * c-common.c (sync_resolve_params): Remove write-only variable.
26748
26749 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
26750
26751         * target.h (struct gcc_target): Add mode_dependent_address_p field.
26752         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26753         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
26754         * targhooks.c (default_mode_dependent_address_p): New function.
26755         * targhooks.h (default_mode_dependent_address_p): Declare function.
26756         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26757         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
26758         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
26759         target hook. Change return type to bool.
26760         * recog.h (mode_dependent_address_p): Change return type to bool.
26761
26762 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26763             Nathan Froyd  <froydnj@codesourcery.com>
26764
26765         * tree-mudflap.c (build_function_type_0, build_function_type_1,
26766         build_function_type_2, build_function_type_3): Remove.
26767         (mudflap_init): Use build_function_type_list.
26768
26769 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26770             Nathan Froyd  <froydnj@codesourcery.com>
26771
26772         * coverage.c (build_fn_info_value): Call build_constructor instead of
26773         build_constructor_from_list.
26774         (build_ctr_info_value): Likewise.
26775         (build_gcov_info): Likewise.
26776
26777 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
26778
26779         * tree.c (build_constructor): Compute TREE_CONSTANT for the
26780         resultant constructor.
26781         (build_constructor_single): Don't set TREE_CONSTANT.
26782         (build_constructor_from_list): Don't compute TREE_CONSTANT.
26783
26784 2010-05-12  Jan Hubicka  <jh@suse.cz>
26785
26786         * cgraph.h (struct varpool_node): Add aux.
26787         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
26788         * varpool.c (varpool_remove_node): Do not remove initializer.
26789         (varpool_reset_queue): Export.
26790         (varpool_finalize_decl): Volatile vars are forced to be output.
26791         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
26792         replaced decl.
26793         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
26794         process_references, varpool_can_remove_if_no_refs): New functions.
26795         (cgraph_remove_unreachable_nodes): Handle variables too.
26796
26797 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
26798
26799         PR target/44088
26800         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
26801
26802 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
26803
26804         PR middle-end/44085
26805         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
26806         change value of ORT_TASK.
26807         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
26808         (omp_notice_threadprivate_variable): New function.
26809         (omp_notice_variable): Call it for threadprivate variables.
26810         If enclosing ctx is a task, print enclosing task rather than
26811         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
26812         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
26813         if task has untied clause.
26814
26815         PR debug/42278
26816         * dwarf2out.c (base_type_die): Don't add name attribute here.
26817         (modified_type_die): Instead of sizetype use
26818         its underlying original type.  If a DW_TAG_base_type doesn't
26819         have name added, add __unknown__.
26820         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
26821         always call force_type_die instead.
26822
26823 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
26824
26825         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
26826         for __stack_chk_guard.
26827
26828 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
26829
26830         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
26831         don't call start_source_file debug hook here...
26832         (finish_options): ... but here, after outputting predefined and
26833         command line defines and undefs.
26834
26835         PR middle-end/44071
26836         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
26837         no fallthru edge.
26838         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
26839         optimizing away empty bb with no successors, move over its
26840         footer chain to fallthru predecessor.
26841         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
26842         (rtl_split_edge): For asm goto call patch_jump_insn even if
26843         splitting fallthru edge.
26844
26845         PR c++/44059
26846         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
26847         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
26848         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
26849         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
26850         on DW.ref.* decls.
26851
26852         PR c++/44062
26853         * c-parser.c (c_parser_expression): Mark LHS of a comma
26854         expression as read if it is a decl, handled component or
26855         COMPOUND_EXPR with that on the RHS.
26856         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
26857         if it is a decl or handled component.
26858
26859 2010-05-11  Jan Hubicka  <jh@suse.cz>
26860
26861         * lto-symtab.c (lto_symtab_free): New function.
26862         * lto-streamer.h (lto_symtab_free): Declare.
26863
26864 2010-05-11  Jan Hubicka  <jh@suse.cz>
26865
26866         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
26867         that if function is needed it is reachable.
26868         (lto_output_node): See if it the function is reachable or referenced.
26869         (output_cgraph): Update call of lto_output_node.
26870         * lto-streamer.h (reachable_from_other_partition_p): Declare.
26871
26872 2010-05-11  Jan Hubicka  <jh@suse.cz>
26873
26874         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
26875         Mark as used.
26876
26877 2010-05-11  Jan Hubicka  <jh@suse.cz>
26878
26879         PR tree-optimize/44063
26880         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
26881         queue.
26882         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
26883         limits.
26884         (estimate_function_body_sizes): Compute sizes even when disregarding.
26885
26886 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
26887
26888         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
26889
26890 2010-05-11  Jan Hubicka  <jh@suse.cz>
26891
26892         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
26893         into every boundary.
26894
26895 2010-05-11  Jan Hubicka  <jh@suse.cz>
26896
26897         * matrix-reorg.c (matrix_reorg): Rebuild edges.
26898
26899 2010-05-11  Jan Hubicka  <jh@suse.cz>
26900
26901         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
26902         lto_streamer_cache_delete): Put nodes into heap.
26903         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
26904         heap.
26905
26906 2010-05-11  Jan Hubicka  <jh@suse.cz>
26907
26908         * cgraphbuild.c (cgraph_rebuild_references): New.
26909         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
26910         out extern inlines.
26911         * cgraph.h (cgraph_rebuild_references): Declare.
26912         * tree-inline.c (tree_function_versioning): Use it.
26913         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
26914
26915 2010-05-11  Jan Hubicka  <jh@suse.cz>
26916
26917         * cgraph.c: Include ipa-utils.h
26918         (cgraph_create_virtual_clone): Update references.
26919         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
26920
26921 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
26922
26923         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
26924         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
26925         cache size.
26926
26927 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
26928
26929         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
26930
26931 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
26932
26933         * gcc.c (execute): For -### don't quote arguments that
26934         contain just alphanumerics and _/-. characters.
26935         * doc/invoke.texi: Document that change for -###.
26936
26937         PR debug/44023
26938         * df-problems.c (struct dead_debug): Add to_rescan field.
26939         (dead_debug_init): Clear to_rescan field.
26940         (dead_debug_finish): Rescan all debug insns in to_rescan
26941         bitmap and free the bitmap.
26942         (dead_debug_insert_before): Instead of rescanning debug insns
26943         immediately queue their rescanning until dead_debug_finish.
26944         (df_note_bb_compute): After dead_debug_add do continue instead
26945         of break.
26946
26947 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
26948
26949         PR debug/44028
26950         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
26951         clear also INSN_REG_USE_LIST.
26952
26953 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26954
26955         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
26956
26957 2010-05-10  Jan Hubicka  <jh@suse.cz>
26958
26959         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
26960         commited change.
26961
26962 2010-05-10  Jan Hubicka  <jh@suse.cz>
26963
26964         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
26965         Allocate encoders.
26966         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
26967         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
26968         (lto_streamer_cache_create): Init alloc pool.
26969         (lto_streamer_cache_delete): Free alloc pool.
26970         * lto-streamer.h: Include alloc pool.
26971         (lto_streamer_cache_d): Use alloc pool.
26972         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
26973
26974 2010-05-10  Jan Hubicka  <jh@suse.cz>
26975
26976         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
26977         * cgraphbuild.c: Include except.h
26978         (record_type_list, record_eh_tables): New function.
26979         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
26980
26981 2010-05-10  Jan Hubicka  <jh@suse.cz>
26982
26983         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
26984         __frame_dummy_init_array_entry, force_to_data): Attribute as used
26985         rather than unused.
26986
26987 2010-05-10  Michael Matz  <matz@suse.de>
26988
26989         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
26990         (can_reassociate_p): Use FLOAT_TYPE_P.
26991         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
26992         (vect_force_simple_reduction): ... this.
26993         * tree-parloops.c (gather_scalar_reductions): Use
26994         vect_force_simple_reduction.
26995         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
26996         vect_is_simple_reduction, add modify argument, if true rewrite
26997         "a-b" into "a+(-b)".
26998         (vect_is_simple_reduction, vect_force_simple_reduction): New
26999         functions.
27000         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
27001
27002 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
27003             Vladimir Makarov  <vmakarov@redhat.com>
27004
27005         PR rtl-optimization/44012
27006         * ira-build.c (remove_unnecessary_allocnos): Nullify
27007         regno_allocno_map of the removed allocno.
27008
27009 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27010
27011         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
27012         to /dev/null.
27013         * configure: Regenerate.
27014
27015 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27016
27017         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
27018         unused.
27019         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
27020         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
27021         support in Sun ld.
27022         * configure: Regenerate.
27023
27024 2010-05-10  Richard Guenther  <rguenther@suse.de>
27025
27026         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
27027         marked if the entry identifier is marked.
27028
27029 2010-05-10  Richard Guenther  <rguenther@suse.de>
27030
27031         * c-common.c (struct c_common_attributes): Add fnspec attribute.
27032         (handle_fnspec_attribute): New function.
27033         * gimple.h (gimple_call_return_flags): Declare.
27034         (gimple_call_arg_flags): Likewise.
27035         * gimple.c (gimple_call_arg_flags): New function.
27036         (gimple_call_return_flags): Likewise.
27037         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
27038         New argument flags.
27039         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
27040         return value flags.
27041         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
27042         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
27043         main work to ...
27044         (make_heapvar_for): ... this new function.
27045         (handle_rhs_call): Handle fnspec attribute argument specifiers.
27046         (handle_lhs_call): Likewise.
27047         (find_func_aliases): Adjust.
27048
27049 2010-05-10  Richard Guenther  <rguenther@suse.de>
27050
27051         PR tree-optimization/44050
27052         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
27053
27054 2010-05-10  Wei Guozhi  <carrot@google.com>
27055
27056         PR target/42879
27057         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
27058
27059 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27060
27061         PR c/10676
27062         * c-typeck.c (lookup_field): Take a type directly.  Update
27063         recursive calls.
27064         (build_component_ref): Update call to lookup_field.
27065         (set_init_label): Use lookup_field to find initialized field.
27066         Handle returned list of fields like a sequence of designators.
27067
27068 2010-05-09  Richard Guenther  <rguenther@suse.de>
27069
27070         PR middle-end/44024
27071         * fold-const.c (tree_single_nonzero_warnv_p): Properly
27072         handle &FUNCTION_DECL.
27073
27074 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27075
27076         PR c/4784
27077         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
27078         structures and unions recursively.
27079         (detect_field_duplicates): Move duplicate detection with a hash to
27080         detect_field_duplicates_hash.  Always use a hash if anonymous
27081         structures or unions are present.
27082         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
27083         give errors.
27084
27085 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
27086
27087         PR target/44046
27088         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
27089         detect Atom, Core 2 and Core i7.
27090
27091 2010-05-09  Richard Guenther  <rguenther@suse.de>
27092
27093         * gcc.c (store_arg): Handle temporary file deletion for
27094         joined arguments.
27095
27096 2010-05-09  Richard Guenther  <rguenther@suse.de>
27097
27098         PR middle-end/44043
27099         * ipa-inline.c (estimate_function_body_sizes): Return after
27100         disregarding inline limits.
27101
27102 2010-05-09  Richard Guenther  <rguenther@suse.de>
27103
27104         * gcc.c (store_arg): Revert last change.
27105
27106 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
27107
27108         PR middle-end/28685
27109         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
27110         (optimize_ops_list): Call it.
27111
27112 2010-05-08  Richard Guenther  <rguenther@suse.de>
27113
27114         PR tree-optimization/44030
27115         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
27116         NECESSARY flag if we propagate from a inserted expression.
27117
27118 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
27119
27120         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
27121         domain types as equal if they are both PLACEHOLDER_EXPRs.
27122
27123 2010-05-08  Richard Guenther  <rguenther@suse.de>
27124
27125         * lto-wrapper.c (run_gcc): Remove linker output from
27126         command line for LTRANS invocation.
27127
27128 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27129
27130         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
27131         lto-macho as lto_binary_reader.
27132         * target.h (struct gcc_target): New hooks lto_start and lto_end.
27133         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
27134         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
27135         in lto_start and lto_end calls.
27136         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
27137         magic numbers.
27138         (scan_prog_file): Update is_elf_or_coff call.
27139         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
27140
27141         * collect2.c (main): Fix enum comparison.
27142
27143         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
27144         Add prototypes.
27145         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
27146         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
27147         and TARGET_ASM_LTO_END.
27148         * darwin.c: Include obstack.h and lto-streamer.h.
27149         (lto_section_names_offset, lto_section_names_obstack,
27150         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
27151         global variables.
27152         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
27153         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
27154         to a temporary file.
27155         (darwin_asm_lto_end): New function.  Restore asm_out_file.
27156         (darwin_asm_named_section): For LTO sections, replace the name with
27157         the offset of the section name in a string table, and build this
27158         table.
27159         (darwin_file_start): Initialize global vars for LTO support.
27160         (darwin_file_end): If output to asm_out_file was redirected, append it
27161         to the proper asm_out_file here.  Add the section names section.
27162
27163 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27164
27165         * c-pragma.c (pending_weak_d, pending_weak): New.
27166         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
27167         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
27168         handle_pragma_weak): Update the uses of pending_weaks.
27169
27170 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27171
27172         PR documentation/44016
27173         * doc/standards.texi (Standards): Link to unversioned
27174         cxx0x_status.html page.
27175
27176 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
27177
27178         PR target/43708
27179         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
27180         in addition to TREE_USED, to avoid "set but unused" warnings.
27181
27182 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27183
27184         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
27185         (is_loop_prefetching_profitable): Do not insert prefetches
27186         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
27187         times the prefetch ahead distance.
27188
27189 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27190
27191         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
27192         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
27193         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
27194         the unroll_factor.
27195
27196 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27197
27198         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
27199         a diagnostic info when the insn-to-mem ratio is too small.
27200
27201 2010-05-07  Richard Guenther  <rguenther@suse.de>
27202
27203         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
27204         the linker plugin.
27205         (store_arg): Queue temp_filename for deletion instead of
27206         the whole argument.
27207
27208 2010-05-07  Richard Guenther  <rguenther@suse.de>
27209
27210         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
27211         (run_gcc): Handle LTRANS phase invocation.
27212         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
27213
27214 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
27215
27216         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
27217         this is also meaningful on PARM_DECLs and RESULT_DECLs.
27218
27219 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27220
27221         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
27222
27223 2010-05-07  Richard Guenther  <rguenther@suse.de>
27224
27225         PR tree-optimization/44020
27226         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
27227         code when PRE is not yet initialized.
27228
27229 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27230
27231         * config/mips/dbxmdebug.h: Remove.
27232         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
27233
27234 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
27235
27236         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
27237         with null pointer and also warn about ordered comparison of zero with
27238         pointer if -Wextra.
27239
27240 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27241
27242         * graphite-blocking.c
27243         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
27244         * graphite-clast-to-gimple.c
27245         (clast_to_gcc_expression): Same.
27246         (precision_for_value): Same.
27247         (precision_for_interval): Same.
27248         (gcc_type_for_interval): Same.
27249         (graphite_create_new_guard): Same.
27250         (compute_bounds_for_level): Same.
27251         (graphite_create_new_loop_guard): Same.
27252         * graphite-interchange.c
27253         (build_linearized_memory_access): Same.
27254         (pdr_stride_in_loop): Same.
27255         (memory_strides_in_loop_1): Same.
27256         (memory_strides_in_loop): Same.
27257         (extend_scattering): Same.
27258         (psct_scattering_dim_for_loop_depth): Same.
27259         (pbb_number_of_iterations): Same.
27260         * graphite-poly.h
27261         (debug_iteration_domains): Same.
27262         * graphite-ppl.c
27263         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
27264         (ppl_set_inhomogeneous_gmp): Same.
27265         (ppl_strip_loop): Same.
27266         (ppl_lexico_compare_linear_expressions): Same.
27267         (ppl_read_polyhedron_matrix): Same.
27268         (ppl_max_for_le_pointset): Same.
27269         * graphite-ppl.h
27270         (ppl_read_polyhedron_matrix): Same.
27271         (tree_int_to_gmp): Same.
27272         (gmp_cst_to_tree): Same.
27273         (ppl_set_inhomogeneous): Same.
27274         (ppl_set_inhomogeneous_tree): Same.
27275         (ppl_set_coef): Same.
27276         (ppl_set_coef_tree): Same.
27277         * graphite-sese-to-poly.c
27278         (build_pbb_scattering_polyhedrons): Same.
27279         (build_scop_scattering): Same.
27280         (scan_tree_for_params_right_scev): Same.
27281         (scan_tree_for_params): Same.
27282         (find_params_in_bb): Same.
27283         (find_scop_parameters): Same.
27284         (add_upper_bounds_from_estimated_nit): Same.
27285         (build_loop_iteration_domains): Same.
27286         (add_condition_to_domain): Same.
27287         (pdr_add_memory_accesses): Same.
27288
27289 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27290
27291         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
27292         CLooG's value_* macros to their respective mpz_* counterparts.
27293         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
27294         (graphite_create_new_loop_guard): Same.
27295         * graphite-interchange.c (build_linearized_memory_access): Same.
27296         (pdr_stride_in_loop): Same.
27297         (memory_strides_in_loop_1): Same.
27298         (1st_interchange_profitable_p): Same.
27299         * graphite-poly.c (extend_scattering): Same.
27300         (psct_scattering_dim_for_loop_depth): Same.
27301         (pbb_number_of_iterations): Same.
27302         (pbb_number_of_iterations_at_time): Same.
27303         * graphite-poly.h (new_1st_loop): Same.
27304         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
27305         (oppose_constraint): Same.
27306         (insert_constraint_into_matrix): Same.
27307         (ppl_set_inhomogeneous_gmp): Same.
27308         (ppl_set_coef_gmp): Same.
27309         (ppl_strip_loop): Same.
27310         (ppl_lexico_compare_linear_expressions): Same.
27311         (ppl_max_for_le_pointset): Same.
27312         (ppl_min_for_le_pointset): Same.
27313         (ppl_build_realtion): Same.
27314         * graphite-ppl.h (gmp_cst_to_tree): Same.
27315         (ppl_set_inhomogeneous): Same.
27316         (ppl_set_inhomogeneous_tree): Same.
27317         (ppl_set_coef): Same.
27318         (ppl_set_coef_tree): Same.
27319         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
27320         (build_scop_scattering): Same.
27321         (add_value_to_dim): Same.
27322         (scan_tree_for_params_right_scev): Same.
27323         (scan_tree_for_params_int): Same.
27324         (scan_tree_for_params): Same.
27325         (find_params_in_bb): Same.
27326         (find_scop_parameters): Same.
27327         (add_upper_bounds_from_estimated_nit): Same.
27328         (build_loop_iteration_domains): Same.
27329         (create_linear_expr_from_tree): Same.
27330         (add_condition_to_domain): Same.
27331         (pdr_add_memory_accesses): Same.
27332
27333 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
27334             Jason Merrill  <jason@redhat.com>
27335
27336         * c-common.c (c_common_reswords): Add nullptr.
27337         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
27338         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
27339         (gen_type_die_with_usage): Likewise.
27340         * dbxout.c (dbxout_type): Likewise.
27341         * sdbout.c (plain_type_1): Likewise.
27342
27343 2010-05-06  Jason Merrill  <jason@redhat.com>
27344
27345         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
27346         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
27347         ret appropriately.
27348         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
27349
27350         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
27351         stripping WITH_SIZE_EXPR.
27352         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
27353         change.
27354
27355 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27356
27357         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
27358         list of obsolete configurations.
27359         Disabled check for obsolete configurations.
27360         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
27361         Removed support for previous versions.
27362         * config/mips/iris.h: Removed.
27363         * config/mips/iris5.h: Removed.
27364         * config/mips/iris6.h: Merged old iris.h contents.
27365         (TARGET_IRIX): Removed.
27366         (DRIVER_SELF_SPECS): Removed mabi=32.
27367         (IDENT_ASM_OP): Removed undef.
27368         (STARTFILE_SPEC): Removed mabi=32.
27369         (ENDFILE_SPEC): Likewise.
27370         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
27371         (MACHINE_TYPE): Update for IRIX 6.5.
27372         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
27373         TARGET_IRIX by TARGET_IRIX6.
27374         (mips_file_start): Likewise.
27375         (mips_output_external): Remove IRIX 5/6 O32 support.
27376         (mips_output_function_prologue): Likewise.
27377         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
27378         TARGET_IRIX6.
27379         (TARGET_CPU_CPP_BUILTINS): Likewise.
27380         (TARGET_IRIX): Removed.
27381         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
27382         (MULTILIB_DIRNAMES): Removed 32.
27383         (MULTILIB_OSDIRNAMES): Removed ../lib.
27384         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
27385         (Specific, mips-sgi-irix5): Document removal.
27386         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
27387         Remove references to older IRIX 6 releases and the O32 ABI.
27388
27389 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
27390
27391         PR bootstrap/43994
27392         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
27393         instead of DF_REF_REAL_REG.
27394
27395 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
27396
27397         PR target/43888
27398         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
27399         handling to still return true for x64 targets.
27400
27401 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27402
27403         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
27404
27405 2010-05-06  Jan Hubicka  <jh@suse.cz>
27406
27407         PR tree-optimization/43791
27408         * ipa-inline.c (update_caller_keys): Remove bogus
27409         disregard_inline_limits check.
27410
27411 2010-05-06  Michael Matz  <matz@suse.de>
27412
27413         PR tree-optimization/43984
27414         * tree-ssa-pre.c (inserted_phi_names): Remove.
27415         (inserted_exprs): Change to bitmap.
27416         (create_expression_by_pieces): Set bits, don't append to vector.
27417         (insert_into_preds_of_block): Don't handle inserted_phi_names.
27418         (eliminate): Don't look at inserted_phi_names, remove deleted
27419         insns from inserted_exprs.
27420         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
27421         (init_pre, fini_pre): Allocate and free bitmaps.
27422         (execute_pre): Insert insns on edges before elimination.
27423
27424 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27425
27426         * tree.c (initializer_zerop): Handle STRING_CST.
27427
27428 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27429
27430         PR 40989
27431         * doc/invoke.texi (Wimplicit): Document as C only.
27432         * opts.c (common_handle_option): Add argument kind.
27433         (handle_option): Rename as read_cmdline_option. Factor out code to...
27434         (handle_option): ... here. New.
27435         (handle_options): Rename as read_cmdline_options.
27436         (decode_options): Update call.
27437         (set_option): Use option index instead of option pointer. Classify
27438         diagnostics correctly.
27439         (enable_warning_as_error): Call handle_option.
27440         * opts.h (set_option): Update declaration.
27441         (handle_option): Declare.
27442         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
27443         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
27444         * c-opts.c (set_Wimplicit): Delete.
27445         (c_family_lang_mask): New static constant.
27446         (c_common_handle_option): Add argument kind. Use handle_option
27447         instead of set_Wimplicit.
27448         (c_common_post_options): warn_implicit and warn_implicit_int
27449         are disabled by default.
27450         * c-common.c (warn_implicit): Do not define here.
27451         * c-common.h (warn_implicit): Do not declare here.
27452         (c_common_handle_option): Update declaration.
27453         * lto-opts.c (lto_reissue_options): Update call to set_option.
27454
27455 2010-05-06  Richard Guenther  <rguenther@suse.de>
27456
27457         PR tree-optimization/43571
27458         * domwalk.c (walk_dominator_tree): Walk the dominator
27459         sons in more optimal order.
27460
27461 2010-05-06  Richard Guenther  <rguenther@suse.de>
27462
27463         PR tree-optimization/43934
27464         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
27465         (stmt_cost): Likewise.
27466         (extract_true_false_args_from_phi): New helper.
27467         (determine_max_movement): For PHI nodes verify we can hoist them
27468         and compute their cost.
27469         (determine_invariantness_stmt): Handle PHI nodes.
27470         (move_computations_stmt): Likewise.  Hoist PHI nodes in
27471         if-converted form using COND_EXPRs.
27472         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
27473         (tree_ssa_lim): Likewise.
27474         * tree-flow.h (tree_ssa_lim): Adjust prototype.
27475         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
27476
27477 2010-05-06  Richard Guenther  <rguenther@suse.de>
27478
27479         PR tree-optimization/43987
27480         * tree-ssa-structalias.c (could_have_pointers): For possibly
27481         address-taken variables force pointers to be recorded.
27482         (create_variable_info_for_1): Likewise.
27483         (push_fields_onto_fieldstack): Pass in wheter all fields
27484         must have pointers.
27485         (find_func_aliases): Query types instead of vars whether
27486         they contain pointers where appropriate.
27487
27488 2010-05-06  Jan Hubicka  <jh@suse.cz>
27489
27490         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
27491         (record_reference, mark_address, mark_load, mark_store): Record
27492         references.
27493         (record_references_in_initializer): Update call of record_references.
27494         (rebuild_cgraph_edges): Remove all references before rebuiding.
27495         * cgraph.c (cgraph_create_node): Clear ref list.
27496         (cgraph_remove_node): Remove references.
27497         (dump_cgraph_node): Dump references.
27498         (cgraph_clone_node): Clone references.
27499         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
27500         (struct cgraph_node, varpool_node): Add ref_lst.
27501         * ipa-ref.c: New file.
27502         * ipa-ref.h: New file.
27503         * ipa-ref-inline.h: New file.
27504         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
27505         (referenced_from_other_partition_p): New function.
27506         (lto_output_varpool_node): Take set arugment; call
27507         referenced_from_other_partition.
27508         (lto_output_ref): New.
27509         (add_references): New.
27510         (output_refs): New.
27511         (output_cgraph): Compute boundary based on references; output refs.
27512         (output_varpool): Accept cgraph_node_set argument.
27513         (input_ref): New.
27514         (input_refs): New.
27515         (input_cgraph): Call input_refs.
27516         * lto-section-in.c (lto_section_name): Add refs.
27517         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
27518         (ipa-ref.o): New file.
27519         * varpool.c (varpool_node): Clear ipa ref list.
27520         (varpool_remove_node): Remove references.
27521         (dump_varpool_node): Dump references.
27522         (varpool_assemble_decl): Only compile finalized ones.
27523         (varpool_extra_name_alias): Initialize ref list.
27524         * lto-streamer.c (lto-get_section_name): Add .refs section.
27525         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
27526         (referenced_from_other_partition_p): Declared.
27527
27528 2010-05-06  Ira Rosen  <irar@il.ibm.com>
27529
27530         PR tree-optimization/43901
27531         * tree-vect-stmts.c (vectorizable_call): Assert that vector
27532         type is not NULL if it's transformation phase, and return
27533         FALSE if it's analysis.
27534         (vectorizable_conversion, vectorizable_operation,
27535         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
27536
27537 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
27538
27539         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27540         Delete.
27541         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27542         New define.
27543         * config/mips/mips-protos.h
27544         (mips_small_register_classes_for_mode_p): Delete prototype.
27545
27546 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
27547
27548         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
27549         * config/arm/arm.c (multiple_operation_profitable_p,
27550         compute_offset_order): New static functions.
27551         (load_multiple_sequence, store_multiple_sequence): Use them.
27552         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
27553         memory offsets, not register numbers.
27554         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
27555
27556 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
27557
27558         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
27559         (get_pending_sizes, put_pending_size, put_pending_sizes):
27560         Update the uses of pending_sizes.
27561         * c-decl.c (store_parm_decls): Likewise.
27562         * c-tree.h (struct c_arg_info): Likewise.
27563         * tree.h: Update the prototype for get_pending_sizes and
27564         put_pending_sizes.
27565
27566 2010-05-05  Jason Merrill  <jason@redhat.com>
27567
27568         PR debug/43370
27569         * c-common.c (handle_aligned_attribute): Respect
27570         ATTR_FLAG_TYPE_IN_PLACE.
27571
27572         PR testsuite/43758
27573         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
27574         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27575         (TARGET_INITIALIZER): Use it.
27576         * c-common.c (attribute_takes_identifier_p): Call it.
27577         * c-common.h: Update prototype.
27578         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
27579         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27580
27581 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27582
27583         PR debug/43950
27584         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
27585         DW_ID_down_case for Fortran compilation units.
27586
27587 2010-05-05  Jan Hubicka  <jh@suse.cz>
27588
27589         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
27590         handle aliases.
27591
27592 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
27593
27594         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
27595         a variable-sized RESULT_DECL.
27596
27597 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
27598
27599         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
27600
27601 2010-05-05  Jason Merrill  <jason@redhat.com>
27602
27603         PR c++/43787
27604         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
27605         returns GS_OK.
27606         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
27607
27608 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
27609             Jakub Jelinek  <jakub@redhat.com>
27610
27611         PR debug/43478
27612         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
27613         (dead_debug_init, dead_debug_finish): New functions.
27614         (dead_debug_add, dead_debug_insert_before): Likewise.
27615         (df_note_bb_compute): Initialize a dead_debug object, add dead
27616         debug uses to it, insert debug bind insns before death insns,
27617         reset debug insns that refer to pending uses at the end.
27618         * rtl.h (make_debug_expr_from_rtl): New prototype.
27619         * varasm.c (make_debug_expr_from_rtl): New function.
27620
27621 2010-05-05  Jan Hubicka  <jh@suse.cz>
27622
27623         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
27624         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
27625         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
27626         lto_varpool_encoder_deref, lto_varpool_encoder_size,
27627         lto_varpool_encoder_encode_initializer_p,
27628         lto_set_varpool_encoder_encode_initializer): New functions.
27629         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
27630         call output_varpool.
27631         (input_varpool_node): Do not always set analyzed.
27632         (input_cgraph_1): Return vector of cgraph nodes.
27633         (input_varpool_1): Return vector of varpools.
27634         (input_cgraph): Free the vectors.
27635         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27636         output only initializers needed.
27637         (lto_output): Only call output_cgraph.
27638         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
27639         * lto-section-out.c (lto_new_out_decl_state): Initialize
27640         state->varpool_node_encoder.
27641         * lto-streamer.h (lto_varpool_encoder_d): New.
27642         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
27643         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
27644         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
27645         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
27646         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
27647         Declare.
27648         (output_varpool, input_varpool): Remove declarations.
27649
27650 2010-05-05  Jan Hubicka  <jh@suse.cz>
27651
27652         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
27653         with body can prevail.
27654
27655 2010-05-05  Jan Hubicka  <jh@suse.cz>
27656
27657         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
27658         size.
27659
27660 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27661
27662         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
27663
27664         * gengtype.h (erro_at_line): Constify pos argument.
27665
27666         * gengtype.c: Include hashtab.h.
27667         (enum gc_used): Document GC_MAYBE_POINTED_TO.
27668         (error_at_line): Constify pos argument.
27669         (do_typedef): Initialize p->opt field.
27670         (get_file_gtfilename): Fix comment typo.
27671         (struct walk_type_data): Constify line field.
27672         (get_output_file_for_structure): New function.
27673         (write_local_func_for_structure): Constify orig_s argument.
27674         Use get_output_file_for_structure.
27675         (write_func_for_structure): Use get_output_file_for_structure.
27676         (INDENT): New define.
27677         (dump_pair, dump_type, dump_type_list, dump_typekind)
27678         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
27679         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
27680         functions.
27681         (seen_types): New variable.
27682         (main): New variable do_dump.  Process "-d" command line option.
27683         Call dump_everything if dump requested.
27684
27685 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27686
27687         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
27688         in a temporary instead of invoking the macro multiple times.
27689         (track_expr_p): Likewise.
27690
27691 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
27692
27693         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
27694         per new semantics.
27695         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
27696         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
27697         conditions for printing notes.
27698         * common.opt (-Wcoverage-mismatch): Allow negative, default to
27699         true, update documentation.
27700         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
27701
27702 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
27703
27704         PR c/43981
27705         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
27706         on dimen.
27707
27708 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27709
27710         PR target/43799
27711         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
27712         (*sse_prologue_save_insn1): Likewise.
27713         (SSE prologue save splitter): Likewise.
27714
27715 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
27716
27717         * tree.c (free_lang_data_in_one_sizepos): New inline function.
27718         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
27719         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
27720         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
27721         all decls.  Call it on DECL_FIELD_OFFSET of fields.
27722         (find_decls_types_r): Follow DECL_VALUE_EXPR.
27723         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
27724
27725 2010-05-04  Martin Jambor  <mjambor@suse.cz>
27726
27727         * tree-sra.c (build_access_from_expr_1): The first parameter type
27728         changed to simple tree.
27729         (build_access_from_expr): Likewise, gsi parameter was eliminated.
27730         (scan_assign_result): Renamed to assignment_mod_result, enum elements
27731         renamed as well.
27732         (build_accesses_from_assign): Removed all parameters except for a
27733         simple gimple statement.  Now returns a simple bool.
27734         (scan_function): All non-analysis parts moved to separate functions
27735         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
27736         parameters and updated both callers.
27737         (sra_modify_expr): Removed parameter data.
27738         (sra_modify_function_body): New function.
27739         (perform_intra_sra): Call sra_modify_function_body to modify the
27740         function body.
27741         (replace_removed_params_ssa_names): Parameter data changed into
27742         adjustments vector.
27743         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
27744         changed the parameter dont_convert to convert with the opposite
27745         meaning.
27746         (sra_ipa_modify_assign): Parameter data changed into adjustments
27747         vector, return value changed to bool.
27748         (ipa_sra_modify_function_body): New function.
27749         (sra_ipa_reset_debug_stmts): Updated a comment.
27750         (modify_function): Use ipa_sra_modify_function_body to modify function
27751         body.
27752
27753 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27754
27755         PR middle-end/43671
27756         * alias.c (true_dependence): Handle the same VALUE in x and mem.
27757         (canon_true_dependence): Likewise.
27758         (write_dependence_p): Likewise.
27759
27760 2010-05-04  Jan Hubicka  <jh@suse.cz>
27761
27762         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
27763         * cgraphbuild.c: Include ipa-utils.h
27764         (record_reference_ctx): New struct.
27765         (record_reference): Simplify to work on initializers; not statements.
27766         (mark_address, mark_load, mark_store): New.
27767         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27768         walk PHI nodes too.
27769         (record_references_in_initializer): Update use of record_reference.
27770         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27771         walk PHI nodes too.
27772
27773 2010-05-04  Jan Hubicka  <jh@suse.cz>
27774
27775         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
27776         node will be removed anyway.
27777         (lto_varpool_replace_node): Allow also unanalyzed nodes;
27778         relink aliases of node into prevailing node.
27779         * varpool.c (varpool_remove_node): Remove aliases properly;
27780         when removing node, remove all its aliases too; remove DECL_INITIAL
27781         of removed node; ggc_free the varpool node.
27782
27783 2010-05-04  Richard Guenther  <rguenther@suse.de>
27784
27785         PR tree-optimization/43879
27786         * tree-ssa-structalias.c (alias_get_name): Use
27787         DECL_ASSEMBLER_NAME if available.
27788         (create_function_info_for): Return the varinfo node.
27789         (ipa_pta_execute): Associate same-body aliases and extra names
27790         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
27791
27792 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
27793
27794         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
27795
27796 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
27797
27798         PR bootstrap/43964
27799         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
27800         only if HONOR_REG_ALLOC_ORDER is not defined.
27801
27802 2010-05-04  Richard Guenther  <rguenther@suse.de>
27803
27804         PR tree-optimization/43949
27805         * tree-vrp.c (extract_range_from_binary_expr): Only handle
27806         TRUNC_MOD_EXPR.
27807
27808 2010-04-26  Jason Merrill  <jason@redhat.com>
27809
27810         * c.opt (-fstrict-enums): New.
27811         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
27812
27813 2010-05-03  David Ung  <davidu@mips.com>
27814             James E. Wilson  <wilson@codesourcery.com>
27815
27816         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
27817         emit the trap instruction before the divide for TUNE_74K.
27818
27819 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
27820
27821         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
27822         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
27823         based on the above, for new target hook.
27824
27825         * hooks.c (hook_bool_mode_true): New generic hook.
27826         * hooks.h (hook_bool_mode_true): Add prototype.
27827
27828         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
27829         target hook.
27830         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
27831         target hook, set to hook_bool_mode_false.
27832         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
27833         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
27834         with targetm.small_register_classes_for_mode_p.
27835         (find_reusable_reload): Likewise.
27836         (combine_reloads): Likewise.
27837         * reload1.c (reload_as_needed): Likewise.
27838         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
27839         * ifcvt.c (noce_process_if_block, check_cond_move_block,
27840         dead_or_predicable): Likewise.
27841         * regmove.c (optimize_reg_copy_1): Likewise.
27842         * calls.c (prepare_call_address): Likewise.
27843         (precompute_register_parameters): Likewise.
27844
27845         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
27846         hook definition.
27847         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
27848         implementation of the hook that considers all register classes
27849         small except for SH64.
27850         (sh_override_options): Use the new hook.
27851         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
27852         Add prototype.
27853
27854         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
27855         hook definition.
27856         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
27857         implementation of the hook that considers all register classes
27858         small for THUMB1.
27859         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
27860         Add prototype.
27861
27862         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
27863         hook definition.
27864         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
27865         implementation of the hook that considers all register classes
27866         small for MIPS16.
27867         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
27868         Add prototype.
27869
27870         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
27871         hook definition.
27872         * config/m32c/m32c.h: Likewise.
27873         * config/pdp11/pdp11.h: Likewise.
27874         * config/avr/avr.h: Likewise.
27875         * config/xtensa/xtensa.h: Likewise.
27876         * config/m68hc11/m68hc11.h: Likewise.
27877         * config/mn10300/mn10300.h: Likewise.
27878         * config/mcore/mcore.h: Likewise.
27879         * config/h8300/h8300.h: Likewise.
27880         * config/bfin/bfin.h: Likewise.
27881
27882         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
27883         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
27884
27885 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
27886
27887         * double-int.h (tree_to_double_int): Remove macro.
27888         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
27889         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
27890         (tree_to_double_int): New function.
27891         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
27892         Move ...
27893         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
27894
27895 2010-05-03  Richard Guenther  <rguenther@suse.de>
27896
27897         PR tree-optimization/43971
27898         * tree-ssa-structalias.c (get_constraint_for_1): Fix
27899         constraints in the !flag_delete_null_pointer_checks case.
27900
27901 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
27902
27903         PR debug/43972
27904         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
27905         result mode matches original rtl mode.
27906
27907 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
27908
27909         PR target/43888
27910         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
27911
27912 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27913
27914         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
27915         when processing flag options.
27916
27917 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27918
27919         * gcov-iov.c (main): Change format string placeholder
27920         from %#08x to 0x%08x.
27921         * genchecksum.c (dosum): Change format string placeholder
27922         from %#02x to 0x%02x.
27923
27924 2010-05-02  Richard Guenther  <rguenther@suse.de>
27925
27926         PR tree-optimization/43879
27927         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
27928
27929 2010-05-02  Bruno Haible  <bruno@clisp.org>
27930
27931         * doc/extend.texi (Function Attributes): Fix a typo.
27932
27933 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27934
27935         Revert:
27936         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
27937         placeholder from 0x%x to %#x.
27938         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
27939         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
27940         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
27941         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
27942         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
27943         * config/i386/i386.c (ix86_target_string): Ditto.
27944         * config/i386/i386.c (output_pic_addr_const): Ditto.
27945         (print_operand): Ditto.
27946
27947 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
27948
27949         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
27950         placeholder from 0x%x to %#x.
27951         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
27952         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
27953         (ASM_OUTPUT_DEBUG_DATA): Ditto.
27954         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
27955         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
27956         * optc-gen.awk: Ditto.
27957         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
27958         (HOST_WIDE_INT_PRINT_HEX): Ditto.
27959         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
27960         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
27961
27962 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
27963
27964         * target.h (struct calls): Add function_value_regno_p field.
27965         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
27966         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
27967         * targhooks.c (default_function_value_regno_p): New function.
27968         * targhooks.h (default_function_value_regno_p): Declare function.
27969         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
27970         * builtins.c. (apply_result_size): (Ditto.).
27971         * combine.c. (likely_spilled_retval_p): (Ditto.).
27972         * mode-switching.c. Include 'target.h'.
27973         (create_pre_exit): Use function_value_regno_p hook.
27974         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
27975         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
27976         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
27977
27978         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
27979         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
27980         (ix86_function_value_regno_p): Declare as static, change argument
27981         type to const unsigned int.
27982         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
27983
27984 2010-05-01  Richard Guenther  <rguenther@suse.de>
27985
27986         PR tree-optimization/43949
27987         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
27988         types.
27989         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
27990
27991 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
27992
27993         * rtl.h (CONST_DOUBLE_P): Define.
27994         (rtx_to_double_int): Declare.
27995         * emit-rtl.c (rtx_to_double_int): New function.
27996         * dwarf2out.c (insert_double): New function.
27997         (loc_descriptor, add_const_value_attribute): Clean up, use
27998         rtx_to_double_int and insert_double functions.
27999
28000 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
28001
28002         * doc/extend.texi (Inline): Add missing return keyword to examples.
28003         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
28004         "command-line".
28005
28006 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
28007
28008         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
28009         the variable part of the offset as well.  Use highest_pow2_factor for
28010         all alignment checks.
28011
28012 2010-04-30  Richard Guenther  <rguenther@suse.de>
28013
28014         PR tree-optimization/43879
28015         * tree-ssa-structalias.c (type_could_have_pointers): Functions
28016         can have pointers.
28017
28018 2010-04-30  Jan Hubicka  <jh@suse.cz>
28019
28020         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
28021         varpool.
28022         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
28023
28024 2010-04-30  Jan Hubicka  <jh@suse.cz>
28025
28026         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
28027         New.
28028         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
28029         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
28030         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
28031         cgraph_node_set_needs_ltrans_p): Remove.
28032
28033 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28034
28035         * sdbout.c: Include vec.h, do not include varray.h.
28036         (deferred_global_decls, sdbout_global_decl,
28037         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
28038         * toplev.c: Do not include varray.h.
28039         (dump_memory_report): Do not dump VARRAY statistics.
28040         * gengtype.c (open_base_file): Ignore varray.h.
28041         * Makefile.in: Update for abovementioned changes.
28042         Remove all traces of varray.c and varray.h.
28043         * varray.c: Remove file.
28044         * varray.h: Remove file.
28045
28046 2010-04-30  Jan Hubicka  <jh@suse.cz>
28047
28048         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
28049         references.
28050
28051 2010-04-30  Jan Hubicka  <jh@suse.cz>
28052
28053         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
28054         needed.
28055
28056 2010-04-30  Richard Guenther  <rguenther@suse.de>
28057
28058         * tree-ssa-structalias.c (get_constraint_for_1): Generate
28059         constraints for CONSTRUCTOR.
28060
28061 2010-04-30  Richard Guenther  <rguenther@suse.de>
28062
28063         PR lto/43946
28064         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
28065         first after all lowering passes.
28066
28067 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28068
28069         * toplev.c: Include varray.h for statistics dumping.
28070         * tree.h: Do not declare varray_head_tag.
28071         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
28072         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
28073         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
28074         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
28075         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
28076         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
28077         c-common.c, c-common.h, reg-stack.c, basic-block.h,
28078         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
28079         include varray.h.
28080         * Makefile.in: Update for abovementioned changes.
28081
28082 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
28083
28084         PR debug/43942
28085         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
28086
28087 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28088
28089         * config/picochip/picochip.c (picochip_legitimize_address): Define.
28090         Use this function to do machine-specific conversion.
28091         (picochip_legitimize_reload_address): Likewise.
28092         (picochip_legitimate_address_p): Check valid base register only if
28093         strict.
28094         (picochip_check_conditional_copy): Check for modw only if opnd is
28095         register.
28096         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
28097         to call the function in c.
28098         * config/picochip/picochip-protos.h
28099         (picochip_legitimize_reload_address): Define.
28100         * config/picochip/picochip.md (supported_compare1): Define.
28101
28102 2010-04-30  Jan Hubicka  <jh@suse.cz>
28103
28104         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
28105         (cgraph_global_info): Remove inlined.
28106         (LTO_cgraph_tag_names): Remove.
28107         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
28108         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
28109         simplify cgraph tags and document.
28110         (lto_output_node): Use only LTO_cgraph_unavail_node and
28111         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
28112         for_functions_valid, global info, process and output flags.
28113         (input_overwrite_node): Initialize estimated stack size and
28114         estimated growth.  Do not read flags we no longer store.
28115         (input_node): Likewise do not read info no longer stored.
28116         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
28117         flag.
28118
28119 2010-04-30  Richard Guenther  <rguenther@suse.de>
28120
28121         PR tree-optimization/43879
28122         * tree-ssa-structalias.c (get_constraint_for_1): Properly
28123         handle non-zero initializers.
28124
28125 2010-04-30  Richard Guenther  <rguenther@suse.de>
28126
28127         * builtins.c (fold_builtin_1): Delete free (0).
28128
28129 2010-04-29  Jan Hubicka  <jh@suse.cz>
28130
28131         * gengtype.c (open_base_files): Add lto-streamer.h
28132         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
28133         (pass_ipa_cp): GGC collect.
28134         * toplev. (compile_file): Do not output symbols.
28135         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
28136         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
28137         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
28138         * lto-section-in.c: Include ggc.h
28139         (lto_new_in_decl_state): Alloc in GGC.
28140         (lto_delete_in_decl_state): Likewise.
28141         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
28142         Collect.
28143
28144 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28145
28146         PR target/42895
28147         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
28148         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
28149         (HONOR_REG_ALLOC_ORDER): Describe new macro.
28150         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
28151         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
28152         account only if HONOR_REG_ALLOC_ORDER is not defined.
28153         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
28154         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
28155
28156 2010-04-29  Jon Grant  <04@jguk.org>
28157
28158         * collect2.c (vflag): Change type from int to bool.
28159         (debug): Likewise.
28160         (helpflag): New global bool.
28161         (main): Set vflag and debug with boolean, not integer truth values.
28162         Accept new "--help" option and output usage text if found.
28163         * collect2.h (vflag): Update prototype.
28164         (debug): Likewise.
28165
28166 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28167
28168         PR bootstrap/43936
28169         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
28170
28171 2010-04-29  Richard Guenther  <rguenther@suse.de>
28172
28173         PR bootstrap/43935
28174         * plugin.h (invoke_plugin_callbacks): Annotate arguments
28175         with ATTRIBUTE_UNUSED.
28176
28177 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28178
28179         PR target/43921
28180         * config/i386/i386.c (get_some_local_dynamic_name): Replace
28181         INSN_P with NONDEBUG_INSN_P.
28182         (distance_non_agu_define): Likewise.
28183         (distance_agu_use): Likewise.
28184
28185 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28186
28187         From Dominique d'Humieres  <dominiq@lps.ens.fr>
28188         PR bootstrap/43858
28189         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
28190         test_set.
28191
28192 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
28193
28194         * plugin.h (invoke_plugin_callbacks): New inline function.
28195         * plugin.c (flag_plugin_added): New global flag.
28196         (add_new_plugin): Initialize above flag.
28197         (invoke_plugin_callbacks): Rename to ...
28198         (invoke_plugin_callbacks_full): ... this.
28199
28200 2010-04-28  Jan Hubicka  <jh@suse.cz>
28201
28202         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
28203         (lto_varpool_replace_node): New.
28204         (lto_symtab_resolve_symbols): Resolve varpool nodes.
28205         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
28206         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
28207         * cgraph.h (varpool_node_ptr): New type.
28208         (varpool_node_ptr): New vector.
28209         (varpool_node_set_def): New structure.
28210         (varpool_node_set): New type.
28211         (varpool_node_set): New vector.
28212         (varpool_node_set_element_def): New structure.
28213         (varpool_node_set_element, const_varpool_node_set_element): New types.
28214         (varpool_node_set_iterator): New type.
28215         (varpool_node): Add prev pointers, add used_from_other_partition,
28216         in_other_partition.
28217         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
28218         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
28219         varpool_get_node, varpool_remove_node): Declare.
28220         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
28221         varpool_node_set_size): New inlines.
28222         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
28223         * tree-pass.h (varpool_node_set_def): Forward declare.
28224         (ipa_opt_pass_d): Summary writting takes vnode sets too.
28225         (ipa_write_optimization_summaries): Update prototype.
28226         * ipa-cp.c (ipcp_write_summary): Update.
28227         * ipa-reference.c (ipa_reference_write_summary): Update.
28228         * lto-cgraph.c (lto_output_varpool_node): New static function.
28229         (output_varpool): New function.
28230         (input_varpool_node): New static function.
28231         (input_varpool_1): New function.
28232         (input_cgraph): Input varpool.
28233         * ipa-pure-const.c (pure_const_write_summary): Update.
28234         * lto-streamer-out.c (lto_output): Update, output varpool too.
28235         (write_global_stream): Kill WPA hack.
28236         (produce_asm_for_decls): Update.
28237         (output_alias_pair_p): Handle variables.
28238         (output_unreferenced_globals): Output only needed partition of varpool.
28239         * ipa-inline.c (inline_write_summary): Update.
28240         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
28241         cgraph.
28242         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
28243         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
28244         varpool_node_set_new, varpool_node_set_add,
28245         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
28246         debug_varpool_node_set): New functions.
28247         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
28248         (execute_one_pass): Process new decls too.
28249         (ipa_write_summaries_2): Pass around vsets.
28250         (ipa_write_summaries_1): Likewise.
28251         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
28252         to add.
28253         (ipa_write_optimization_summaries_1): Pass around vsets.
28254         (ipa_write_optimization_summaries): Likewise.
28255         * varpool.c (varpool_get_node): New.
28256         (varpool_node): Update doubly linked lists.
28257         (varpool_remove_node): New.
28258         (dump_varpool_node): More dumping.
28259         (varpool_enqueue_needed_node): Update doubly linked lists.
28260         (decide_is_variable_needed): Kill ltrans hack.
28261         (varpool_finalize_decl): Kill lto hack.
28262         (varpool_assemble_decl): Skip decls in other partitions.
28263         (varpool_assemble_pending_decls): Update doubly linkes lists.
28264         (varpool_empty_needed_queue): Likewise.
28265         (varpool_extra_name_alias): Likewise.
28266         * lto-streamer.c (lto_get_section_name): Add vars section.
28267         * lto-streamer.h (lto_section_type): Update.
28268         (output_varpool, input_varpool): Declare.
28269
28270 2010-04-28  Mike Stump  <mikestump@comcast.net>
28271
28272         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
28273
28274 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28275
28276         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
28277         record or union type with RECORD_OR_UNION_TYPE_P predicate.
28278         (lto_input_ts_type_tree_pointers): Likewise.
28279         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
28280         (lto_output_ts_type_tree_pointers): Likewise.
28281
28282 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28283
28284         Uniquization of constants at the Tree level
28285         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
28286         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
28287         bit to the end.
28288         (tree_output_constant_def): Declare.
28289         * gimplify.c (gimplify_init_constructor): When using block copy, first
28290         uniquize the constant constructor on the RHS.
28291         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
28292         DECL_IN_CONSTANT_POOL flag.
28293         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
28294         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
28295         constant pool.
28296         (assemble_variable): Deal with symbols belonging to the tree constant
28297         pool.
28298         (get_constant_section): Add ALIGN parameter and simplify.
28299         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
28300         (assemble_constant_contents): Use the expression of the VAR_DECL.
28301         (output_constant_def_contents): Use the alignment of the VAR_DECL.
28302         (tree_output_constant_def): New global function.
28303         (mark_constant): Use the expression of the VAR_DECL.
28304         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
28305         its expression.
28306         (output_object_block): Likewise and assemble the expression.
28307
28308 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28309
28310         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
28311         hash_tree, eq_tree): New tree hash table.
28312         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
28313         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
28314         lto_orig_address_remove): Reimplement.
28315
28316 2010-04-28  Xinliang David Li  <davidxl@google.com>
28317
28318         PR c/42643
28319         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
28320         (compute_uninit_opnds_pos): New function.
28321         (is_non_loop_exit_postdominating): New function.
28322         (compute_control_dep_chain): New function.
28323         (find_pdom): New function.
28324         (convert_control_dep_chain_into_preds): New function.
28325         (find_predicates): New function.
28326         (find_control_equiv_block): New function.
28327         (collect_phi_def_edges): New function.
28328         (find_def_preds): New function.
28329         (find_dom): New function.
28330         (dump_predicates): New function.
28331         (get_cmp_code): New function.
28332         (is_value_included_in): New function.
28333         (find_matching_predicate_in_rest_chains): New function.
28334         (use_pred_not_overlap_with_undef_path_pred): New function.
28335         (is_use_properly_guarded): New function.
28336         (normalize_cond_1): New function.
28337         (is_and_or_or): New function.
28338         (normalize_cond): New function.
28339         (is_gcond_subset_of): New function.
28340         (is_subset_of_any): New function.
28341         (is_or_set_subset_of): New function.
28342         (is_and_set_subset_of): New function.
28343         (is_norm_cond_subset_of): New function.
28344         (is_pred_expr_subset_of): New function.
28345         (is_pred_chain_subset_of): New function.
28346         (is_included_in): New function.
28347         (is_superset_of): New function.
28348         (find_uninit_use): New function.
28349         (warn_uninitialized_phi): New function.
28350         (compute_possibly_undefined_names): New function.
28351         (ssa_undefined_value_p): New function.
28352         (execute_late_warn_uninitialized): New function.
28353         * tree-ssa.c (ssa_undefined_value_p): Removed.
28354         (warn_uninit): Changed to extern.
28355         (warn_uninitialized_phi): Removed.
28356         (warn_uninitialized_vars): Changed to extern.
28357         (execute_late_warn_uninitialized): Removed
28358         * tree-flow.h: Add new prototypes.
28359         * timevar.def: Add new time variable.
28360         * Makefile.in: Add new build file.
28361
28362 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
28363
28364         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
28365         type if available.
28366
28367 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28368
28369         PR target/22224
28370         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
28371
28372 2010-04-28  Martin Jambor  <mjambor@suse.cz>
28373
28374         * cgraph.h (struct cgraph_node): New field indirect_calls.
28375         (struct cgraph_indirect_call_info): New type.
28376         (struct cgraph_edge): Removed field indirect_call. New fields
28377         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
28378         (cgraph_create_indirect_edge): Declare.
28379         (cgraph_make_edge_direct): Likewise.
28380         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
28381         * ipa-prop.h (struct ipa_param_call_note): Removed.
28382         (struct ipa_node_params): Removed field param_calls.
28383         (ipa_create_all_structures_for_iinln): Declare.
28384         * cgraph.c: Described indirect edges and uids in initial comment.
28385         (cgraph_add_edge_to_call_site_hash): New function.
28386         (cgraph_edge): Search also among the indirect edges, use
28387         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
28388         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
28389         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
28390         site hash.
28391         (initialize_inline_failed): Assign a reason to indirect edges.
28392         (cgraph_create_edge_1): New function.
28393         (cgraph_create_edge): Moved some functionality to
28394         cgraph_create_edge_1.
28395         (cgraph_create_indirect_edge): New function.
28396         (cgraph_edge_remove_callee): Add an assert checking for
28397         non-indirectness.
28398         (cgraph_edge_remove_caller): Special-case indirect edges.
28399         (cgraph_remove_edge): Likewise.
28400         (cgraph_set_edge_callee): New function.
28401         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
28402         (cgraph_make_edge_direct): New function.
28403         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
28404         the declaration of the call statement matches.
28405         (cgraph_node_remove_callees): Special-case indirect edges.
28406         (cgraph_clone_edge): Likewise.
28407         (cgraph_clone_node): Clone also the indirect edges.
28408         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
28409         indirect_call, dump count of indirect_calls edges.
28410         * ipa-prop.c (iinlining_processed_edges): New variable.
28411         (ipa_note_param_call): Create indirect edges instead of
28412         creating notes.  New parameter node.
28413         (ipa_analyze_call_uses): New parameter node, pass it on to
28414         ipa_note_param_call.
28415         (ipa_analyze_stmt_uses): Likewise.
28416         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
28417         (print_edge_addition_message): Work on edges rather than on notes.
28418         (update_call_notes_after_inlining): Likewise, renamed to
28419         update_indirect_edges_after_inlining.
28420         (ipa_create_all_structures_for_iinln): New function.
28421         (ipa_free_node_params_substructures): Do not free notes.
28422         (ipa_edge_duplication_hook): Propagate bits within
28423         iinlining_processed_edges bitmap.
28424         (ipa_node_duplication_hook): Do not duplicate notes.
28425         (free_all_ipa_structures_after_ipa_cp): Renamed to
28426         ipa_free_all_structures_after_ipa_cp.
28427         (free_all_ipa_structures_after_iinln): Renamed to
28428         ipa_free_all_structures_after_iinln.
28429         (ipa_write_param_call_note): Removed.
28430         (ipa_read_param_call_note): Removed.
28431         (ipa_write_indirect_edge_info): New function.
28432         (ipa_read_indirect_edge_info): Likewise.
28433         (ipa_write_node_info): Do not stream notes, do stream information
28434         in indirect edges.
28435         (ipa_read_node_info): Likewise.
28436         (lto_ipa_fixup_call_notes): Removed.
28437         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
28438         * ipa-inline.c (pass_ipa_inline): Likewise.
28439         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
28440         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
28441         * tree-inline.c (copy_bb): Removed an unnecessary double check for
28442         is_gimple_call.
28443         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
28444         edges.
28445         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
28446         (output_cgraph): Stream also indirect edges.
28447         (lto_output_edge): Added capability to stream indirect edges.
28448         (input_edge): Likewise.
28449         (input_cgraph_1): Likewise.
28450         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
28451         of indirect edges.
28452
28453 2010-04-28  Richard Guenther  <rguenther@suse.de>
28454
28455         PR tree-optimization/43879
28456         PR tree-optimization/43909
28457         * tree-ssa-structalias.c (struct variable_info): Add
28458         only_restrict_pointers flag.
28459         (new_var_info): Initialize it.  Increment stats.total_vars here.
28460         (create_function_info_for): Do not increment stats.total_vars here.
28461         (get_function_part_constraint): Fix build with C++.
28462         (insert_into_field_list): Remove.
28463         (push_fields_onto_fieldstack): Properly merge fields.
28464         (create_variable_info_for): Split and simplify.
28465         (create_variable_info_for_1): New piece.
28466         (intra_create_variable_infos): Properly make restrict constraints
28467         from parameters.
28468
28469 2010-04-28  Richard Guenther  <rguenther@suse.de>
28470
28471         PR c++/43880
28472         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
28473
28474 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28475             Jan Hubicka  <hubicka@ucw.cz>
28476
28477         * doc/invoke.texi (-Wsuggest-attribute=const,
28478         -Wsuggest-attribute=pure): Document.
28479         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
28480         (function_always_visible_to_compiler_p,
28481         suggest_attribute, warn_function_pure, warn_function_const):
28482         New functions.
28483         (check_call): Improve debug info.
28484         (analyze_function): Do not check availability.
28485         (add_new_function): Check availability.
28486         (propagate): Output warnings.
28487         (skip_function_for_local_pure_const): New function.
28488         (local_pure_const): Use it; output warnings.
28489         * common.opt (Wsuggest-attribute=const,
28490         Wsuggest-attribute=pure): New.
28491
28492 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28493
28494         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
28495         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
28496         or DW_CFA_def_cfa_offset{,_sf}.
28497
28498 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28499
28500         * tree.h: Fix truncated long macros.
28501
28502 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
28503
28504         * collect2.c (TARGET_64BIT): Redefine to target's default.
28505         * tlink.c: Likewise.
28506         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
28507         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
28508         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
28509         for underscoring __USER_LABEL_PREFIX__.
28510         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
28511         (SUB_LINK_ENTRY32): New.
28512         (SUB_LINK_ENTRY64): New.
28513         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
28514         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
28515         (SUB_LINK_ENTRY64): New.
28516         (SUB_LINK_ENTRY): New.
28517         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
28518         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
28519         x64 target is choosen.
28520         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
28521         * configure: Regenerated.
28522         * configure.ac (leading-mingw64-underscores): Option added.
28523
28524 2010-04-27  Jan Hubicka  <jh@suse.cz>
28525
28526         * doc/invoke.texi (-fipa-profile): Document.
28527         * opts.c (decode_options): Enable ipa-profile at -O1.
28528         * timevar.def (TV_IPA_PROFILE): Define.
28529         * common.opt (fipa-profile): Add.
28530         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
28531         flag for clones.
28532         (cgraph_propagate_frequency): Handle only local ones.
28533         * tree-pass.h (pass_ipa_profile): Declare.
28534         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
28535         (pass_ipa_profile): Use TV_IPA_PROFILE.
28536         * ipa.c (ipa_profile): New function.
28537         (gate_ipa_profile): Likewise.
28538         (pass_ipa_profile): New global variable.
28539         * passes.c (pass_ipa_profile): New.
28540
28541 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
28542
28543         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
28544
28545 2010-04-27  Martin Jambor  <mjambor@suse.cz>
28546
28547         PR middle-end/43812
28548         * ipa.c (dissolve_same_comdat_group_list): New function.
28549         (function_and_variable_visibility): Call
28550         dissolve_same_comdat_group_list when comdat group contains external or
28551         newly local nodes.
28552         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
28553         lists are circular and that they contain only DECL_ONE_ONLY nodes.
28554
28555 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28556
28557         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
28558         (const_hash_1) <VECTOR_CST>: New case.
28559         (compare_constant) <VECTOR_CST>: Likewise.
28560         <ADDR_EXPR>: Deal with LABEL_REFs.
28561         (copy_constant) <VECTOR_CST>: New case.
28562
28563 2010-04-27  Jan Hubicka  <jh@suse.cz>
28564
28565         * cgraph.c (cgraph_propagate_frequency): New function.
28566         * cgraph.h (cgraph_propagate_frequency): Declare.
28567         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
28568         cgraph_propagate_frequency.
28569
28570 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28571
28572         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
28573
28574 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
28575
28576         PR target/40657
28577         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
28578         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
28579         here to determine which regs to push and how much stack to reserve.
28580
28581 2010-04-27  Jie Zhang  <jie@codesourcery.com>
28582
28583         * doc/gimple.texi (gimple_statement_with_ops): Remove
28584         addresses_taken field.
28585         (gimple_statement_with_memory_ops): Likewise.
28586
28587 2010-04-27  Jan Hubicka  <jh@suse.cz>
28588
28589         * tree-inline.c (eni_inlining_weights): Remove.
28590         (estimate_num_insns): Special case more builtins.
28591
28592 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
28593
28594         PR c/32207
28595         * c-typeck.c (build_binary_op): Move forward check for comparison
28596         pointer with null pointer constant and adjust the diagnostic message.
28597
28598 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
28599
28600         PR lto/42776
28601         * configure.ac (gcc_cv_as_section_has_align): Set if installed
28602         binutils supports extended .section directive needed by LTO, or
28603         warn if older binutils found.
28604         (LTO_BINARY_READER): New AC_SUBST'd variable.
28605         (LTO_USE_LIBELF): Likewise.
28606         * config.gcc (lto_binary_reader): New target-specific configure
28607         variable.
28608         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
28609         (LTO_USE_LIBELF): Likewise.
28610         * configure: Regenerate.
28611
28612         * collect2.c (is_elf): Rename from this ...
28613         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
28614          object files in addition to ELF-formatted ones.
28615         (scan_prog_file): Caller updated.  Also allow for LTO info marker
28616         symbol to be prefixed or not by an extra underscore.
28617
28618         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
28619         * config/i386/winnt.c: Also #include lto-streamer.h
28620         (i386_pe_asm_named_section): Specify 1-byte section alignment for
28621         LTO named sections.
28622         (i386_pe_asm_output_aligned_decl_common): Add comment.
28623         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
28624
28625 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
28626
28627         PR target/43889
28628         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
28629         Add missing earlyclobber for second alternative.
28630
28631 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
28632
28633         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
28634         bits for artificial defs at the top of the block.
28635         * fwprop.c (single_def_use_enter_block): Don't call it.
28636
28637 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
28638
28639         PR 43715
28640         * configure.ac: Use "$gcc_cv_nm -g" on darwin
28641         instead of "$gcc_cv_objdump -T".
28642         Use "-undefined dynamic_lookup" on darwin.
28643         * configure: Regenerate.
28644
28645 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
28646
28647         PR c/43893
28648         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
28649
28650 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28651
28652         * c-parser.c (struct c_token): Move location field up.
28653         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
28654         (struct c_declspecs): Convert typespec_word, storage_class, and
28655         default_int_p into bitfields.
28656         (struct c_declarator): Move loc field up.
28657
28658 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28659
28660         * cfgloop.h (struct loop): Move can_be_parallel field up.
28661         * ipa-prop.h (struct ip_node_params): Move bitfields up.
28662         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
28663         down.
28664         (struct iv_cand): Convert pos field into a bitfield.
28665         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
28666         field up.
28667         (struct _stmt_vec_info): Shuffle fields for better packing.
28668
28669 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28670
28671         * varasm.c (IN_NAMED_SECTION): Remove guard.
28672         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
28673         (IN_NAMED_SECTION_P): ...this.
28674         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
28675         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
28676
28677 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28678
28679         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
28680         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
28681         of shadowing it.  Fix comments.
28682
28683 2010-04-26  Jan Hubicka  <jh@suse.cz>
28684
28685         * cgraph.c (cgraph_create_node): Set node frequency to normal.
28686         (cgraph_clone_node): Copy function frequency.
28687         * cgraph.h (node_frequency): New enum
28688         (struct cgraph_node): Add.
28689         * final.c (rest_of_clean_state): Update.
28690         * lto-cgraph.c (lto_output_node): Output node frequency.
28691         (input_overwrite_node): Input node frequency.
28692         * tre-ssa-loop-ivopts (computation_cost): Update.
28693         * lto-streamer-out.c (output_function): Do not output function
28694         frequency.
28695         * predict.c (maybe_hot_frequency_p): Update and handle functions
28696         executed once.
28697         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
28698         attribute lookup.
28699         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
28700         (compute_function_frequency): Set noreturn functions to be executed
28701         once.
28702         (choose_function_section): Update.
28703         * lto-streamer-in.c (input_function): Do not input function frequency.
28704         * function.c (allocate_struct_function): Do not initialize function
28705         frequency.
28706         * function.h (function_frequency): Remove.
28707         (struct function): Remove function frequency.
28708         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
28709         (try_update): Update.
28710         * tree-inline.c (initialize_cfun): Do not update function frequency.
28711         * passes.c (pass_init_dump_file): Update.
28712         * i386.c (ix86_compute_frame_layout): Update.
28713         (ix86_pad_returns): Update.
28714
28715 2010-04-26  Jie Zhang  <jie@codesourcery.com>
28716
28717         PR tree-optimization/43833
28718         * tree-vrp.c (range_int_cst_p): New.
28719         (range_int_cst_singleton_p): New.
28720         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
28721         when both operands are constants.  Use range_int_cst_p in
28722         BIT_IOR_EXPR case.
28723
28724 2010-04-26  Jan Hubicka  <jh@suse.cz>
28725
28726         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
28727
28728 2010-04-26  Richard Guenther  <rguenther@suse.de>
28729
28730         PR lto/43080
28731         * gimple.c (gimple_decl_printable_name): Deal gracefully
28732         with a NULL DECL_NAME.
28733
28734 2010-04-26  Richard Guenther  <rguenther@suse.de>
28735
28736         PR lto/42425
28737         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
28738         if emitting debug information and it is either a function
28739         or a namespace decl.
28740
28741 2010-04-26  Ira Rosen  <irar@il.ibm.com>
28742
28743         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
28744         determine if the statement is vectorizable, and a macro to access it.
28745         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
28746         Skip statements that can't be vectorized. If the analysis fails,
28747         mark the statement as unvectorizable if vectorizing basic block.
28748         (vect_compute_data_refs_alignment): Likewise.
28749         (vect_verify_datarefs_alignment): Skip statements marked as
28750         unvectorizable. Add print.
28751         (vect_analyze_group_access): Skip statements that can't be
28752         vectorized. If the analysis fails, mark the statement as
28753         unvectorizable if vectorizing basic block.
28754         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
28755         * tree-vect-stmts.c (vectorizable_store): Fix the number of
28756         generated stmts for SLP.
28757         (new_stmt_vec_info): Initialize the new field.
28758         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
28759         statements marked as unvectorizable.
28760
28761 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
28762
28763         * c-common.c (flag_isoc1x): New.
28764         (flag_isoc99): Update comment.
28765         * c-common.h (flag_isoc1x): New.
28766         (flag_isoc99): Update comment.
28767         * c-cppbuiltin.c (builtin_define_float_constants): Also define
28768         __<type>_DECIMAL_DIG__.
28769         * c-opts.c (set_std_c1x): New.
28770         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
28771         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
28772         * c.opt (-std=c1x, -std=gnu1x): New options.
28773         * doc/cpp.texi: Mention -std=c1x.
28774         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
28775         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
28776         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
28777         * doc/standards.texi: Mention C1X.
28778         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
28779         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
28780         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
28781         Define for C1X.
28782
28783 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
28784
28785         * config/i386/gmon-sol2.c (_mcleanup): Change format string
28786         placeholder from 0x%x to %#x.
28787         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
28788         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
28789         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
28790         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
28791         * config/i386/i386.c (ix86_target_string): Ditto.
28792         (output_pic_addr_const): Ditto.
28793         (print_operand): Ditto.
28794
28795 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
28796
28797         * combine.c (find_split_point): Add third argument.  Use it
28798         to find nested multiply-accumulate instructions.  Adjust calls.
28799         (try_combine): Adjust call to find_split_point.
28800
28801 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
28802
28803         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
28804
28805 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
28806
28807         PR tree-optimization/41442
28808         * fold-const.c (merge_truthop_with_opposite_arm): New function.
28809         (fold_binary_loc): Call it.
28810
28811 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28812
28813         * toplev.c (general_init): Set default for fdiagnostics-show-option.
28814         * opts.c (common_handle_option): Allow disabling it.
28815         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
28816
28817 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
28818
28819         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
28820         between modes if both types are integral.
28821
28822 2010-04-23  Richard Guenther  <rguenther@suse.de>
28823
28824         PR tree-optimization/43572
28825         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
28826
28827 2010-04-23  Richard Guenther  <rguenther@suse.de>
28828
28829         PR lto/43455
28830         * tree-inline.c (tree_can_inline_p): Also check compatibility
28831         of return types.
28832
28833 2010-04-23  Martin Jambor  <mjambor@suse.cz>
28834
28835         PR tree-optimization/43846
28836         * tree-sra.c (struct access): New flag grp_assignment_read.
28837         (build_accesses_from_assign): Set grp_assignment_read.
28838         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
28839         (enum mark_read_status): New type.
28840         (analyze_access_subtree): Propagate grp_assignment_read, create
28841         accesses also if both direct_read and root->grp_assignment_read.
28842
28843 2010-04-23  Martin Jambor  <mjambor@suse.cz>
28844
28845         PR middle-end/43835
28846         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
28847         function does not have type attributes.
28848
28849 2010-04-23  Richard Guenther  <rguenther@suse.de>
28850
28851         PR lto/42653
28852         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
28853         of FUNCTION_DECLs.
28854
28855 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28856
28857         * sese.h (create_if_region_on_edge): Remove.
28858
28859         * sese.c (create_if_region_on_edge): Make static.
28860
28861         * tree-inline.c: Do not include ggc.h.
28862
28863         * expr.c: Do not include ggc.h.
28864
28865         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
28866         dependencies.
28867
28868 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
28869
28870         PR target/43744
28871         * config/sh/sh.c (find_barrier): Don't emit a constant pool
28872         in the middle of insns for casesi_worker_2.
28873
28874 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
28875
28876         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
28877
28878 2010-04-22  Ira Rosen  <irar@il.ibm.com>
28879
28880         PR tree-optimization/43842
28881         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
28882         loop unrolling in update of exit phis. Fix comment.
28883         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
28884         least two reduction statements in the loop before starting SLP
28885         analysis.
28886
28887 2010-04-22  Nick Clifton  <nickc@redhat.com>
28888
28889         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
28890
28891 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
28892
28893         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
28894         to simplify a + ~a.
28895
28896 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28897
28898         * tree-parloops.c (loop_parallel_p): New argument
28899         parloop_obstack.  Pass it down.
28900         (parallelize_loops): New variable parloop_obstack.  Initialize it,
28901         pass it down, free it.
28902
28903         * tree-loop-linear.c (linear_transform_loops): Pass down
28904         lambda_obstack.
28905
28906         * tree-data-ref.h (lambda_compute_access_matrices): New argument
28907         of type struct obstack *.
28908
28909         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
28910         scratch_obstack.  Initialize it, pass down, free it.
28911
28912         * lambda.h (lambda_loop_new): Remove.
28913         (lambda_matrix_new, lambda_matrix_inverse)
28914         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
28915         argument of type struct obstack *.
28916
28917         * lambda-trans.c (lambda_trans_matrix_new): New argument
28918         lambda_obstack.  Pass it down, use obstack allocation for ret.
28919         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
28920         it down.
28921
28922         * lambda-mat.c (lambda_matrix_get_column)
28923         (lambda_matrix_project_to_null): Remove.
28924         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
28925         allocation for mat.
28926         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
28927         lambda_obstack.
28928
28929         * lambda-code.c (lambda_loop_new): New function.
28930         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
28931         (lambda_compute_auxillary_space, lambda_compute_target_space)
28932         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
28933         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
28934         (build_access_matrix): New argument lambda_obstack.  Use obstack
28935         allocation for am.
28936         (lambda_compute_step_signs, lambda_compute_access_matrices): New
28937         argument lambda_obstack.  Pass it down.
28938
28939 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28940
28941         * optabs.h (expand_widening_mult): Declare.
28942
28943 2010-04-22  Richard Guenther  <rguenther@suse.de>
28944
28945         PR tree-optimization/43845
28946         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
28947         lookup the CALL_EXPR function and arguments.
28948
28949 2010-04-22  Nick Clifton  <nickc@redhat.com>
28950
28951         * config/stormy16/stormy16.c
28952         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
28953         * config/stormy16/stormy16.h: Tidy up formatting.
28954         (DONT_USE_BUILTIN_SETJMP): Remove definition.
28955         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
28956         (ineqbranchsi): Delete pattern.
28957         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
28958         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
28959         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
28960         stormy16-lib2-ucmpsi2.c.
28961
28962 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28963
28964         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
28965         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
28966         extra set merge_set_noclobber, and use it to relax the final test
28967         slightly.
28968         * df.h (df_simulate_find_noclobber_defs): Declare.
28969         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
28970         conditional defs.
28971         (df_simulate_find_noclobber_defs): New function.
28972
28973 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
28974
28975         * config/i386/i386.md: Use {} around multi-line preparation statements.
28976
28977 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28978
28979         * c-tree.h (push_init_level, pop_init_level, set_init_index)
28980         (process_init_element): New argument of type struct obstack *.
28981
28982         * c-typeck.c (push_init_level, pop_init_level, set_designator)
28983         (set_init_index, set_init_label, set_nonincremental_init)
28984         (set_nonincremental_init_from_string, find_init_member)
28985         (output_init_element, output_pending_init_elements)
28986         (process_init_element): New argument braced_init_obstack.  Pass it
28987         down.
28988         (push_range_stack, add_pending_init): New argument
28989         braced_init_obstack.  Use obstack allocation.
28990
28991         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
28992         braced_init_obstack.  Pass it down.
28993         (c_parser_braced_init): New variables ret, braced_init_obstack.
28994         Initialize obstack, pass it down and finally free it.
28995
28996 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
28997
28998         PR middle-end/29274
28999         * tree-pass.h (pass_optimize_widening_mul): Declare.
29000         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
29001         gate_optimize_widening_mul): New static functions.
29002         (pass_optimize_widening_mul): New.
29003         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
29004         <case MULT_EXPR>: Remove support for widening multiplies.
29005         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
29006         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
29007         simplify_gen_unary rather than directly building extensions.
29008         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
29009         WIDEN_MULT_EXPR.
29010         * expmed.c (expand_widening_mult): New function.
29011         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
29012
29013 2010-04-21  Jan Hubicka  <jh@suse.cz>
29014
29015         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
29016         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
29017         * lto-wpa-fixup.c: Remove.
29018         * Makefile.in (lto-wpa-fixup.o): Remove.
29019         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
29020         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
29021         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
29022
29023 2010-04-21  Jan Hubicka  <jh@suse.cz>
29024
29025         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
29026         add write_optimization_summary, read_optimization_summary.
29027         (ipa_write_summaries_of_cgraph_node_set): Remove.
29028         (ipa_write_optimization_summaries): Declare.
29029         (ipa_read_optimization_summaries): Declare.
29030         * ipa-cp.c (pass_ipa_cp): Update.
29031         * ipa-reference.c (pass_ipa_reference): Update.
29032         * ipa-pure-const.c (pass_ipa_pure_const): Update.
29033         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
29034         Update.
29035         * ipa-inline.c (pass_ipa_inline): Update.
29036         * ipa.c (pass_ipa_whole_program): Update.
29037         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
29038         * passes.c (ipa_write_summaries_1): Do not test wpa.
29039         (ipa_write_optimization_summaries_1): New.
29040         (ipa_write_optimization_summaries): New.
29041         (ipa_read_summaries): Do not test ltrans.
29042         (ipa_read_optimization_summaries_1): New.
29043         (ipa_read_optimization_summaries): New.
29044
29045 2010-04-21  Jan Hubicka  <jh@suse.cz>
29046
29047         * lto-cgraph.c (lto_output_node): Do not output comdat groups
29048         for boundary nodes.
29049         (output_cgraph): Do not arrange comdat groups for boundary nodes.
29050
29051 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29052
29053         PR debug/40040
29054         * dwarf2out.c (add_name_and_src_coords_attributes): Add
29055         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
29056
29057 2010-04-21  Jan Hubicka  <jh@suse.cz>
29058
29059         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
29060
29061 2010-04-21  Jan Hubicka  <jh@suse.cz>
29062
29063         * varpool.c (decide_is_variable_needed): Variable is always needed
29064         during ltrans.
29065
29066 2010-04-21  Jan Hubicka  <jh@suse.cz>
29067
29068         * opts.c (decode_options): Enable pure-const pass for whopr.
29069
29070 2010-04-21  Jan Hubicka  <jh@suse.cz>
29071
29072         * cgraph.c (dump_cgraph_node): Dump also assembler name.
29073         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
29074         at WPA dumping.
29075         (cgraph_decide_inlining): Do not expect callee to be removed in all
29076         cases.
29077
29078 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
29079
29080         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
29081
29082 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29083
29084         * config/i386/i386.md (x86_shrd): Add athlon_decode and
29085         amdfam10_decode attributes.
29086
29087 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29088
29089         PR middle-end/43570
29090         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
29091         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
29092         (lower_copyprivate_clauses): Use private var in outer
29093         context instead of original var.  Make sure the types
29094         are correct for VLAs.
29095
29096 2010-04-21  Richard Guenther  <rguenther@suse.de>
29097
29098         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
29099         to non-pointer objects.
29100
29101 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29102
29103         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
29104         last chain entry if it starts with the still current label.
29105         (add_location_or_const_value_attribute): Check that
29106         loc_list->first->next is NULL instead of comparing ->first with ->last.
29107         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
29108         to add_var_loc_to_decl.
29109
29110         * dwarf2out.c (output_call_frame_info): For dw_cie_version
29111         >= 4 add also address size and segment size fields into CIE header.
29112
29113         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
29114         long as address size is the same as sizeof (void *) and
29115         segment size is 0.
29116         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
29117         address size or segment size is unexpected, return DW_EH_PE_omit.
29118         (classify_object_over_fdes): If get_cie_encoding returned
29119         DW_EH_PE_omit, return -1.
29120         (init_object): If classify_object_over_fdes returned -1,
29121         pretend there were no FDEs at all.
29122
29123 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29124
29125         * config/i386/i386.md (bswap<mode>2): Macroize expander from
29126         bswap{si,di}2 using SWI48 mode iterator.
29127         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
29128         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
29129         set modrm attribute of bswap insn to 0 and remove length attribute.
29130         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
29131         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
29132         set mode attribute to <MODE> and remove length attribute.
29133
29134 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
29135
29136         PR rtl-optimization/43520
29137         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
29138         zero available registers.
29139
29140 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29141
29142         * builtins.c (fold_builtin_cproj): Fold more cases.
29143
29144 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29145
29146         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
29147         (fold_builtin_1): Fold builtin cproj.
29148         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
29149         Use ATTR_CONST_NOTHROW_LIST.
29150
29151 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
29152
29153         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
29154         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
29155         ffsi2_no_cmove for !TARGET_CMOVE.
29156         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
29157         (ffssi2): Remove expander.
29158         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
29159         mode iterator.
29160         (ctz<mode>2): Ditto from ctz{si,di}2.
29161         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
29162         mode iterator.
29163         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
29164         mode iterator.
29165
29166 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29167
29168         * dwarf2out.c (AT_linkage_name): Define.
29169         (clone_as_declaration): Handle DW_AT_linkage_name.
29170         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
29171         of DW_AT_MIPS_linkage_name.
29172         (move_linkage_attr): Likewise.
29173         (dwarf2out_finish): Likewise.
29174
29175 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
29176
29177         PR middle-end/41952
29178         * fold-const.c (fold_comparison): New folding rule.
29179
29180 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
29181
29182         * double-int.h (double_int_setbit): Declare.
29183         * double-int.c (double_int_setbit): New function.
29184         * rtl.h (immed_double_int_const): Declare.
29185         * emit-rtl.c (immed_double_int_const): New function.
29186         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
29187         and immed_double_int_const functions.
29188         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
29189         expand_copysign_bit): (Ditto.).
29190         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
29191         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
29192         * dojump.c (prefer_and_bit_test): (Ditto.).
29193         * expr.c (convert_modes, reduce_to_bit_field_precision,
29194         const_vector_from_tree): (Ditto.).
29195         * expmed.c (mask_rtx, lshift_value): (Ditto.).
29196
29197 2010-04-20  Jan Hubicka  <jh@suse.cz>
29198
29199         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
29200         (dump_cgraph_node): Dump new flags.
29201         * cgraph.h (struct cgraph_node): Add flags
29202         reachable_from_other_partition and in_other_partition.
29203         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
29204         other partition can not be removed.
29205         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
29206         the other partition must be output; silence sanity checking on
29207         leaking functions bodies from other paritition.
29208         * lto-cgraph.c (reachable_from_other_partition_p): New function.
29209         (lto_output_node): Output new flags; do not sanity check that inline
29210         clones are output; drop lto_forced_extern_inline_p code; do not mock
29211         visibility flags at partition boundaries.
29212         (add_node_to): New function.
29213         (output_cgraph): Use it to sort functions so masters appear before
29214         clones.
29215         (input_overwrite_node): Input new flags.
29216         * passes.c (ipa_write_summaries): Do not call
29217         lto_new_extern_inline_states.
29218         * lto-section-out.c (forced_extern_inline,
29219         lto_new_extern_inline_states lto_delete_extern_inline_states,
29220         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
29221         * lto-streamer.h (lto_new_extern_inline_states,
29222         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
29223         lto_forced_extern_inline_p): Kill.
29224
29225 2010-04-20  Richard Guenther  <rguenther@suse.de>
29226
29227         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
29228         from vars that can have pointers.
29229         (process_constraint): Dump useless constraints.
29230
29231 2010-04-20  Richard Guenther  <rguenther@suse.de>
29232
29233         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
29234         (dump_sa_points_to_info): Remove asserts.
29235         (init_base_vars): nothing_id isn't an escape point nor does it
29236         have pointers.
29237
29238 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29239
29240         * tree.h (TYPE_REF_IS_RVALUE): Define.
29241         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
29242         should_move_die_to_comdat, prune_unused_types_walk): Handle
29243         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
29244         (modified_type_die, gen_reference_type_die): Emit
29245         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
29246         if TYPE_REF_IS_RVALUE and -gdwarf-4.
29247
29248 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29249
29250         PR target/43635
29251         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
29252         calls for -fpic -m31 if they have been sibcall optimized.
29253
29254 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
29255
29256         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
29257         ar.lc fixed and call-used.
29258
29259         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
29260
29261 2010-04-19  Jan Hubicka  <jh@suse.cz>
29262
29263         * opts.c (decode_options): Disable whpr incompatible passes.
29264         * lto/lto.c (lto_1_to_1_map): Skip clones.
29265         (read_cgraph_and_symbols): Do not mark everything as needed.
29266         (do_whole_program_analysis): Do map only after optimizing;
29267         set proper cgraph_state; use passmanager.
29268
29269 2010-04-19  DJ Delorie  <dj@redhat.com>
29270
29271         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
29272         POINTER_PLUS_EXPR and fix them.
29273
29274 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
29275
29276         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
29277         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
29278         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
29279         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
29280         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
29281         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
29282         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
29283         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
29284         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
29285         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
29286         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
29287
29288 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
29289
29290         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
29291         (check_cond_move_block): Likewise.
29292         (cond_move_process_if_block): Likewise.
29293         (noce_find_if_block): Improve formatting.
29294         (find_if_header): Pass 0 to memset and tweak conditions.
29295         (cond_exec_find_if_block): Fix long lines and tweak conditions.
29296
29297 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29298
29299         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
29300         for -gdwarf-4.
29301
29302         PR middle-end/43337
29303         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
29304         with non-local decl doesn't need chain.
29305
29306 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
29307
29308         * ira-color.c (allocno_reload_assign): Avoid accumulating
29309         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
29310
29311 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29312
29313         * gimple.h (create_tmp_reg): Declare.
29314         * gimplify.c (create_tmp_reg): New function.
29315         (gimplify_return_expr): Use create_tmp_reg.
29316         (gimplify_omp_atomic): Likewise.
29317         (gimple_regimplify_operands): Likewise.
29318         * tree-dfa.c (make_rename_temp): Likewise.
29319         * tree-predcom.c (predcom_tmp_var): Likewise.
29320         (reassociate_to_the_same_stmt): Likewise.
29321         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
29322         (get_replaced_param_substitute): Likewise.
29323         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29324         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
29325         * tree-ssa-pre.c (get_representative_for): Likewise.
29326         (create_expression_by_pieces): Likewise.
29327         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
29328         (create_tailcall_accumulator): Likewise.
29329
29330 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29331
29332         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
29333         new_stmt.
29334         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
29335
29336 2010-04-19  Richard Guenther  <rguenther@suse.de>
29337
29338         PR tree-optimization/43796
29339         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
29340         from SCEV in the lattice.
29341         (vrp_visit_phi_node): Dump change.
29342
29343 2010-04-19  Richard Guenther  <rguenther@suse.de>
29344
29345         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
29346         * configure: Re-generated.
29347
29348 2010-04-19  Richard Guenther  <rguenther@suse.de>
29349
29350         PR tree-optimization/43783
29351         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
29352         constant ARRAY_REF operands two and three if possible.
29353
29354 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
29355
29356         PR target/43766
29357         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
29358
29359 2010-04-19  Jie Zhang  <jie@codesourcery.com>
29360
29361         PR target/43662
29362         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
29363
29364 2010-04-19  Ira Rosen  <irar@il.ibm.com>
29365
29366         PR tree-optimization/37027
29367         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
29368         and macro to access it.
29369         (vectorizable_reduction): Add argument.
29370         (vect_get_slp_defs): Likewise.
29371         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
29372         statements for possible use in SLP.
29373         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
29374         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
29375         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
29376         add new argument.
29377         (vectorizable_reduction): Likewise.
29378         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
29379         vect_get_slp_defs.
29380         (vectorizable_type_demotion, vectorizable_type_promotion,
29381         vectorizable_store): Likewise.
29382         (vect_analyze_stmt): Update call to vectorizable_reduction.
29383         (vect_transform_stmt): Likewise.
29384         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
29385         (vect_build_slp_tree): Fix indentation. Check that there are no loads
29386         from different interleaving chains in same node.
29387         (vect_slp_rearrange_stmts): New function.
29388         (vect_supported_load_permutation_p): Allow load permutations for
29389         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
29390         inside SLP nodes if necessary.
29391         (vect_analyze_slp_instance): Handle reductions.
29392         (vect_analyze_slp): Try to build SLP instances originating from groups
29393         of reductions.
29394         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
29395         (vect_get_constant_vectors): Create initial vectors for reductions
29396         according to reduction code. Add new argument.
29397         (vect_get_slp_defs): Add new argument, pass it to
29398         vect_get_constant_vectors.
29399         (vect_schedule_slp_instance): Remove SLP tree root statements.
29400
29401 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29402
29403         * tree.h (ENUM_IS_SCOPED): Define.
29404         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
29405         for ENUM_IS_SCOPED enums.
29406
29407 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
29408
29409         * fold-const.c (fold_comparison): Use ssizetype.
29410         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
29411         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
29412         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
29413         * tree-object-size.c (compute_object_sizes): Use size_type_node.
29414
29415         * tree.h (initialize_sizetypes): Remove parameter.
29416         (build_common_tree_nodes): Remove second parameter.
29417         * stor-layout.c (initialize_sizetypes): Remove parameter.
29418         Always create an unsigned type.
29419         (set_sizetype): Assert that the passed type is unsigned and simplify.
29420         * tree.c (build_common_tree_nodes): Remove second parameter.
29421         Adjust call to initialize_sizetypes.
29422         * c-decl.c (c_init_decl_processing): Remove second argument in call to
29423         build_common_tree_nodes.
29424
29425 2010-04-18  Matthias Klose  <doko@ubuntu.com>
29426
29427         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
29428
29429 2010-04-18  Ira Rosen  <irar@il.ibm.com>
29430
29431         PR tree-optimization/43771
29432         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
29433         load permutation doesn't have gaps.
29434
29435 2010-04-18  Jan Hubicka  <jh@suse.cz>
29436
29437         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
29438         (sse_prologue_save_insn expander): Use new pattern.
29439         (sse_prologue_save_insn1): New pattern and splitter.
29440         (sse_prologue_save_insn): Update to deal also with 64bit aligned
29441         blocks.
29442         * i386.c (setup_incoming_varargs_64): Do not compute jump
29443         destination here.
29444         (ix86_gimplify_va_arg): Update alignment needed.
29445         (ix86_local_alignment): Do not align all local arrays to 128bit.
29446
29447 2010-04-17  Jan Hubicka  <jh@suse.cz>
29448
29449         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
29450
29451 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29452
29453         * arm.md (negdi2): Remove redundant code to force values into a
29454         register.
29455
29456 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29457
29458         * arm/bpabi.S: Add EABI alignment attributes to objects.
29459         * arm/bpabi-v6m.S: Likewise.
29460         * arm/crti.asm: Likewise.
29461         * arm/crtn.asm: Likewise.
29462         * arm/lib1funcs.asm: Likewise.
29463         * arm/libunwind.S: Likewise.
29464
29465 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29466
29467         * arm-protos.h (tune_params): New structure.
29468         * arm.c (current_tune): New variable.
29469         (arm_constant_limit): Delete.
29470         (struct processors): Add pointer to the tune parameters.
29471         (arm_slowmul_tune): New tuning option.
29472         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
29473         (all_cores): Adjust to pick up the tuning model.
29474         (arm_constant_limit): New function.
29475         (arm_override_options): Select the appropriate tuning model.  Delete
29476         initialization of arm_const_limit.
29477         (arm_split_constant): Use the new constant-limit model.
29478         (arm_rtx_costs): Pick up the current tuning model.
29479         * arm.md (is_strongarm, is_xscale): Delete.
29480         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
29481         for Xscale variant architectures.
29482         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
29483
29484 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29485
29486         * config/arm/arm.c (arm_gen_constant): Remove unused variable
29487         can_shift.
29488         (arm_rtx_costs_1): Remove unused variable extra_cost.
29489         (arm_unwind_emit_set): Use variable offset.
29490         (thumb1_output_casesi): Remove unused variable flags.
29491
29492 2010-04-16  Jeff Law  <law@redhat.com>
29493
29494         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
29495         needing assignment rather than doing a two-phase assignment.  Remove
29496         unused variable 'm'.
29497
29498 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29499
29500         PR bootstrap/43767
29501         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
29502
29503 2010-04-16  Doug Kwan  <dougkwan@google.com>
29504
29505         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
29506         (next_operand_entry_id): New static variable.
29507         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
29508         (add_to_ops_vec): Assigned unique ID to operand entry.
29509         (struct oecount_s): New field ID.
29510         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
29511         (undistribute_ops_list): Assign unique IDs to oecounts.
29512         (init_reassoc): reset next_operand_entry_id.
29513
29514 2010-04-16  Doug Kwan  <dougkwan@google.com>
29515
29516         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
29517         missing left parenthesis.
29518
29519 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
29520
29521         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
29522         *btdi_rex64 using SWI48 mode iterator.
29523         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
29524         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
29525         *jcc_btdi_mask_rex64.
29526
29527 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
29528
29529         * double-int.h (tree_to_double_int): Convert to macro.
29530         * double-int.c (tree_to_double_int): Remove.
29531
29532 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29533
29534         PR debug/43762
29535         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
29536         with want_address 2 and in case a single element list might be
29537         possible, call it again with want_address 0.
29538
29539 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
29540
29541         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
29542         case 'W' print operands for HI mode.
29543         * config/h8300/h8300.h (Y0, Y2) : New constraints.
29544         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
29545         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
29546         * config/h8300/predicate.md (bit_register_indirect_operand): New.
29547
29548         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
29549
29550         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
29551         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
29552         #xx:3 and #xx:4 mode.
29553
29554         * config/h8300/h8300.md (inverted load with HImode dest): Add
29555         support for H8300SX.
29556
29557         * config/h8300/predicate.md (bit_operand): Allow immediate values that
29558         satisfy 'U' constraint.
29559
29560 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29561
29562         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
29563         * configure: Regenerate.
29564         * config.in: Regenerate.
29565         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
29566         works.
29567
29568 2010-04-16  Richard Guenther  <rguenther@suse.de>
29569
29570         * tree.h (struct tree_decl_minimal): Move pt_uid ...
29571         (struct tree_decl_common): ... here.
29572         (DECL_PT_UID): Adjust.
29573         (SET_DECL_PT_UID): Likewise.
29574         (DECL_PT_UID_SET_P): Likewise.
29575
29576 2010-04-16  Richard Guenther  <rguenther@suse.de>
29577
29578         PR tree-optimization/43572
29579         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
29580         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
29581         * tree-flow.h (is_call_clobbered): Remove.
29582         * tree-flow-inline.h (is_call_clobbered): Likewise.
29583         * tree-dfa.c (dump_variable): Do not dump call clobber state.
29584         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
29585         (execute_return_slot_opt): Adjust.
29586         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
29587         check for call clobbered vars here.
29588         (find_tail_calls): Move tailcall verification to the
29589         proper place.
29590
29591 2010-04-16  Diego Novillo  <dnovillo@google.com>
29592
29593         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
29594
29595 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29596
29597         PR target/40603
29598         * config/arm/arm.md (cbranchqi4): New pattern.
29599         * config/arm/predicates.md (const0_operand,
29600         cbranchqi4_comparison_operator): New predicates.
29601
29602 2010-04-16  Richard Guenther  <rguenther@suse.de>
29603
29604         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
29605         (dump_gimple_stmt): Likewise.
29606
29607 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29608
29609         * recog.h (struct recog_data): New field is_operator.
29610         (struct insn_operand_data): New field is_operator.
29611         * recog.c (extract_insn): Set recog_data.is_operator.
29612         * genoutput.c (output_operand_data): Emit code to set the
29613         is_operator field.
29614         * reload.c (find_reloads): Use it rather than testing for an
29615         empty constraint string.
29616
29617         PR target/41514
29618         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
29619         If the previous insn is a cbranchsi4_insn with the same arguments,
29620         omit the compare instruction.
29621
29622         * config/arm/arm.md (addsi3_cbranch): If destination is a high
29623         register, inputs must be low registers and we need a low register
29624         scratch.  Handle alternative 2 like alternative 3.
29625
29626 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29627
29628         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
29629         don't call get_addr on both.  If one expression is a VALUE and
29630         the other a REG, check VALUE's locs if the REG isn't among them.
29631
29632 2010-04-16  Christian Bruel  <christian.bruel@st.com>
29633
29634         * config/sh/sh.h (sh_frame_pointer_required): New function.
29635         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
29636         (flag_omit_frame_pointer) Set.
29637         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
29638         (rounded_frame_size): Adjust size with outgoing_args_size.
29639         (sh_set_return_address): Must return from stack pointer.
29640         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
29641         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
29642         (ACCUMULATE_OUTGOING_ARGS): Define.
29643         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
29644         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
29645
29646 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
29647
29648         PR target/43471
29649         * config/sh/sh.c (sh_legitimize_reload_address): Use
29650         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
29651         Remove a unneeded check for offset_base.
29652
29653 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
29654
29655         * configure: Regenerated.
29656
29657 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29658
29659         * config/s390/s390.c (s390_call_save_register_used): Switch back
29660         to HARD_REGNO_NREGS.
29661
29662 2010-04-15  Richard Guenther  <rguenther@suse.de>
29663
29664         * alias.c (alias_set_subset_of): Handle alias-set zero
29665         child properly.
29666
29667 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
29668             Julian Brown  <julian@codesourcery.com>
29669
29670         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
29671         alternatives according to use of high and low regs.
29672         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
29673         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
29674         optimizing for size on Thumb-2.
29675
29676 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
29677
29678         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
29679
29680 2010-04-15  Richard Guenther  <rguenther@suse.de>
29681
29682         * tree-ssa-structalias.c (struct variable_info): Add
29683         is_fn_info flag.
29684         (new_var_info): Initialize it.
29685         (dump_constraints): Support printing last added constraints.
29686         (debug_constraints): Adjust.
29687         (dump_constraint_graph): Likewise.
29688         (make_heapvar_for): Check for NULL cfun.
29689         (get_function_part_constraint): New function.
29690         (get_fi_for_callee): Likewise.
29691         (find_func_aliases): Properly implement IPA PTA constraints.
29692         (process_ipa_clobber): New function.
29693         (find_func_clobbers): Likewise.
29694         (insert_into_field_list_sorted): Remove.
29695         (create_function_info_for): Properly allocate vars for IPA mode.
29696         Do not use insert_into_field_list_sorted.
29697         (create_variable_info_for): Properly generate constraints for
29698         global vars in IPA mode.
29699         (dump_solution_for_var): Always dump the solution.
29700         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
29701         (find_what_var_points_to): Adjust.
29702         (pt_solution_set): Change.
29703         (pt_solution_ior_into): New function.
29704         (pt_solution_empty_p): Export.
29705         (pt_solution_includes_global): Adjust.
29706         (pt_solution_includes_1): Likewise.
29707         (pt_solutions_intersect_1): Likewise.
29708         (dump_sa_points_to_info): Check some invariants.
29709         (solve_constraints): Move constraint dumping ...
29710         (compute_points_to_sets): ... here.
29711         (ipa_pta_execute): ... and here.
29712         (compute_may_aliases): Do not re-compute points-to info
29713         locally if IPA info is available.
29714         (ipa_escaped_pt): New global var.
29715         (ipa_pta_execute): Properly implement IPA PTA.
29716         * tree-into-ssa.c (dump_decl_set): Support dumping
29717         decls not in referenced-vars.
29718         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
29719         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
29720         (dump_points_to_solution): Likewise.
29721         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
29722         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
29723         (remap_gimple_stmt): Reset call clobber/use information if necessary.
29724         (copy_decl_to_var): Copy DECL_PT_UID.
29725         (copy_result_decl_to_var): Likewise.
29726         * tree.c (make_node_stat): Initialize DECL_PT_UID.
29727         (copy_node_stat): Copy it.
29728         * tree.h (DECL_PT_UID): New macro.
29729         (SET_DECL_PT_UID): Likewise.
29730         (DECL_PT_UID_SET_P): Likewise.
29731         (struct tree_decl_minimal): Add pt_uid member.
29732         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
29733         (pt_solution_empty_p): Declare.
29734         (pt_solution_set): Adjust.
29735         (ipa_escaped_pt): Declare.
29736         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
29737         * gimple-pretty-print.c (pp_points_to_solution): New function.
29738         (dump_gimple_call): Dump call clobber/use information.
29739         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
29740         * tree-pass.h (TDF_ALIAS): New dump option.
29741         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
29742         * doc/invoke.texi (-fipa-pta): Update documentation.
29743
29744 2010-04-15  Richard Guenther  <rguenther@suse.de>
29745
29746         * Makefile.in (OBJS-common): Add gimple-fold.o.
29747         (gimple-fold.o): New rule.
29748         * tree.h (maybe_fold_offset_to_reference,
29749         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
29750         prototypes ...
29751         * gimple.h: ... here.
29752         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
29753         may_propagate_address_into_dereference): Move prototypes ...
29754         * gimple.h: ... here.
29755         * tree-ssa-ccp.c (get_symbol_constant_value,
29756         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
29757         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
29758         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
29759         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
29760         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
29761         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
29762         gimplify_and_update_call_from_tree): Move ...
29763         * gimple-fold.c: ... here.  New file.
29764         (ccp_fold_builtin): Rename to ...
29765         (gimple_fold_builtin): ... this.
29766         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
29767
29768 2010-04-15  Richard Guenther  <rguenther@suse.de>
29769
29770         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
29771         fit_double_type, force_fit_type_double, add_double_with_sign,
29772         neg_double, mul_double_with_sign, lshift_double, rshift_double,
29773         lrotate_double, rrotate_double, div_and_round_double): Move ...
29774         * double-int.c: ... here.
29775         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
29776         add_double, neg_double, mul_double_with_sign, mul_double,
29777         lshift_double, rshift_double, lrotate_double, rrotate_double,
29778         div_and_round_double): Move prototypes ...
29779         * double-int.h: ... here.
29780
29781 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
29782
29783         PR target/43742
29784         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
29785         matching constraints to ensure inputs match the output.
29786
29787 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
29788
29789         PR target/43742
29790         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
29791         in an input-only operand.
29792
29793 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
29794
29795         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
29796         (double_int_not, double_int_lshift, double_int_rshift): Declare.
29797         (double_int_negative_p): Convert to static inline function.
29798         * double-int.c (double_int_lshift, double_int_lshift): New functions.
29799         (double_int_negative_p): Remove.
29800         * tree.h (lshift_double, rshift_double):
29801         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
29802         * fold-const.c (fold_convert_const_int_from_real,
29803         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
29804         (lshift_double): Change type of arith argument to bool.
29805         (rshift_double): Change type of arith argument to bool. Correct
29806         comment.
29807         * expmed.c (mask_rtx, lshift_value): (Ditto.).
29808
29809 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
29810
29811         PR target/21803
29812         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
29813         at the start and end of the then/else blocks, and omit them from the
29814         conversion.
29815         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
29816         argument; all callers changed.  Pass zero to old_insns_match_p instead.
29817         (flow_find_head_matching_sequence): New function.
29818         (old_insns_match_p): Check REG_EH_REGION notes for calls.
29819         * basic-block.h (flow_find_cross_jump,
29820         flow_find_head_matching_sequence): Declare functions.
29821
29822 2010-04-14  Jason Merrill  <jason@redhat.com>
29823
29824         PR c++/36625
29825         * c-common.c (attribute_takes_identifier_p): New fn.
29826         * c-common.h: Declare it.
29827
29828 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29829
29830         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
29831         splitter condition.
29832         (*udivmod<mode>4): Ditto.
29833
29834 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29835
29836         * config/i386/i386.md (maxmin_int): Rename code attribute from
29837         maxminiprefix and update all users.
29838         (maxmin_float): Ditto from maxminfprefix.
29839         (logic): Ditto from logicprefix.
29840         (absneg_mnemonic): Ditto from absnegprefix.
29841         * config/i386/mmx.md: Update all users of maxminiprefix,
29842         maxminfprefix and logicprefix for rename.
29843         * config/i386/sse.md: Ditto.
29844         * config/i386/sync.md (sync_<code><mode>): Update for
29845         logicprefix rename.
29846
29847 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29848
29849         PR 42966
29850         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
29851         warnings converted to errors.
29852
29853 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29854
29855         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
29856         used insn_type variable.
29857         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
29858         to avoid set-but-not-used warning.
29859
29860 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29861
29862         * df-core.c (df_ref_debug): Change format string placeholder
29863         from 0x%x to %#x.
29864         * dwarf2asm.c (dw2_asm_output_data_raw,
29865         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
29866         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
29867         * dwarf2out.c (output_cfi, output_cfi_directive,
29868         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
29869         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
29870         Ditto.
29871         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
29872         * print-rtl.c (print_rtx): Ditto.
29873
29874 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
29875
29876         PR middle-end/42694
29877         * builtins.c (expand_builtin_pow_root): New function to expand pow
29878         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
29879         series of sqrt and cbrt calls under -ffast-math.
29880         (expand_builtin_pow): Call it.
29881
29882 2010-04-14  Michael Matz  <matz@suse.de>
29883
29884         PR tree-optimization/42963
29885         * tree-cfg.c (touched_switch_bbs): New static variable.
29886         (group_case_labels_stmt): New function broken out from ...
29887         (group_case_labels): ... here, use the above.
29888         (start_recording_case_labels): Allocate touched_switch_bbs.
29889         (end_recording_case_labels): Deallocate it, call
29890         group_case_labels_stmt.
29891         (gimple_redirect_edge_and_branch): Remember index of affected BB.
29892
29893 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29894
29895         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
29896         from insn template.
29897
29898 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
29899
29900         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
29901
29902 2010-04-13  Jan Hubicka  <jh@suse.cz>
29903
29904         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
29905         of optimized out static functions.
29906         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
29907         cost computation.  Also sanity check for overflows.
29908         (update_caller_keys): Update cgraph_edge_badness call; properly
29909         update fibheap and sanity check that it is up to date.
29910         (add_new_edges_to_heap): Update cgraph_edge_badness.
29911         (cgraph_decide_inlining_of_small_function): Likewise;
29912         add sanity checking that badness in heap is up to date;
29913         improve dumping of reason; Update badness of calls to the
29914         offline copy of function currently inlined; dump badness
29915         of functions not inlined because of unit growth limits.
29916
29917 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
29918
29919         PR middle-end/32628
29920         * c-common.c (pointer_int_sum): Disregard overflow that occured only
29921         because of sign-extension change when converting to sizetype here...
29922         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
29923
29924         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
29925         the folding to constants.  Remove redundant final conversion.
29926         (fold_binary) <associate>: Do not associate if the re-association of
29927         constants alone overflows.
29928         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
29929         to the end of the list.
29930         (multiple_of_p) <COND_EXPR>: New case.
29931
29932 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29933
29934         * opt-functions.awk (opt_sanitized_name): New.
29935         (opt_enum): New.
29936         * optc-gen.awk: Use it
29937         * opth-gen.awk: Use it.
29938
29939 2010-04-13  Martin Jambor  <mjambor@suse.cz>
29940
29941         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
29942         (sra_modify_assign): Delete stmts loading dead data even if racc has no
29943         children.  Call replace_uses_with_default_def_ssa_name to handle
29944         SSA_NAES on lhs.
29945
29946 2010-04-13  Michael Matz  <matz@suse.de>
29947
29948         PR middle-end/43730
29949         * builtins.c (expand_builtin_interclass_mathfn): Also create
29950         a register if the predicate doesn't match.
29951
29952 2010-04-13  Diego Novillo  <dnovillo@google.com>
29953
29954         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
29955         * c-pch.c: Include timevar.h.
29956         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
29957         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
29958         * ggc-common.c: Include timevar.h.
29959         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
29960         * timevar.def (TV_PCH_SAVE): Define.
29961         (TV_PCH_CPP_SAVE): Define.
29962         (TV_PCH_PTR_REALLOC): Define.
29963         (TV_PCH_PTR_SORT): Define.
29964         (TV_PCH_RESTORE): Define.
29965         (TV_PCH_CPP_RESTORE): Define.
29966
29967 2010-04-13  Michael Matz  <matz@suse.de>
29968
29969         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
29970         into MINUS_EXPRs.
29971         (can_reassociate_p): New function.
29972         (break_up_subtract_bb, reassociate_bb): Use it.
29973
29974 2010-04-13  Richard Guenther  <rguenther@suse.de>
29975
29976         PR bootstrap/43737
29977         * builtins.c (c_readstr): Fix assert.
29978
29979 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
29980
29981         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
29982         when generating cltd insn.
29983
29984         (*ashl<mode>3_1): Remove special handling for register operand 2.
29985         (*ashlsi3_1_zext): Ditto.
29986         (*ashlhi3_1): Ditto.
29987         (*ashlhi3_1_lea): Ditto.
29988         (*ashlqi3_1): Ditto.
29989         (*ashlqi3_1_lea): Ditto.
29990         (*<shiftrt_insn><mode>3_1): Ditto.
29991         (*<shiftrt_insn>si3_1_zext): Ditto.
29992         (*<shiftrt_insn>qi3_1_slp): Ditto.
29993         (*<rotate_insn><mode>3_1): Ditto.
29994         (*<rotate_insn>si3_1_zext): Ditto.
29995         (*<rotate_insn>qi3_1_slp): Ditto.
29996
29997 2010-04-13  Richard Guenther  <rguenther@suse.de>
29998
29999         * tree-ssa-structalias.c (callused_id): Remove.
30000         (call_stmt_vars): New.
30001         (get_call_vi): Likewise.
30002         (lookup_call_use_vi): Likewise.
30003         (lookup_call_clobber_vi): Likewise.
30004         (get_call_use_vi): Likewise.
30005         (get_call_clobber_vi): Likewise.
30006         (make_transitive_closure_constraints): Likewise.
30007         (handle_const_call): Adjust to do per-call call-used handling.
30008         (handle_pure_call): Likewise.
30009         (find_what_var_points_to): Remove general callused handling.
30010         (init_base_vars): Likewise.
30011         (init_alias_vars): Initialize call_stmt_vars.
30012         (compute_points_to_sets): Process call-used and call-clobbered
30013         vars for call statements.
30014         (delete_points_to_sets): Free call_stmt_vars.
30015
30016 2010-04-13  Richard Guenther  <rguenther@suse.de>
30017
30018         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30019         Only add RW dependence for dependence distance zero.
30020         Adjust maximal vectorization factor according to dependences.
30021         Move alignment handling ...
30022         (vect_find_same_alignment_drs): ... here.  New function.
30023         (vect_analyze_data_ref_dependences): Adjust.
30024         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
30025         (vect_analyze_data_refs): Adjust minimal vectorization factor
30026         according to data references.
30027         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
30028         dependences before determining the vectorization factor.
30029         Analyze alignment after determining the vectorization factor.
30030         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
30031         dependences before alignment.
30032         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
30033         Adjust prototype.
30034         (vect_analyze_data_refs): Likewise.
30035         (MAX_VECTORIZATION_FACTOR): New define.
30036
30037 2010-04-13  Duncan Sands  <baldrick@free.fr>
30038
30039         * except.h (lang_eh_type_covers): Remove.
30040         * except.c (lang_eh_type_covers): Likewise.
30041
30042 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30043             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30044
30045         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
30046         * config/s390/s390.c: Replace UNTIS_PER_WORD with
30047         UNITS_PER_LONG where it is ABI relevant.
30048         (s390_return_addr_rtx): Likewise.
30049         (s390_back_chain_rtx): Likewise.
30050         (s390_frame_area): Likewise.
30051         (s390_frame_info): Likewise.
30052         (s390_initial_elimination_offset): Likewise.
30053         (save_gprs): Likewise.
30054         (s390_emit_prologue): Likewise.
30055         (s390_emit_epilogue): Likewise.
30056         (s390_function_arg_advance): Likewise.
30057         (s390_function_arg): Likewise.
30058         (s390_va_start): Likewise.
30059         (s390_gimplify_va_arg): Likewise.
30060         (s390_function_profiler): Likewise.
30061         (s390_optimize_prologue): Likewise.
30062         (s390_rtx_costs): Likewise.
30063         (s390_secondary_reload): Likewise.
30064         (s390_promote_function_mode): Likewise.
30065         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
30066         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
30067         registers available.
30068         (s390_unwind_word_mode): New function.
30069         (s390_function_value): Split 64 bit values into register pair if
30070         used as return value.
30071         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
30072         function call parameters.  Handle parallels.
30073         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
30074         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
30075         (DWARF_CIE_DATA_ALIGNMENT): New macro.
30076         (s390_expand_setmem): Remove unused variable src_addr.
30077         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
30078         deal with 64 bit registers.
30079         * config/s390/s390.h: Define __zarch__ predefined macro.
30080         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
30081         (UNITS_PER_LONG): New macro.
30082         * libjava/include/s390-signal.h: Define extended ucontext
30083         structure containing the upper halfs of the 64 bit registers.
30084
30085 2010-04-13  Simon Baldwin  <simonb@google.com>
30086
30087         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
30088
30089 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
30090
30091         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
30092         rvalue on the RHS if the LHS is of a non-renamable type.
30093         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
30094
30095 2010-04-13  Matthias Klose  <doko@ubuntu.com>
30096
30097         * gcc.c (cc1_options): Handle -iplugindir before processing
30098         the cc1 spec. Only add -iplugindir once.
30099         (cpp_unique_options): Add -iplugindir option if -fplugin* options
30100         found.
30101         * common.opt (iplugindir): Remove `Separate' property, initialize.
30102         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
30103         option.
30104         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
30105         (distclean): Remove plugin dir.
30106         * doc/invoke.texi: Document -iplugindir.
30107
30108 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
30109
30110         * doc/plugins.texi (Loading Plugins): Document short
30111         -fplugin=foo option.
30112         (Plugin API): Mention default_plugin_dir_name function.
30113
30114         * gcc.c (find_file_spec_function): Add new declaration.
30115         (static_spec_func): Use it for "find-file".
30116         (find_file_spec_function): Add new function.
30117         (cc1_options): Add -iplugindir option if -fplugin* options found.
30118
30119         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
30120
30121         * plugin.c (add_new_plugin): Updated comment, and handle short
30122         plugin name.
30123         (default_plugin_dir_name): Added new function.
30124
30125         * common.opt (iplugindir): New option to set the plugin directory.
30126
30127 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
30128
30129         * config/i386/i386.md (any_rotate): New code iterator.
30130         (rotate_insn): New code attribute.
30131         (rotate): Ditto.
30132         (SWIM124): New mode iterator.
30133         (<rotate_insn>ti3): New expander.
30134         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
30135         any_rotate code iterator.
30136         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
30137         using any_rotate code iterator and SWIM124 mode iterator.
30138         (ix86_rotlti3): New insn_and_split pattern.
30139         (ix86_rotrti3): Ditto.
30140         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
30141         ix86_rotl{di,ti}3 patterns.
30142         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
30143         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
30144         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
30145         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
30146         code iterator and SWI mode iterator.
30147         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
30148         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
30149         code iterator.
30150         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
30151         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
30152         (bswap rotatert splitter): Add splitter.
30153         (bswap splitter): Macroize splitter using any_rotate code iterator.
30154         Add insn predicate to split only for TARGET_USE_XCHGB or when
30155         optimizing function for size.
30156
30157 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30158
30159         * config/pa/pa.c (emit_move_sequence): Remove use of
30160         deleted variable flag_argument_noalias.
30161
30162 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30163
30164         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
30165         configurations.
30166         Add to unsupported targets list.
30167         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
30168         sparc*-sun-solaris2.[567]* from target lists.
30169         * configure: Regenerate.
30170         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
30171         removal.
30172         Remove Solaris 7 patch references.
30173         (Specific, sparc-sun-solaris2.7): Removed.
30174         (sparc-sun-solaris2*): Update Solaris 7 example.
30175         (sparc64-*-solaris2*): Likewise.
30176
30177 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30178
30179         * config.build (alpha*-dec-osf4*): Remove.
30180         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
30181         of obsolete configurations.
30182         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
30183         support.
30184         * config/alpha/t-osf4: Renamed to ...
30185         * config/alpha/t-osf5: ... this.
30186         * config/alpha/osf.h: Renamed to ...
30187         * config/alpha/osf5.h: ... this.
30188         Merged old osf5.h contents.
30189         Update comments.
30190         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
30191         (EXTRA_SPECS): Removed.
30192         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
30193         reflect removal of Tru64 UNIX V4.0/V5.0 support.
30194         Document that.
30195
30196 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30197
30198         * doc/contrib.texi (Contributors, Rainer Orth): Update.
30199
30200 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
30201
30202         PR/43702
30203         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
30204         __thiscall convention.
30205
30206 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30207
30208         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
30209         orig_base.
30210         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
30211
30212 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30213
30214         * function.c (assign_parms_initialize_all): Add unused attribute
30215         to fntype.
30216
30217 2010-04-12  Richard Guenther  <rguenther@suse.de>
30218
30219         * gsstruct.def (GSS_CALL): New.
30220         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
30221         * gimple.h: Include tree-ssa-alias.h.
30222         (struct gimple_statement_call): New.
30223         (union gimple_statement_struct_d): Add gimple_call member.
30224         (gimple_call_reset_alias_info): Declare.
30225         (gimple_call_use_set): New function.
30226         (gimple_call_clobber_set): Likewise.
30227         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
30228         * gimple.c (gimple_call_reset_alias_info): New function.
30229         (gimple_build_call_1): Call it.
30230         * lto-streamer-in.c (input_gimple_stmt): Likewise.
30231         * tree-inline.c (remap_gimple_stmt): Likewise.
30232         (expand_call_inline): Remove callused handling.
30233         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
30234         * tree-dfa.c (dump_variable): Likewise.
30235         * tree-parloops.c (parallelize_loops): Likewise.
30236         * tree-ssa.c (init_tree_ssa): Likewise.
30237         (delete_tree_ssa): Likewise.
30238         * tree-flow-inline.h (is_call_used): Remove.
30239         * tree-flow.h (struct gimple_df): Remove callused member.
30240         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
30241         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
30242         (ref_maybe_used_by_call_p_1): Simplify.
30243         (call_may_clobber_ref_p_1): Likewise.
30244         * tree-ssa-structalias.c (compute_points_to_sets): Set
30245         the call stmt used and clobbered sets.
30246         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
30247         (find_tail_calls): Verify the tail call.
30248
30249 2010-04-12  Richard Guenther  <rguenther@suse.de>
30250
30251         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
30252         single-iteration always-inline inlining.
30253         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
30254         (cgraph_decide_inlining): Do not handle always-inline specially.
30255         (try_inline): Remove always-inline cycle detection special case.
30256         Do not recurse on always-inlines.
30257         (cgraph_early_inlining): Do not iterate if not optimizing.
30258         (cgraph_gate_early_inlining): remove.
30259         (pass_early_inline): Run unconditionally.
30260         (gate_cgraph_decide_inlining): New function.
30261         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
30262         not inlining or optimizing.
30263         (cgraph_decide_inlining_of_small_functions): Also consider
30264         always-inline functions.
30265         (cgraph_default_inline_p): Return true for nodes which should
30266         disregard inline limits.
30267         (estimate_function_body_sizes): Assume zero size and time for
30268         nodes which are marked as disregarding inline limits.
30269         (cgraph_decide_recursive_inlining): Do not perform recursive
30270         inlining on always-inline nodes.
30271
30272 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
30273
30274         PR bootstrap/43699
30275         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
30276         for exprs satisfying handled_component_p.
30277
30278 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
30279
30280         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
30281         non-constant aggregate elements.
30282
30283         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
30284         is a real initialization.
30285
30286 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
30287
30288         PR c/36774
30289         * c-decl.c (start_function): Move forward check for nested function.
30290
30291 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
30292
30293         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
30294         * config/sh/sh.c: Include reload.h.
30295         (sh_legitimize_reload_address): New.
30296         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
30297         sh_legitimize_reload_address.
30298
30299 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30300
30301         * config/sh/sh.md (*movqi_pop): New insn pattern.
30302         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
30303
30304 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30305
30306         * config/i386/i386.md (any_shiftrt): New code iterator.
30307         (shiftrt_insn): New code attribute.
30308         (shiftrt): Ditto.
30309         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
30310         using any_shiftrt code iterator.
30311         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
30312         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
30313         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
30314         pattern from corresponding peephole2 patterns.
30315         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
30316         using any_shiftrt code iterator.
30317         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
30318         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
30319         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
30320         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
30321         *{ashr,lshr}<mode>3_cmp_zext.
30322         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
30323
30324 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30325
30326         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
30327         scratch register.
30328         (*lshr<mode>3_cconly): Ditto.
30329
30330 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30331
30332         * config/i386/i386.md (lshr<mode>3): Macroize expander from
30333         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30334         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30335         pattern from *lshr{di,ti}3_1 and corresponding splitters using
30336         DWI mode iterator.
30337         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30338         from corresponding peephole2 patterns.
30339         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
30340         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
30341         and *lshrdi3_1_rex64 using SWI mode iterator.
30342         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
30343         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
30344         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
30345         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
30346         and *lshrdi3_cmp_rex64 using SWI mode iterator.
30347         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
30348         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
30349         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
30350         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
30351         SWI mode iterator.
30352
30353 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
30354
30355         * config/i386/i386.md (ashr<mode>3): Macroize expander from
30356         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30357         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30358         pattern from *ashr{di,ti}3_1 and corresponding splitters using
30359         DWI mode iterator.
30360         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30361         from corresponding peephole2 patterns.
30362         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
30363         (ashrsi3_cvt): Rename from ashrsi3_31.
30364         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
30365         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
30366         and x86_64_shift_adj_3 using SWI48 mode iterator.
30367         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
30368         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
30369         and *ashrdi3_1_rex64 using SWI mode iterator.
30370         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
30371         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
30372         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
30373         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
30374         and *ashrdi3_cmp_rex64 using SWI mode iterator.
30375         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
30376         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
30377         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
30378         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
30379         SWI mode iterator.
30380         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
30381         * config/i386/i386.c (ix86_split_ashr): Update for renamed
30382         x86_shift<mode>_adj_3 expanders.
30383
30384 2010-04-10  Wei Guozhi  <carrot@google.com>
30385
30386         PR target/42601
30387         * config/arm/arm.c (arm_pic_static_addr): New function.
30388         (legitimize_pic_address): Call arm_pic_static_addr when it detects
30389         a static symbol.
30390         (arm_output_addr_const_extra): Output expression for new pattern.
30391         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
30392
30393 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
30394
30395         * ira-costs.c (record_reg_classes): Ignore alternatives that are
30396         not enabled.
30397
30398         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
30399         * web.c: Include "insn-config.h" and "recog.h".
30400         (union_match_dups): New function.
30401         (web_main): Call it.
30402         (union_defs): Don't try to recognize match_dups.
30403
30404         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
30405         if doing so would replace the entire pattern.
30406
30407 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30408
30409         PR target/43707
30410         PR target/43709
30411         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
30412         and splitter pattern.  Change splitter operand 1 predicate to
30413         nonmemory_operand.
30414
30415 2010-04-09  Martin Jambor  <mjambor@suse.cz>
30416
30417         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
30418         lattices are addresses of CONST_DECLs with the same initial value.
30419         (ipcp_print_all_lattices): Print values of CONST_DECLs.
30420         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
30421
30422 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
30423             Bernd Schmidt  <bernds@codesourcery.com>
30424
30425         * loop-invariant.c (replace_uses): New static function.
30426         (move_invariant_reg): Use it to ensure we can replace the uses.
30427
30428 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
30429
30430         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
30431         function template.
30432         (picochip_override_options): Enable section anchors only above -O1.
30433         (picochip_reorg): Fixed a couple of build warnings.
30434
30435 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30436
30437         * configure.ac (plugin -rdynamic test): Log result.
30438         * configure: Regenerate.
30439         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
30440         (RDYNAMIC_SPEC): Define.
30441         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
30442
30443 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30444
30445         * configure.ac: Determine Sun ld version numbers.
30446         (comdat_group): Restrict GNU ld version checks to gld.
30447         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
30448         (enable_comdat): Support --enable-comdat.
30449         * configure: Regenerate.
30450         * doc/install.texi (Configuration): Document --enable-comdat.
30451
30452 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30453
30454         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
30455         * config/sol2-gld.h: ... here.
30456         * config.gcc (sparc*-*-solaris2*): Reflect this.
30457         (i[34567]86-*-solaris2*): Use it.
30458
30459 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
30460
30461         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
30462         setup_clocks_p.
30463         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
30464
30465 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30466
30467         PR 42965
30468         * diagnostic.c (diagnostic_initialize): Initialize
30469         some_warnings_are_errors.
30470         (diagnostic_finish): New.
30471         (diagnostic_action_after_output): Call it before exiting.
30472         (diagnostic_report_diagnostic): Do not print message here. Set
30473         some_warnings_are_errors.
30474         * diagnostic.h (diagnostic_context): Delete
30475         issue_warnings_are_errors_message. Add some_warnings_are_errors.
30476         (diagnostic_finish): Declare.
30477         * toplev.c (toplev_main): Call it before exit.
30478
30479 2010-04-09  Jason Merrill  <jason@redhat.com>
30480
30481         PR c++/42623
30482         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
30483         for incomplete type.
30484
30485         PR c++/41788
30486         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
30487         based on a warning flag.
30488
30489 2010-04-09  Richard Guenther  <rguenther@suse.de>
30490
30491         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
30492
30493 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
30494
30495         PR bootstrap/43684
30496         * varasm.c (default_assemble_visibility): Wrap vars that are
30497         set, but unused, by targets without GAS.
30498         * config/rs6000/rs6000.c (paired_emit_vector_compare):
30499         Remove set, but unused, vars.
30500         (rs6000_legitimize_tls_address): Likewise.
30501         (altivec_expand_dst_builtin): Likewise.
30502         * config/darwin.c (machopic_classify_symbol): Likewise.
30503         (machopic_indirection_name): Likewise.
30504
30505 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30506
30507         * config/i386/i386.md (DWI): New mode iterator.
30508         (S): New mode attribute.
30509         (shift_operand): Ditto.
30510         (shift_immediate_operand): Ditto.
30511         (ashl_input_operand): Ditto.
30512         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
30513         using SDWIM mode iterator.
30514         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30515         pattern from *ashl{di,ti}3_1 and corresponding splitters using
30516         DWI mode iterator.
30517         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
30518         from corresponding peephole2 patterns.
30519         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
30520         and x86_64_shift_adj_1 using SWI48 mode iterator.
30521         (x86_shift<mode>_adj_2): Ditto.
30522         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
30523         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
30524         using SWI48 mode iterator.
30525         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
30526         *ashldi3_cmp_rex64 using SWI mode iterator.
30527         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
30528         *ashldi3_cconly_rex64 using SWI mode iterator.
30529         * config/i386/i386.c (ix86_split_ashl): Update for renamed
30530         x86_shift<mode>_adj_{1,2}.
30531         (ix86_split_ashr): Ditto.
30532         (ix86_split_lshr): Ditto.
30533
30534 2010-04-09  Richard Guenther  <rguenther@suse.de>
30535
30536         * target.h (builtin_conversion): Pass in input and output types.
30537         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
30538         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
30539         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
30540         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
30541
30542         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
30543         Handle AVX modes.
30544         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
30545
30546 2010-04-09  Richard Guenther  <rguenther@suse.de>
30547
30548         PR target/43152
30549         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
30550
30551 2010-04-09  Richard Guenther  <rguenther@suse.de>
30552
30553         * tree-vectorizer.h (struct _stmt_vec_info): Document
30554         that vectype is the type of the LHS.
30555         (supportable_widening_operation, supportable_narrowing_operation):
30556         Get both input and output vector types as arguments.
30557         (vect_is_simple_use_1): Declare.
30558         (get_same_sized_vectype): Likewise.
30559         * tree-vect-loop.c (vect_determine_vectorization_factor):
30560         Set STMT_VINFO_VECTYPE to the vector type of the def.
30561         (vectorizable_reduction): Adjust.
30562         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
30563         Adjust.  Specify the output vector type.
30564         (vect_pattern_recog_1): Adjust.
30565         * tree-vect-stmts.c (get_same_sized_vectype): New function.
30566         (vectorizable_call): Adjust.
30567         (vectorizable_conversion): Likewise.
30568         (vectorizable_operation): Likewise.
30569         (vectorizable_type_demotion): Likewise.
30570         (vectorizable_type_promotion): Likewise.
30571         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
30572         the def.
30573         (vect_is_simple_use_1): New function.
30574         (supportable_widening_operation): Get both input and output
30575         vector types.
30576         (supportable_narrowing_operation): Likewise.
30577         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
30578
30579 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
30580
30581         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
30582         __thiscall and _thiscall as predefined macros.
30583         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
30584         thiscall attribute handling.
30585         (ix86_comp_type_attributes): Likewise.
30586         (ix86_function_regparm): Likewise.
30587         (ix86_return_pops_args): Likewise.
30588         (init_cumulative_args): Likewise.
30589         (find_drap_reg): Likewise.
30590         (ix86_static_chain): Likewise.
30591         (x86_this_parameter): Likewise.
30592         (x86_output_mi_thunk): Likewise.
30593         (ix86_attribute_table): Add description for thiscall attribute.
30594         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
30595         * doc/extend.texi: Add documentation for thiscall.
30596
30597 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30598
30599         PR c++/28584
30600         * c.opt (Wint-to-pointer-cast): Available in C++.
30601         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
30602
30603 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
30604
30605         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
30606         * calls.c (expand_call): Pass the function type to aggregate_value_p.
30607         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
30608         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
30609         function type instead.  Reorder and simplify checks.
30610
30611         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
30612
30613 2010-04-08  Jing Yu  <jingyu@google.com>
30614             Zdenek Dvorak  <ook@ucw.cz>
30615
30616         PR tree-optimization/42720
30617         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
30618         loop unswitch conditions here from ...
30619         (tree_unswitch_single_loop): ... here.
30620
30621 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30622
30623         * tree-if-conv.c: Fix comments and simplify logic.
30624
30625 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30626
30627         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
30628         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
30629         (main_tree_if_conversion): Update call to tree_if_conversion.
30630
30631 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30632
30633         PR 42485
30634         * doc/invoke.texi (-b,-V): Delete.
30635         * doc/tm.texi: Do not mention -b.
30636         * gcc.c (display_help): Delete -b and -V.
30637         (process_command): Delete -b and -V.
30638         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
30639
30640 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
30641             Wolfgang Gellerich  <gellerich@de.ibm.com>
30642
30643         Implement target hook for loop unrolling
30644         * target.h (loop_unroll_adjust): Add a new target hook function.
30645         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
30646         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
30647         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
30648         (s390_loop_unroll_adjust): Implement the new target hook for s390.
30649         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
30650         target hook.
30651         (decide_unroll_stupid): Likewise.
30652
30653 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30654
30655         PR target/43643
30656         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
30657
30658 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30659
30660         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
30661         (Specific, *-*-solaris2*): Likewise.
30662         Don't prefer Sun as over GNU as.
30663
30664 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
30665
30666         * config/s390/s390.c (override_options): Adjust the z10 defaults
30667         for max-unroll-times, max-completely-peeled-insns
30668         and max-completely-peel-times.
30669
30670 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30671
30672         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
30673         instructions for z10.
30674         (s390_expand_setmem): Likewise.
30675         (s390_expand_cmpmem): Likewise.
30676
30677 2010-04-08  Richard Guenther  <rguenther@suse.de>
30678
30679         PR tree-optimization/43679
30680         * tree-ssa-pre.c (eliminate): Only propagate copies.
30681
30682 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30683
30684         PR bootstrap/43681
30685         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
30686         set but not used variable warning.
30687
30688 2010-04-08  Wei Guozhi  <carrot@google.com>
30689
30690         PR target/41653
30691         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
30692         (arm_size_rtx_costs): Call the new function when optimized for size.
30693
30694 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30695
30696         PR debug/43670
30697         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
30698         op0 is not a MEM, just return NULL instead of assertion
30699         failure.
30700         (discover_nonconstant_array_refs): Don't walk debug stmts.
30701
30702 2010-04-08  Doug Kwan  <dougkwan@google.com>
30703
30704         * configure.ac: Recognize gold and do not use its version number
30705         to test ld features.
30706         * configure: Regenerate.
30707
30708 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
30709
30710         PR middle-end/40815
30711         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
30712         (negate_value): Move code to push elements to broken_up_substracts ...
30713         (eliminate_plus_minus_pair): ... here.  Push operands that have no
30714         negative pair to plus_negates.
30715         (repropagate_negates, init_reassoc, fini_reassoc): Update.
30716
30717 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30718
30719         * doc/install.texi (Configuration): Move description of
30720         --enable-lto, --with-libelf*, --enable-gold from Java section to
30721         general section.
30722
30723         * doc/generic.texi (Working with declarations)
30724         (Function Properties, C and C++ Trees): Fix typos.
30725         * doc/sourcebuild.texi (Top Level): Likewise.
30726
30727 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
30728
30729         PR c/18624
30730         * tree.h (DECL_READ_P): Define.
30731         (struct tree_decl_common): Add decl_read_flag.
30732         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
30733         a set but not used warning.
30734         (merge_decls): Merge DECL_READ_P flag.
30735         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
30736         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
30737         * c-common.c (handle_used_attribute, handle_unused_attribute):
30738         Likewise.
30739         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
30740         New prototypes.
30741         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
30742         New functions.
30743         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
30744         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
30745         c_parser_binary_expression, c_parser_cast_expression,
30746         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
30747         Call default_function_array_read_conversion instead of
30748         default_function_array_conversion where needed.
30749         (c_parser_unary_expression, c_parser_conditional_expression,
30750         c_parser_postfix_expression_after_primary, c_parser_initelt):
30751         Likewise.  Call mark_exp_read where needed.
30752         (c_parser_statement_after_labels, c_parser_asm_operands,
30753         c_parser_typeof_specifier, c_parser_sizeof_expression,
30754         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
30755         where needed.
30756         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
30757         New.
30758         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
30759         (warn_unused_but_set_parameter): Default to warn_unused
30760         && extra_warnings.
30761         * doc/invoke.texi: Document -Wunused-but-set-variable and
30762         -Wunused-but-set-parameter.
30763
30764         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
30765         used count variable.
30766         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
30767         when operandN variables aren't used in the body of the expander
30768         or splitter.
30769         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
30770         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
30771         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
30772         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
30773         FOR_EACH_IMM_USE_ON_STMT): Likewise.
30774         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
30775         * tree.c (PROCESS_ARG): Likewise.
30776
30777 2010-04-07  Simon Baldwin  <simonb@google.com>
30778
30779         * diagnostic.h (diagnostic_override_option_index): New macro to
30780         set a diagnostic's option_index.
30781         * c-tree.h (c_cpp_error): Add warning reason argument.
30782         * opts.c (_warning_as_error_callback): New.
30783         (register_warning_as_error_callback): Store callback for
30784         warnings enabled via enable_warning_as_error.
30785         (enable_warning_as_error): Call callback, minor code tidy.
30786         * opts.h (register_warning_as_error_callback): Declare.
30787         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
30788         response to -Werror=.
30789         (c_common_init_options): Register warning_as_error_callback in opts.c.
30790         * common.opt: Add -Wno-cpp option.
30791         * c-common.c (struct reason_option_codes_t): Map cpp warning
30792         reason codes to gcc option indexes.
30793         * (c_option_controlling_cpp_error): New function, lookup the gcc
30794         option index for a cpp warning reason code.
30795         * (c_cpp_error): Add warning reason argument, call
30796         c_option_controlling_cpp_error for diagnostic_override_option_index.
30797         * doc/invoke.texi: Document -Wno-cpp.
30798
30799 2010-04-07  Richard Guenther  <rguenther@suse.de>
30800
30801         * ipa-reference.c (mark_load): Use get_base_address.
30802         (mark_store): Likewise.
30803
30804         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
30805         inserting GIMPLE_NOPs into the IL.
30806         * tree-ssa-structalias.c (get_constraint_for_component_ref):
30807         Explicitly strip handled components and indirect references.
30808
30809         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
30810         folding address expressions.
30811         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
30812         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
30813         operand_equal_p to compare decls.
30814         (ptr_deref_may_alias_decl_p): Likewise.
30815         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
30816         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
30817         Handle reversed comparison ops.
30818         * tree-sra.c (asm_visit_addr): Use get_base_address.
30819         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
30820         * ipa-reference.c (mark_address): Use get_base_address.
30821
30822 2010-04-07  Richard Guenther  <rguenther@suse.de>
30823
30824         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
30825         Propagate constants everywhere.
30826
30827 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
30828
30829         PR debug/43516
30830         * tree.c (MAX_INT_CACHED_PREC): Define.
30831         (nonstandard_integer_type_cache): New array.
30832         (build_nonstandard_integer_type): Cache results for precision
30833         <= MAX_INT_CACHED_PREC.
30834
30835 2010-04-07  Richard Guenther  <rguenther@suse.de>
30836
30837         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
30838         -fargument-noalias-global, -fargument-noalias-anything): Remove.
30839         * common.opt: Likewise.
30840         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
30841         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
30842         (nonoverlapping_memrefs_p): Likewise.
30843         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
30844         * opts.c (common_handle_option): Handle OPT_fargument_alias,
30845         OPT_fargument_noalias, OPT_fargument_noalias_anything and
30846         OPT_fargument_noalias_global for backward compatibility.
30847
30848 2010-04-07  Richard Guenther  <rguenther@suse.de>
30849
30850         PR tree-optimization/43270
30851         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
30852         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
30853         * tree-ssa-pre.c (phi_translate_1): Adjust.
30854         (fully_constant_expression): Split out vn_reference handling to ...
30855         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
30856         Fold reads from constant strings.
30857         (vn_reference_lookup): Handle fully constant references.
30858         (vn_reference_lookup_pieces): Likewise.
30859         * Makefile.in (expmed.o-warn): Add -Wno-error.
30860
30861 2010-04-07  Martin Jambor  <mjambor@suse.cz>
30862
30863         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
30864
30865 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
30866
30867         PR driver/41594
30868         * gcc.c: Add -static-libstdc++ to list of recognized options.
30869
30870 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30871
30872         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
30873
30874 2010-04-07  Richard Guenther  <rguenther@suse.de>
30875
30876         PR middle-end/42617
30877         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
30878         bases build simple mem attributes to retain points-to information.
30879
30880 2010-04-07  Richard Guenther  <rguenther@suse.de>
30881
30882         PR middle-end/42617
30883         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
30884         preserve points-to related information.
30885
30886 2010-04-07  Richard Guenther  <rguenther@suse.de>
30887
30888         PR middle-end/42617
30889         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
30890         discard plain indirect references.
30891         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
30892         * tree.c (tree_nop_conversion): Likewise.
30893
30894 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
30895
30896         PR debug/43628
30897         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
30898
30899 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
30900
30901         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
30902         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
30903
30904 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30905
30906         * tree-if-conv.c: Fix indentation and comments.
30907
30908 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30909
30910         * tree-if-conv.c: Sort static functions in topological order.
30911
30912 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
30913
30914         * tree-if-conv.c: Fix indentation and comments.
30915
30916 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30917
30918         PR middle-end/43519
30919         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
30920         lang_hooks.types.type_for_size instead of
30921         build_nonstandard_integer_type.
30922         When converting an unsigned type to signed, double its precision.
30923         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
30924         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
30925         (graphite_create_new_loop_guard): When ub + 1 wraps around,
30926         use lb <= ub.
30927
30928 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30929
30930         PR middle-end/43519
30931         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
30932         POINTER_PLUS_EXPR for pointer types.
30933
30934 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30935
30936         PR middle-end/43519
30937         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
30938         * graphite-clast-to-gimple.c: Include langhooks.h.
30939         (max_signed_precision_type): New.
30940         (max_precision_type): Takes two types as arguments.
30941         (precision_for_value): New.
30942         (precision_for_interval): New.
30943         (gcc_type_for_interval): New.
30944         (gcc_type_for_value): New.
30945         (gcc_type_for_clast_term): New.
30946         (gcc_type_for_clast_red): New.
30947         (gcc_type_for_clast_bin): New.
30948         (gcc_type_for_clast_expr): Split up into several functions.
30949         (gcc_type_for_clast_eq): Rewritten.
30950         (compute_bounds_for_level): New.
30951         (compute_type_for_level_1): New.
30952         (compute_type_for_level): New.
30953         (gcc_type_for_cloog_iv): Removed.
30954         (gcc_type_for_iv_of_clast_loop): Rewritten.
30955         (graphite_create_new_loop): Compute the lower and upper bound types
30956         with gcc_type_for_clast_expr.
30957         (graphite_create_new_loop_guard): Same.
30958         (find_cloog_iv_in_expr): Removed.
30959         (compute_cloog_iv_types_1): Removed.
30960         (compute_cloog_iv_types): Removed.
30961         (gloog): Do not call compute_cloog_iv_types.
30962         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
30963         GBB_CLOOG_IV_TYPES.
30964         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
30965         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
30966         (GBB_CLOOG_IV_TYPES): Removed.
30967
30968 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30969
30970         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
30971         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
30972         (detect_commutative_reduction): Same.
30973
30974 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30975
30976         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
30977         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
30978         argument.
30979         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
30980         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
30981         (rewrite_commutative_reductions_out_of_ssa): Same.
30982         * passes.c (execute_function_todo): Call verify_ssa for every pass
30983         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
30984         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
30985         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
30986         with an extra argument.
30987         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
30988         verify_ssa only when the extra argument is true.
30989         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
30990         with an extra argument.
30991         (tree_transform_and_unroll_loop): Same.
30992
30993 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
30994
30995         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
30996         for all the passes of the LNO having LOOP_CLOSED_SSA.
30997         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
30998         * tree-loop-distribution.c (pass_loop_distribution): Same.
30999         * tree-pass.h (TODO_verify_loops): Removed.
31000         * tree-ssa-loop.c (pass_tree_loop_init): Same.
31001         (pass_lim): Same.
31002         (pass_tree_unswitch): Same.
31003         (pass_predcom): Same.
31004         (pass_vectorize): Same.
31005         (pass_linear_transform): Same.
31006         (pass_graphite_transforms): Same.
31007         (pass_iv_canon): Same.
31008         (pass_complete_unroll): Same.
31009         (pass_complete_unrolli): Same.
31010         (pass_parallelize_loops): Same.
31011         (pass_loop_prefetch): Same.
31012         (pass_iv_optimize): Same.
31013
31014 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
31015
31016         PR middle-end/32824
31017         * passes.c (init_optimization_passes): Move pass_lim before
31018         pass_copy_prop and pass_dce_loop.
31019
31020 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31021
31022         PR target/43667
31023         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
31024         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
31025         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
31026         MULTI_* defines for 4 argument vpermil2p* builtins.
31027
31028 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31029
31030         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
31031         * config/i386/i386.c (x86_maybe_negate_const_int): New.
31032         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
31033         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
31034         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
31035         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
31036         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
31037         Use x86_maybe_negate_const_int to output insn mnemonic.
31038         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
31039         check from instruction predicate.  Update comments.
31040         * config/i386/sync.md (sync_add<mode>): Use
31041         x86_maybe_negate_const_int to output insn mnemonic.
31042
31043 2010-04-06  Jan Hubicka  <jh@suse.cz>
31044
31045         PR tree-optimization/42906
31046         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
31047         IGNORE_SELF argument.  Set visited_control_parents for fully
31048         processed BBs.
31049         (find_obviously_necessary_stmts): Update call of
31050         mark_control_dependent_edges_necessary.
31051         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
31052
31053 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31054
31055         * config/i386/i386.md: Remove comment about 'e' and 'E'
31056         operand modifier.
31057
31058 2010-04-06  Richard Guenther  <rguenther@suse.de>
31059
31060         PR tree-optimization/43627
31061         * tree-vrp.c (extract_range_from_unary_expr): Widenings
31062         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
31063         not varying.
31064
31065 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31066
31067         * BASE-VER: Change to 4.6.0.
31068
31069         PR target/43638
31070         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
31071         handling.
31072
31073 2010-04-06  Richard Guenther  <rguenther@suse.de>
31074
31075         PR middle-end/43661
31076         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
31077
31078 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31079
31080         * doc/invoke.texi (Optimize Options): Document that LTO
31081         won't remove object access purely due to incompatible
31082         declarations.
31083
31084 2010-04-04  Matthias Klose  <doko@ubuntu.com>
31085
31086         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
31087         Initialize variable.
31088
31089 2010-04-03  Richard Guenther  <rguenther@suse.de>
31090
31091         PR middle-end/42509
31092         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
31093         require a non-NULL MEM_OFFSET.
31094
31095 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
31096
31097         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
31098         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
31099         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
31100         config/alpha/predicates.md, config/arm/arm.md,
31101         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
31102         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
31103         config/darwin9.h, config/darwin.c, config/darwin.h,
31104         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
31105         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
31106         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
31107         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
31108         config/mips/mips.md, config/mn10300/mn10300.c,
31109         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
31110         config/rs6000/aix.h, config/rs6000/dfp.md,
31111         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
31112         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
31113         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
31114         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
31115         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
31116         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
31117         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
31118         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
31119         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
31120         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
31121         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
31122         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
31123         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
31124         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
31125         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
31126         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
31127         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
31128         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
31129         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
31130         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
31131         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
31132         opt-functions.awk, opth-gen.awk, params.def, passes.c,
31133         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
31134         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
31135         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
31136         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
31137         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
31138         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31139         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
31140         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
31141         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
31142         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
31143         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
31144         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
31145         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
31146         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
31147
31148 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31149
31150         PR other/43620
31151         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
31152         * aclocal.m4: Regenerate.
31153
31154 2010-04-02  Richard Guenther  <rguenther@suse.de>
31155
31156         PR tree-optimization/43629
31157         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
31158         if we have seen a constant value.
31159
31160 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
31161
31162         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
31163
31164 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
31165
31166         PR target/43469
31167         * arm.c (legitimize_tls_address): Adjust call to
31168         gen_tls_load_dot_plus_four.
31169         (arm_note_pic_base): New function.
31170         (arm_cannot_copy_insn_p): Use it.
31171         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
31172         constraint.
31173
31174 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31175
31176         PR bootstrap/43531
31177
31178         Revert:
31179         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31180
31181         * Makefile.in ($(out_object_file)): Depend on
31182         gt-$(basename $(notdir $(out_file))).h.
31183
31184 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
31185
31186         * config.gcc (lm32-*-rtems*): Add t-lm32.
31187
31188 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
31189
31190         * config.gcc: Add lm32-*-rtems*.
31191         * config/lm32/rtems.h: New file.
31192
31193 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
31194
31195         PR target/42609
31196         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
31197
31198 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
31199
31200         * dwarf2out.c (output_compilation_unit_header): For
31201         -gdwarf-4 use version 4 instead of version 3.
31202         (output_line_info): For version 4 and above emit additional
31203         maximum ops per insn header field.
31204         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
31205
31206         * dwarf2out.c (is_c_family, is_java): Remove.
31207         (lower_bound_default): New function.
31208         (add_bound_info, gen_descr_array_type_die): Use it.
31209
31210 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
31211
31212         PR debug/43325
31213         * dwarf2out.c (gen_variable_die): Allow debug info for variable
31214         re-declaration when it happens in a function.
31215
31216 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
31217
31218         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
31219         (cgraph_remove_function_insertion_hook): Same.
31220         (cgraph_call_function_insertion_hooks): Same.
31221
31222 2010-04-01  Richard Guenther  <rguenther@suse.de>
31223
31224         PR middle-end/43614
31225         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
31226         and TREE_THIS_VOLATILE.
31227         (copy_ref_info): Likewise.
31228         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
31229         * tree.c (build6_stat): Ignore side-effects of all but arg5
31230         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
31231         TARGET_MEM_REF.
31232
31233 2010-04-01  Richard Guenther  <rguenther@suse.de>
31234
31235         PR tree-optimization/43607
31236         * ipa-type-escape.c (check_call): Do not access non-existing
31237         arguments.
31238
31239 2010-04-01  Richard Guenther  <rguenther@suse.de>
31240
31241         PR middle-end/43602
31242         Revert
31243         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31244                     Jack Howarth  <howarth@bromo.med.uc.edu>
31245
31246         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31247         variables TLS.
31248
31249 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31250
31251         * doc/install.texi (Prerequisites): Document libelf usability on
31252         IRIX 5/6 and Solaris 2.
31253         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
31254         Update GNU as, GNU ld requirements.
31255         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
31256         Document Sun Studio compiler download.
31257         Update and simplify as, ld recommendations.
31258         (Specific, *-*-solaris2.7): Note obsoletion, removal.
31259
31260 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31261
31262         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
31263         with_tune_32 to pentium4.
31264
31265 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
31266
31267         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
31268
31269 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31270
31271         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
31272         obsoletion, removal.
31273         Update IDO URL.
31274         Document GNU as requirement.
31275         Update configure requirements.
31276         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
31277         Recomment IRIX 6.5.18+.
31278         Document IDF/IDL requirement.
31279         Document GNU as requirement.
31280         Document GNU ld bootstrap failure.
31281         Remove freeware.sgi.com reference.
31282
31283 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31284
31285         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
31286         UNIX V4.0, V5.0 obsoletion, removal.
31287         Remove --with-gc=simple reference.
31288         Update VM requirements during bootstrap.
31289         Remove -oldas bootstrap description.
31290         Update binutils reference.
31291         Remove comparison failure note.
31292
31293 2010-03-31  Richard Guenther  <rguenther@suse.de>
31294             Zdenek Dvorak  <ook@ucw.cz>
31295             Sebastian Pop  <sebastian.pop@amd.com>
31296
31297         PR middle-end/43464
31298         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
31299         with multiple arguments.
31300         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
31301
31302 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31303
31304         * graphite-dependences.c (print_pddr): Call print_pdr with an
31305         extra argument.
31306         * graphite-poly.c (debug_pdr): Add an extra argument for the
31307         verbosity level.
31308         (print_pdr): Same.
31309         (print_pbb_domain): Same.
31310         (print_pbb): Same.
31311         (print_scop_context): Same.
31312         (print_scop): Same.
31313         (print_cloog): Same.
31314         (debug_pbb_domain): Same.
31315         (debug_pbb): Same.
31316         (print_pdrs): Same.
31317         (debug_pdrs): Same.
31318         (debug_scop_context): Same.
31319         (debug_scop): Same.
31320         (debug_cloog): Same.
31321         (print_scop_params): Same.
31322         (debug_scop_params): Same.
31323         (print_iteration_domain): Same.
31324         (print_iteration_domains): Same.
31325         (debug_iteration_domain): Same.
31326         (debug_iteration_domains): Same.
31327         (print_scattering_function): Same.
31328         (print_scattering_functions): Same.
31329         (debug_scattering_function): Same.
31330         (debug_scattering_functions): Same.
31331         * graphite-poly.h (debug_pdr): Update declaration.
31332         (print_pdr): Same.
31333         (print_pbb_domain): Same.
31334         (print_pbb): Same.
31335         (print_scop_context): Same.
31336         (print_scop): Same.
31337         (print_cloog): Same.
31338         (debug_pbb_domain): Same.
31339         (debug_pbb): Same.
31340         (print_pdrs): Same.
31341         (debug_pdrs): Same.
31342         (debug_scop_context): Same.
31343         (debug_scop): Same.
31344         (debug_cloog): Same.
31345         (print_scop_params): Same.
31346         (debug_scop_params): Same.
31347         (print_iteration_domain): Same.
31348         (print_iteration_domains): Same.
31349         (debug_iteration_domain): Same.
31350         (debug_iteration_domains): Same.
31351         (print_scattering_function): Same.
31352         (print_scattering_functions): Same.
31353         (debug_scattering_function): Same.
31354         (debug_scattering_functions): Same.
31355
31356 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31357
31358         * graphite-poly.c (print_scattering_function_1): New.
31359         (print_scattering_function): Call it.
31360         (print_scop_params): Remove spaces at the end of lines.
31361         (print_cloog): New.
31362         (debug_cloog): New.
31363         * graphite-poly.h (print_cloog): Declared.
31364         (debug_cloog): Declared.
31365
31366 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31367
31368         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
31369         in loop->header.
31370         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
31371         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
31372         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
31373         to switch between adding the IV bump in loop->latch or in loop->header.
31374
31375 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31376
31377         * graphite-poly.c (print_scattering_function): Pretty print following
31378         the scoplib format.
31379         (print_pdr): Same.
31380         (print_pbb_domain): Same.
31381         (dump_gbb_cases): Same.
31382         (dump_gbb_conditions): Same.
31383         (print_pdrs): Same.
31384         (print_pbb): Same.
31385         (print_scop_params): Same.
31386         (print_scop_context): Same.
31387         (print_scop): Same.
31388         (print_pbb_body): New.
31389         (lst_indent_to): New.
31390         (print_lst): Start new lines with a #.
31391         * graphite-poly.h (pbb_bb): New.
31392         (pbb_index): Use pbb_bb.
31393         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
31394         disjuncts.
31395         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
31396
31397 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31398
31399         * dwarf2out.c (size_of_die): For -gdwarf-4 use
31400         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
31401         and 0 instead of 1 for dw_val_class_flag.
31402         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
31403         dw_val_class_range_list, dw_val_class_loc_list,
31404         dw_val_class_lineptr and dw_val_class_macptr, use
31405         DW_FORM_flag_present for dw_val_class_flag and
31406         DW_FORM_exprloc for dw_val_class_loc.
31407         (output_die): For -gdwarf-4 print dw_val_class_loc
31408         size as uleb128 instead of 1 or 2 bytes and don't print
31409         anything for dw_val_class_flag.
31410
31411         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
31412         instead of cselib_lookup following by tweaking locs->setting_insn.
31413
31414         PR bootstrap/43596
31415         * cselib.c (cselib_process_insn): Clear cselib_current_insn
31416         even before returning from label, setjmp call or volatile asm
31417         handling.
31418
31419 2010-03-31  Richard Guenther  <rguenther@suse.de>
31420
31421         PR middle-end/43600
31422         * cgraphunit.c (cgraph_output_in_order): Do not allocate
31423         temporary data on stack.
31424
31425 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31426
31427         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
31428         (PUSHSECTION_ASM_OP): Remove.
31429         (POPSECTION_ASM_OP): Remove.
31430         (PUSHSECTION_FORMAT): Remove.
31431         * config/sol2.h (PUSHSECTION_FORMAT): Define.
31432         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
31433         * config/sol2.c (solaris_output_init_fini): Use it.
31434
31435 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31436
31437         PR 43574
31438         * opt-functions.awk (var_type_struct): Use signed char type
31439         for simple variables.
31440
31441 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31442
31443         * config/sol2.c: Include output.h.
31444         (solaris_assemble_visibility): New function.
31445         * config/t-sol2 (sol2.o): Add output.h dependency.
31446         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
31447         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
31448         Redefine.
31449
31450 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31451
31452         PR target/43580
31453         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
31454         V2SImode or XFmode on PRE_DEC.
31455
31456         PR debug/43557
31457         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
31458         BLKmode.
31459
31460 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31461
31462         PR 43562
31463         * reload.h (caller_save_initialized_p): Declare.
31464         * toplev.c (backend_init_target): Don't call
31465         init_caller_save but set caller_save_initialized_p to false.
31466         * caller-save.c (caller_save_initialized_p): Define.
31467         (init_caller_save): Check caller_save_initialized_p.
31468         * ira.c (ira): Call init_caller_save if flag_caller_saves.
31469
31470 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31471
31472         PR target/39048
31473         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
31474         and soft-fp/t-softfp to tmake_file.
31475         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
31476         (LIBGCC2_TF_CEXT): Define.
31477         (TF_SIZE): Define.
31478
31479 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
31480
31481         PR debug/42977
31482         * cselib.c (n_useless_values): Document handling of debug locs.
31483         (n_useless_debug_values, n_debug_values): New variables.
31484         (new_elt_loc_list): Don't add to debug values, keep count.
31485         (promote_debug_loc): New.
31486         (cselib_reset_table): Zero new variables.
31487         (entry_and_rtx_equal_p): Promote debug locs.
31488         (discard_useless_locs): Increment n_useless_debug_values for
31489         debug values.
31490         (remove_useless_values): Adjust n_useless_values and n_debug_values
31491         with n_useless_debug_values.
31492         (add_mem_for_addr): Promote debug locs.
31493         (cselib_lookup_mem): Likewise.
31494         (cselib_lookup_addr): Renamed to...
31495         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
31496         (cselib_log_lookup): ... this.  Turn into...
31497         (cselib_lookup_addr): ... new wrapper.
31498         (cselib_lookup_from_insn): New.
31499         (cselib_invalidate_regno): Increment n_useless_debug_values for
31500         debug values.
31501         (cselib_invalidate_mem): Likewise.
31502         (cselib_process_insn): Take n_deleted and n_debug_values into
31503         account to guard remove_useless_value call.
31504         (cselib_finish): Zero n_useless_debug_values.
31505         * cselib.h (cselib_lookup_from_insn): Declare.
31506         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
31507         (sched_analyze_2): Likewise.
31508
31509 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
31510
31511         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
31512         functions.
31513         (adjust_mems): Replace narrowing SUBREG of expression containing
31514         just PLUS, MINUS, MULT and ASHIFT of registers and constants
31515         with operations in the narrower mode.
31516
31517         PR debug/43593
31518         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
31519         regs_invalidated_by_call instead all call_used_reg_set registers.
31520
31521 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
31522
31523         PR middle-end/43430
31524         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
31525         pointer comparisons with types_compatible_p.
31526         * tree-vect-stmts.c (vectorizable_call): Same.
31527         (vectorizable_condition): Same.
31528
31529 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31530
31531         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
31532         stack check if the mask would be zero.
31533
31534 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31535             Jack Howarth  <howarth@bromo.med.uc.edu>
31536
31537         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31538         variables TLS.
31539
31540 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
31541
31542         PR other/25232
31543         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
31544         and __unordtf2.
31545         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
31546         Include ___unordxf2 and ___unordtf2.
31547         * config/i386/libgcc-glibc.ver: Do not define inheritance from
31548         GCC_4.4.0 here.
31549
31550 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
31551
31552         * config/lm32/t-lm32: New file.
31553         * config.gcc: Use the above file when targetting lm32.
31554
31555 2010-03-28  Duncan Sands  <baldrick@free.fr>
31556
31557         * Makefile.in (PLUGIN_HEADERS): Add except.h.
31558
31559 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31560
31561         PR middle-end/43431
31562         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
31563         Improve vectorization cost model diagnostic.
31564
31565 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31566
31567         PR middle-end/43436
31568         * tree-vect-data-refs.c (vect_analyze_data_refs): When
31569         compute_data_dependences_for_loop returns false, early exit
31570         and output an extra diagnostic for the failed data reference
31571         analysis.
31572
31573 2010-03-29  Richard Guenther  <rguenther@suse.de>
31574
31575         PR tree-optimization/43560
31576         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
31577         (can_sm_ref_p): Treat stores to readonly locations as trapping.
31578
31579 2010-03-29  Jie Zhang  <jie@codesourcery.com>
31580
31581         PR 43564
31582         * toplev.c (process_options): Set optimization_default_node
31583         and optimization_current_node.
31584         * opts.c (decode_options): Don't set optimization_default_node
31585         and optimization_current_node.
31586
31587 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
31588
31589         * config/rtems.h: Abandon -qrtems_debug.
31590
31591 2010-03-28  Jan Hubicka  <jh@suse.cz>
31592
31593         PR tree-optimization/43505
31594         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
31595         map should not be copied.
31596
31597 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31598
31599         PR middle-end/41674
31600         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
31601         cdtors, set DECL_PRESERVE_P.
31602         * ipa.c (cgraph_externally_visible_p): Return true if declaration
31603         should be preseved.
31604
31605 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
31606
31607         PR tree-optimization/43528
31608         * stor-layout.c (place_field): Check that constant fits into
31609         unsigned HWI when skipping calculation of MS bitfield layout.
31610
31611 2010-03-27  Jan Hubicka  <jh@suse.cz>
31612
31613         PR middle-end/43391
31614         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
31615         notice_global_symbol work.
31616
31617 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
31618
31619         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
31620         instead of dwarf2out_decl.
31621         (struct var_loc_node): Remove section_label field.
31622         (dwarf2out_function_decl): New function.
31623         (dwarf2out_var_location): Don't set section_label field.
31624         (dwarf2out_begin_function): Don't empty decl_loc_table here.
31625
31626 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
31627
31628         PR tree-optimization/43544
31629         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
31630         First argument for builtin vectorized function hook is now a
31631         tree to be able to distinguish between machine specific and
31632         standard builtins.
31633         * targhooks.c (default_builtin_vectorized_function): Ditto.
31634         * targhooks.h (default_builtin_vectorized_function): Ditto.
31635         * target.h (struct gcc_target): Ditto.
31636         * tree-vect-stmts.c (vectorizable_function): Ditto.
31637         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
31638         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
31639         Ditto.
31640
31641 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
31642
31643         PR c/43381
31644         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
31645         nested binding iff it is a FUNCTION_DECL.
31646         (store_parm_decls_newstyle): Pass nested=true to bind for
31647         FUNCTION_DECLs amongst parameters.
31648
31649 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31650
31651         * var-tracking.c (vt_expand_loc_callback): Don't run
31652         cselib_expand_value_rtx_cb in dummy mode if
31653         cselib_dummy_expand_value_rtx_cb returned false.
31654
31655         * var-tracking.c (emit_note_insn_var_location): For one part
31656         notes with offset 0, don't add EXPR_LIST around the location.
31657         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
31658         add_location_or_const_value_attribute): Adjust for that change.
31659
31660         PR debug/43540
31661         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
31662         into first operand and location into second.
31663         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
31664         dw_cfi_oprnd_loc for DW_CFA_expression.
31665         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
31666         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
31667         assume first argument is regnum and second argument is location.
31668
31669 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31670
31671         PR target/42113
31672         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
31673         of scratch register to DImode.  Split to DImode comparison operator.
31674         Use SImode subreg of scratch register in the multiplication.
31675         (*cmp_sadd_sidi): Ditto.
31676         (*cmp_ssub_si): Ditto.
31677         (*cmp_ssub_sidi): Ditto.
31678
31679 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31680
31681         PR target/43524
31682         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
31683         Remove invalid assert and wrong comment.
31684
31685 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31686
31687         PR debug/43516
31688         * flags.h (final_insns_dump_p): New extern.
31689         * final.c (final_insns_dump_p): New variable.
31690         (rest_of_clean_state): Set it before -fdump-final-insns=
31691         dumping, clear afterwards.
31692         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
31693         MEM_ALIAS_SET on MEMs.
31694
31695 2010-03-26  David S. Miller  <davem@davemloft.net>
31696
31697         * configure.ac: Fix sparc GOTDATA_OP bug check.
31698         * configure: Rebuild.
31699
31700 2010-03-26  Alan Modra  <amodra@gmail.com>
31701
31702         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
31703
31704 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31705
31706         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
31707         TLS_SECTION_ASM_FLAG.
31708
31709 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
31710
31711         PR bootstrap/43511
31712         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
31713         Clear first_function_block_is_cold.
31714
31715         PR c/43385
31716         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
31717         argument if the argument is truth_value_p.
31718
31719 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31720
31721         * config/rs6000/constraints.md: Update copyright year for my changes.
31722
31723         PR target/43484
31724         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
31725         used in reg+reg addressing, swap registers.
31726
31727 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
31728
31729         PR debug/43293
31730         * target.h (struct gcc_target): Add code_end hook.
31731         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
31732         if not yet defined.
31733         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
31734         * toplev.c (compile_file): Call targetm.asm_out.code_end
31735         hook before unwind info/debug info output.
31736         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
31737         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
31738         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31739         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
31740         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31741         * config/i386/i386.c (ix86_file_end): Renamed to...
31742         (ix86_code_end): ... this.  Make static.  Don't call
31743         file_end_indicate_exec_stack.  Emit unwind info using
31744         final_start_function/final_end_function.
31745         (darwin_x86_file_end): Remove.
31746         (TARGET_ASM_CODE_END): Define.
31747         * config/i386/i386.h (TARGET_ASM_FILE_END,
31748         NEED_INDICATE_EXEC_STACK): Don't define.
31749         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
31750         (TARGET_ASM_FILE_END): Define to darwin_file_end.
31751         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
31752         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
31753
31754         PR target/43498
31755         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
31756         at the beginning and final_end_function at the end.
31757         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
31758
31759 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31760
31761         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
31762         and Sun as TLS syntax.
31763         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
31764         * configure: Regenerate.
31765         * config.in: Regenerate.
31766         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
31767         (default_elf_asm_named_section): Use it.
31768         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
31769         (i386_output_dwarf_dtprel): Likewise.
31770         (output_addr_const_extra): Likewise.
31771         (output_pic_addr_const): Lowercase @GOTTPOFF.
31772         (output_addr_const_extra): Likewise.
31773         (output_pic_addr_const): Lowercase @GOTNTPOFF.
31774         (output_addr_const_extra): Likewise.
31775         (output_pic_addr_const): Lowercase @INDNTPOFF.
31776         (output_addr_const_extra): Likewise.
31777         (output_pic_addr_const): Lowercase @NTPOFF.
31778         (output_addr_const_extra): Likewise.
31779         (output_pic_addr_const): Lowercase @TPOFF.
31780         (output_addr_const_extra): Likewise.
31781         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
31782         (*tls_global_dynamic_64): Likewise.
31783         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
31784         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
31785
31786         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
31787         (ASM_OUTPUT_TLS_COMMON): Use it.
31788         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
31789
31790         PR target/38118
31791         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
31792         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
31793         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
31794         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
31795         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
31796         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
31797
31798 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31799
31800         * config/i386/i386.c (override_options): Don't accept
31801         -mtls-dialect=sun any longer.
31802         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
31803         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
31804         (*tls_local_dynamic_base_32_sun): Likewise.
31805         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
31806
31807 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
31808
31809         PR debug/43508
31810         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
31811         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
31812
31813         PR debug/43479
31814         * ira.c (adjust_cleared_regs): New function.
31815         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
31816
31817         PR debug/19192
31818         PR debug/43479
31819         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
31820         from gimple_block.
31821         * expr.c (expand_expr_real): Restore previous
31822         curr_insn_source_location and curr_insn_block after
31823         expand_expr_real_1 call.
31824         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
31825         instead of expand_expr_real_1.
31826
31827 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
31828
31829         PR rtl-optimization/43413
31830         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
31831         hard regs too.
31832
31833 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
31834
31835         PR target/43348
31836         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
31837         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
31838
31839 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
31840
31841         * config/i386/i386.c (ix86_target_string): Add -mfma.
31842         Fix a typo in comment.
31843
31844 2010-03-22  Mike Stump  <mikestump@comcast.net>
31845
31846         PR target/23071
31847         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
31848         Don't overly align based upon packed packed fields.
31849
31850 2010-03-22  Jason Merrill  <jason@redhat.com>
31851
31852         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
31853         Use () rather than [], and move before the element type.
31854
31855 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31856
31857         * doc/configfiles.texi (Configuration Files): Removed
31858         fixinc/Makefile*, intl/Makefile.*.
31859         * doc/makefile.texi: Fixed markup. Abstract from version
31860         control system used.
31861         (Makefile): Removed obsolete java/parse.y example.
31862         * doc/sourcebuild.texi: Likewise.
31863         (Top Level): Added config, gnattools, libdecnumber, libgcc,
31864         libgomp, libssp.  Removed fastjar.
31865         (Miscellaneous Docs): Clarify location.
31866         Added COPYING3, COPYING3.LIB.
31867         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
31868
31869 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31870
31871         PR target/38085
31872         * config/i386/i386.c (x86_function_profiler)
31873         [!NO_PROFILE_COUNTERS]: Fix typo.
31874         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
31875         instead of callq.
31876
31877 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
31878             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31879
31880         * doc/sourcebuild.texi (Test Directives): Split into six
31881         subsections, with most of the current text in new subsections
31882         Directives, Selectors, and Final Actions.
31883         (Directives): Split list of test directives into multiple
31884         subsubsections.
31885         (Selectors): Describe use and syntax of selectors.
31886         (Effective-Target Keywords): Describe all existing keywords.
31887         (Add Options): Describe features for dg-add-options.
31888         (Require Support): Describe variants of dg-require-support.
31889         (Final Actions): Describe commands to use in dg-final.
31890
31891 2010-03-22  Michael Matz  <matz@suse.de>
31892
31893         PR middle-end/43475
31894         * recog.c (validate_replace_rtx_group): Replace also in
31895         REG_EQUAL and REG_EQUIV notes.
31896
31897 2010-03-22  Richard Guenther  <rguenther@suse.de>
31898
31899         PR tree-optimization/43390
31900         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
31901         sure vector extracts are type correct.
31902
31903 2010-03-22  Richard Guenther  <rguenther@suse.de>
31904
31905         PR middle-end/40106
31906         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
31907         x * sqrt (x) even when optimizing for size if the target
31908         has native support for sqrt.
31909
31910 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
31911
31912         * varasm.c (make_decl_rtl_for_debug): Also clear
31913         flag_mudflap for the duration of make_decl_rtl call.
31914
31915         PR debug/43443
31916         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
31917         locs from preserved VALUEs.
31918
31919 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31920
31921         PR middle-end/42718
31922         * pa.md (movmemsi): Set align to one if zero.
31923         (movmemdi): Likewise.
31924
31925 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
31926
31927         PR target/42321
31928         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
31929         with their corresponding prologue pushes.
31930
31931 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
31932
31933         PR target/43156
31934         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
31935         at the begining or end.
31936         (spu_expand_epilogue): Likewise.
31937
31938 2010-03-20  Richard Guenther  <rguenther@suse.de>
31939
31940         PR rtl-optimization/43438
31941         * combine.c (make_extraction): Properly zero-/sign-extend an
31942         extraction of the low part of a CONST_INT.  Also handle
31943         CONST_DOUBLE.
31944
31945 2010-03-19  Mike Stump  <mikestump@comcast.net>
31946
31947         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
31948         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
31949         (override_options): Use SUBTARGET32_DEFAULT_CPU.
31950
31951 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
31952
31953         PR c/43211
31954         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
31955         an error.
31956
31957 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
31958
31959         PR rtl-optimization/42258
31960         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
31961         use that may match DEF.
31962
31963         PR target/40697
31964         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
31965         the cost of loading the constant rather than assuming
31966         COSTS_N_INSNS (1).
31967         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
31968         outer code is AND, do the same tests as the andsi3 expander and
31969         return COSTS_N_INSNS (1) if and is cheap.
31970
31971         * optabs.c (avoid_expensive_constant): Fix formatting.
31972
31973 2010-03-19  Michael Matz  <matz@suse.de>
31974
31975         PR c++/43116
31976         * attribs.c (decl_attributes): When rebuilding a function pointer
31977         type use the same qualifiers as the original pointer type.
31978
31979 2010-03-19  Martin Jambor  <mjambor@suse.cz>
31980
31981         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
31982         and is_gimple_ip_invariant_address.
31983
31984 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31985
31986         Revert
31987         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31988
31989         * config/arm/arm.c (arm_override_options): Turn off
31990         flag_dwarf2_cfi_asm for AAPCS variants.
31991
31992 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31993
31994         PR target/43399
31995         * config/arm/arm.c (emit_multi_reg_push): Update comments.
31996         Use PRE_MODIFY instead of PRE_DEC.
31997         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
31998         (vfp_emit_fstmd): Likewise.
31999
32000 2010-03-19  Michael Matz  <matz@suse.de>
32001
32002         PR target/43305
32003         * builtins.c (expand_builtin_interclass_mathfn,
32004         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
32005         if that fails.
32006
32007 2010-03-19  Richard Guenther  <rguenther@suse.de>
32008
32009         PR tree-optimization/43415
32010         * tree-ssa-pre.c (phi_translate): Split out worker to ...
32011         (phi_translate_1): ... this.
32012         (phi_translate): Move all caching here.  Cache all NARY
32013         and REFERENCE translations.
32014
32015 2010-03-19  David S. Miller  <davem@davemloft.net>
32016
32017         With help from Eric Botcazou.
32018         * config/sparc/sparc.c: Include dwarf2out.h.
32019         (emit_pic_helper): Delete.
32020         (pic_helper_symbol_name): Delete.
32021         (pic_helper_emitted_p): Delete.
32022         (pic_helper_needed): New.
32023         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
32024         (get_pc_thunk_name): New.
32025         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
32026         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
32027         Set pic_helper_needed to true.  Don't call emit_pic_helper.
32028         (sparc_expand_prologue): Update load_pic_register call.
32029         (sparc_output_mi_thunk): Likewise.
32030         (sparc_file_end): Emit a hidden comdat symbol for the PIC
32031         thunk if possible.  Output CFI information as needed.
32032
32033 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
32034             Jack Howarth  <howarth@bromo.med.uc.edu>
32035
32036         PR target/36399
32037         * config/i386/i386.h: Fix ABI on darwin x86-32.
32038
32039 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
32040
32041         * tree.h: Declare make_decl_rtl_for_debug.
32042         * varasm.c (make_decl_rtl_for_debug): New.
32043         * dwarf2out.c (rtl_for_decl_location): Call it.
32044         * cfgexpand.c (expand_debug_expr): Call it.
32045
32046 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32047
32048         PR bootstrap/43399
32049         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
32050         mem_mode.
32051
32052         PR bootstrap/43403
32053         * var-tracking.c (vt_init_cfa_base): Do nothing if
32054         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
32055
32056 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
32057
32058         PR debug/42873
32059         * var-tracking.c (canonicalize_vars_star): New.
32060         (dataflow_post_merge_adjust): Use it.
32061
32062 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32063
32064         PR debug/43058
32065         * var-tracking.c (non_suitable_const): New function.
32066         (add_uses): For DEBUG_INSNs with constants, don't record any
32067         value, instead just the constant value itself.
32068         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
32069         is not VAR_LOC_UNKNOWN_P, set var to the constant.
32070         (emit_notes_in_bb): Likewise.
32071         (emit_note_insn_var_location): For onepart variables if
32072         cur_loc is a VOIDmode constant, use DECL_MODE.
32073
32074 2010-03-18  Martin Jambor  <mjambor@suse.cz>
32075
32076         PR middle-end/42450
32077         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
32078         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
32079         all non-clones.  Moved call redirection...
32080         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
32081         (cgraph_materialize_all_clones): Dispose of all
32082         combined_args_to_skip bitmaps.
32083         (verify_cgraph_node): Do not check for edges pointing to wrong
32084         nodes in inline clones.
32085         * tree-inline.c (copy_bb): Call
32086         cgraph_redirect_edge_call_stmt_to_callee.
32087         * ipa.c (cgraph_remove_unreachable_nodes): Call
32088         cgraph_node_remove_callees even when there are used clones.
32089
32090 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32091
32092         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
32093
32094 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32095
32096         PR target/43383
32097         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
32098         for 32bit.
32099
32100 2010-03-18  Michael Matz  <matz@suse.de>
32101
32102         PR middle-end/43419
32103         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
32104         into sqrt(x) if we need to preserve signed zeros.
32105
32106 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
32107             Eric Botcazou  <ebotcazou@adacore.com>
32108
32109         PR rtl-optimization/43360
32110         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
32111         note if we don't know its invariant status.
32112
32113 2010-03-18  Michael Matz  <matz@suse.de>
32114
32115         PR tree-optimization/43402
32116         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
32117         PHI chains of ssa names registered for update.
32118
32119 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
32120
32121         PR target/42427
32122         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
32123         non-offsettable and pre_modify update addressing.
32124         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
32125         and "2" alternatives "#".
32126         (*movdd_softfloat32): Make all alternatives "#";
32127         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
32128         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
32129         (*movdf_softfloat32): Make all alternatives "#";
32130         (movdi): Use the new DIFD mode iterator to create a common splitter
32131         for movdi, movdf and movdd patterns.
32132
32133 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
32134
32135         * common.opt (dumpdir): Remove redundant tab.
32136
32137 2010-03-17  Martin Jambor  <mjambor@suse.cz>
32138
32139         PR tree-optimization/43347
32140         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
32141         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
32142
32143 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
32144
32145         PR rtl-optimization/42216
32146         * regrename.c (create_new_chain): New function, broken out from...
32147         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
32148         appending a use to an empty chain.
32149         (build_def_use): Remove previous changes that convert OP_INOUT to
32150         OP_OUT operands; instead detect the case where an OP_INOUT operand
32151         uses a previously untracked register and create an empty chain for it.
32152
32153 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32154
32155         * doc/extend.texi (Function Attributes): Rewrite unfinished
32156         sentence in ms_abi documentation.
32157
32158 2010-03-17  Alan Modra  <amodra@gmail.com>
32159
32160         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
32161         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
32162         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
32163         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
32164
32165 2010-03-16  Richard Henderson  <rth@redhat.com>
32166
32167         PR middle-end/43365
32168         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
32169         (lower_try_finally): Save and restore eh_seq around the expansion
32170         of the try-finally.
32171
32172 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32173
32174         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
32175         statements before splitting block.
32176
32177 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32178
32179         * doc/sourcebuild.texi (Testsuites): Fix markup.
32180         Use pathnames relative to gcc/testsuite.
32181         (Test Directives): Move description of how timeout is determined.
32182         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
32183         (C Tests): Correct gcc.misc-tests directory.
32184         Framework tests now live in gcc.test-framework.
32185
32186 2010-03-16  Richard Guenther  <rguenther@suse.de>
32187
32188         PR middle-end/43379
32189         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
32190         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
32191
32192 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32193             Alexandre Oliva  <aoliva@redhat.com>
32194
32195         PR tree-optimization/42917
32196         * lambda-code.c (remove_iv): Skip debug statements.
32197         (lambda_loopnest_to_gcc_loopnest): Likewise.
32198         (not_interesting_stmt): Debug statements are not interesting.
32199
32200 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
32201
32202         PR debug/43051
32203         PR debug/43092
32204         * cselib.c (cselib_preserve_constants,
32205         cfa_base_preserved_val): New static variables.
32206         (preserve_only_constants): New function.
32207         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
32208         clear its REG_VALUES.  If cselib_preserve_constants, don't
32209         empty the whole hash table, but preserve there VALUEs with constants,
32210         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
32211         (cselib_preserve_cfa_base_value): New function.
32212         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
32213         (cselib_init): Change argument to int bitfield.  Set
32214         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
32215         is in it.
32216         (cselib_finish): Clear cselib_preserve_constants and
32217         cfa_base_preserved_val.
32218         * cselib.h (enum cselib_record_what): New enum.
32219         (cselib_init): Change argument to int.
32220         (cselib_preserve_cfa_base_value): New prototype.
32221         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
32222         * dse.c (dse_step1): Likewise.
32223         * cfgcleanup.c (thread_jump): Likewise.
32224         * sched-deps.c (sched_analyze): Likewise.
32225         * gcse.c (local_cprop_pass): Likewise.
32226         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
32227         If FN is non-NULL, call the callback always and whenever it returns
32228         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
32229         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
32230         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
32231         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
32232         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
32233         * var-tracking.c: Include recog.h.
32234         (bb_stack_adjust_offset): Remove.
32235         (vt_stack_adjustments): Don't call it, instead just gather the
32236         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
32237         (adjust_stack_reference): Remove.
32238         (compute_cfa_pointer): New function.
32239         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
32240         (struct adjust_mem_data): New type.
32241         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
32242         functions.
32243         (get_address_mode): New function.
32244         (replace_expr_with_values): Use it.
32245         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
32246         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
32247         (adjust_sets): Remove.
32248         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
32249         Use get_address_mode.
32250         (get_adjusted_src): Remove.
32251         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
32252         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
32253         (add_with_sets): Don't call adjust_sets.
32254         (fp_setter, vt_init_cfa_base): New functions.
32255         (vt_initialize): Change return type to bool.  Move most of pool etc.
32256         initialization to the beginning of the function from end.  Pass
32257         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
32258         If !frame_pointer_needed, call vt_stack_adjustment before mos
32259         vector is filled, call vt_init_cfa_base if argp/framep has been
32260         eliminated to sp.  If frame_pointer_needed and argp/framep has
32261         been eliminated to hard frame pointer, set
32262         hard_frame_pointer_adjustment and call vt_init_cfa_base after
32263         encountering fp setter in the prologue.  For MO_ADJUST, call
32264         log_op_type before pusing the op into mos vector, not afterwards.
32265         Call adjust_insn before cselib_process_insn/add_with_sets,
32266         call cancel_changes (0) afterwards.
32267         (variable_tracking_main_1): Adjust for vt_initialize calling
32268         vt_stack_adjustments and returning whether it succeeded or not.
32269
32270 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
32271
32272         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
32273         debug statements.
32274
32275 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
32276
32277         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
32278         has been set.
32279         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
32280         drap_reg has not been set.
32281
32282 2010-03-15  Michael Matz  <matz@suse.de>
32283
32284         PR middle-end/43300
32285         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
32286         use it to expand block copies.
32287         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
32288         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
32289         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
32290
32291 2010-03-15  Richard Guenther  <rguenther@suse.de>
32292
32293         PR tree-optimization/43367
32294         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
32295         elimination check.
32296
32297 2010-03-15  Richard Guenther  <rguenther@suse.de>
32298
32299         PR tree-optimization/43317
32300         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
32301
32302 2010-03-15  Martin Jambor  <mjambor@suse.cz>
32303
32304         PR tree-optimization/43141
32305         * tree-sra.c (create_abstract_origin): New function.
32306         (modify_function): Call create_abstract_origin.
32307
32308 2010-03-15  Chris Demetriou  <cgd@google.com>
32309
32310         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
32311         wasn't copied.
32312
32313 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32314
32315         PR middle-end/43354
32316         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
32317         call insert_out_of_ssa_copy for default definitions.
32318
32319 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32320
32321         * graphite-clast-to-gimple.c (my_long_long): Defined.
32322         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
32323         * graphite-sese-to-poly.c (my_long_long): Defined.
32324         (scop_ivs_can_be_represented): Use it.
32325
32326 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32327
32328         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
32329         graphite-max-bbs-per-function, and loop-block-tile-size.
32330         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
32331         with "maximum".
32332         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
32333
32334 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32335
32336         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
32337         forward declaration.
32338         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
32339         (add_upper_bounds_from_estimated_nit): New.
32340         (build_loop_iteration_domains): Use it.
32341
32342 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32343
32344         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
32345
32346 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32347
32348         PR middle-end/43306
32349         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
32350         should be an INTEGER_CST.  Also handle CASE_CONVERT.
32351
32352 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32353
32354         * graphite.c (graphite_initialize): To bound the number of bbs per
32355         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
32356         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
32357         * doc/invoke.texi: Document it.
32358
32359 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32360
32361         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
32362         * graphite-sese-to-poly.h (build_poly_scop): Same.
32363
32364 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32365
32366         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
32367         the number of parameters in the scop.  Use as an upper bound
32368         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
32369         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
32370         * doc/invoke.texi: Document it.
32371
32372 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
32373
32374         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
32375         * doc/c-tree.texi: Remove.
32376         * doc/generic.texi: Merge c-tree.texi here.
32377         * doc/gccint.texi (Trees): Remove menu entry.
32378         (c-tree.texi): Remove @include.
32379         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
32380         * doc/languages.texi (Reading RTL): Ditto.
32381
32382 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
32383
32384         PR target/42869
32385         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
32386
32387 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
32388
32389         PR middle-end/42431
32390         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
32391         code added to work around reload clobbering CONST insns.
32392
32393 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
32394
32395         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
32396         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
32397         (cselib_preserve_only_values): Remove retain argument, don't
32398         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
32399         * cselib.h (cselib_preserve_only_values): Remove retain argument.
32400         * var-tracking.c (micro_operation): Move insn field before union.
32401         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
32402         (struct variable_tracking_info_def): Remove n_mos field, change
32403         mos into a vector of micro_operations.
32404         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
32405         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
32406         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
32407         changing into a vector.
32408         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
32409         come before all other uops generated by add_stores.
32410         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
32411         argument removal.
32412         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
32413         a vector.  Run just one pass over the bbs instead of separate counting
32414         and computation phase.
32415         (vt_finalize): Free VTI (bb)->mos vector instead of array.
32416
32417         PR debug/43329
32418         * tree-inline.c (remap_decls): Put old_var rather than origin_var
32419         into *nonlocalized_list vector.
32420         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
32421         even if origin is non-NULL.
32422         (gen_variable_die): Likewise.
32423         (process_scope_var): Don't change origin.
32424         (gen_decl_die): Likewise.
32425         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
32426         before adding new edges instead of after it, fix moving over
32427         debug stmts.
32428
32429 2010-03-11  David S. Miller  <davem@davemloft.net>
32430
32431         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
32432         of four.
32433         * configure: Rebuild.
32434
32435 2010-03-11  Martin Jambor  <mjambor@suse.cz>
32436
32437         PR tree-optimization/43257
32438         * tree.c (assign_assembler_name_if_neeeded): New function.
32439         (free_lang_data_in_cgraph): Assembler name assignment moved to the
32440         above new function.
32441         * tree.h (assign_assembler_name_if_neeeded): Declare.
32442         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
32443         the function if needed.
32444
32445 2010-03-11  Chris Demetriou  <cgd@google.com>
32446
32447         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
32448         include/stdint-gcc.h, and include/stdint.h world-readable.
32449
32450 2010-03-11  Richard Guenther  <rguenther@suse.de>
32451
32452         PR tree-optimization/43255
32453         * tree-vrp.c (process_assert_insertions_for): Do not insert
32454         asserts for trivial conditions.
32455
32456 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32457
32458         PR tree-optimization/43280
32459         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
32460         generation.  Move calculation of size out of the if branch.
32461         (find_bswap): Modify compare number generation.
32462
32463 2010-03-11  Richard Guenther  <rguenther@suse.de>
32464
32465         PR lto/43200
32466         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
32467         (input_gimple_stmt): Fixup handled component types during
32468         operand read.  Also fix up decls in ADDR_EXPRs.
32469
32470 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
32471
32472         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
32473         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
32474
32475 2010-03-10  Jan Hubicka  <jh@suse.cz>
32476
32477         PR c/43288
32478         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
32479         * varasm.c (get_variable_section): Don't do that here...
32480         (make_decl_rtl): ... and here.
32481         (do_assemble_alias): Produce decl RTL.
32482         (assemble_alias): Likewise.
32483
32484 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32485
32486         PR debug/43290
32487         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
32488         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
32489         of fde->vdrap_reg.
32490         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
32491         (based_loc_descr): Only express drap or vdrap regno based expressions
32492         using DW_OP_fbreg when not optimizing.
32493         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
32494         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
32495         REG_CFA_SET_VDRAP note.
32496
32497 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
32498
32499         PR tree-optimization/43236
32500         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
32501         error in calculation of base address in reverse iteration case.
32502         (generate_builtin): Take number of latch executions if the statement
32503         is in the latch.
32504
32505 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
32506
32507         PR middle-end/42859
32508         * tree-eh.c: Include pointer-set.h.
32509         (lower_eh_dispatch): Filter out duplicate case labels and
32510         remove the unneeded edge when the label is unused.  Return
32511         true when some edges are removed.
32512         (execute_lower_eh_dispatch): When any lowering resulted in
32513         removing an edge, also delete unreachable blocks.
32514
32515 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32516
32517         PR bootstrap/43287
32518         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
32519         UNSPEC_MACHOPIC_OFFSET.
32520
32521 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
32522
32523         PR target/43294
32524         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
32525         (m68k_delegitimize_address): New function.
32526
32527 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
32528
32529         PR debug/43299
32530         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
32531
32532         PR debug/43299
32533         * var-tracking.c (adjust_sets): New function.
32534         (count_with_sets, add_with_sets): Use it.
32535         (get_adjusted_src): New inline function.
32536         (add_stores): Use it.
32537
32538         PR debug/43304
32539         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
32540         call cselib_dummy_expand_value_rtx_cb instead of
32541         cselib_expand_value_rtx_cb.
32542
32543         PR debug/43293
32544         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
32545         * config/i386/i386.c: Include debug.h and dwarf2out.h.
32546         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
32547         and .cfi_endproc around the pic thunks.
32548         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
32549         all queued unwind info register saves are saved before the call.
32550         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
32551         considered as sp-=4 for unwind info and the pop as sp+=4 which
32552         also clobbers dest, but doesn't actually restore it.
32553
32554         PR debug/43290
32555         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
32556         RTX_FRAME_RELATED_P.
32557
32558 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32559
32560         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
32561         whitespaces in output template.
32562
32563 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32564
32565         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
32566         out array boundary.
32567
32568 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32569
32570         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
32571         builtins.exp in a separate job.
32572
32573 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32574
32575         * graphite-sese-to-poly.c (add_param_constraints): Use
32576         lower_bound_in_type and upper_bound_in_type.
32577
32578 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32579
32580         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
32581         instead of unsigned_type_node.
32582
32583 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32584             Reza Yazdani  <reza.yazdani@amd.com>
32585
32586         PR middle-end/43065
32587         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
32588         on pointer type parameters.
32589
32590 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32591
32592         PR middle-end/42644
32593         PR middle-end/42130
32594         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
32595         handle conversions from pointer to integers.
32596         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
32597         induction variable, to be able to work with code generated by CLooG.
32598         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
32599         (build_poly_scop): Bail out if we cannot codegen a loop.
32600
32601 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32602
32603         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
32604         code generation with gloog_error.
32605
32606 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32607
32608         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
32609         Call fold_convert on all the returned values.
32610         (expand_scalar_variables_expr): Pass to
32611         expand_scalar_variables_ssa_name the type of the resulting expression.
32612
32613 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32614
32615         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
32616         ppl_min_for_le_pointset.
32617         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
32618         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
32619
32620 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32621
32622         * graphite-dependences.c (map_into_dep_poly): Removed.
32623         (dependence_polyhedron_1): Use combine_context_id_scat.
32624
32625 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32626
32627         * graphite-poly.h (struct poly_scattering): Add layout documentation.
32628         (struct poly_bb): Same.
32629         (combine_context_id_scat): New.
32630
32631 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32632
32633         PR middle-end/42326
32634         * sese.c (name_defined_in_loop_p): Return false for default
32635         definitions.
32636
32637 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32638
32639         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
32640         and clean up the logic.
32641
32642 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32643
32644         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
32645         early return.
32646
32647 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32648
32649         * var-tracking.c (remove_cselib_value_chains): Define only for
32650         ENABLE_CHECKING.
32651         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
32652         delete_slot_part, emit_notes_for_differences_1): Don't call
32653         remove_cselib_value_chains here.
32654         (set_slot_part, emit_notes_for_differences_2): Don't call
32655         add_cselib_value_chains here.
32656         (preserved_values): New vector.
32657         (preserve_value): New function.
32658         (add_uses, add_stores, vt_add_function_parameters): Use it
32659         instead of cselib_preserve_value.
32660         (changed_values_stack): New vector.
32661         (check_changed_vars_0): New function.
32662         (check_changed_vars_1, check_changed_vars_2): Use it.
32663         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
32664         changed_values_stack VALUEs.
32665         (vt_emit_notes): For all preserved_values call
32666         add_cselib_value_chains.  If ENABLE_CHECKING call
32667         remove_cselib_value_chains before verifying value_chains is empty.
32668         Initialize and free changed_values_stack.
32669         (vt_initialize): Initialize preserved_values.
32670         (vt_finalize): Free preserved_values.
32671
32672 2010-03-08  Richard Guenther  <rguenther@suse.de>
32673
32674         PR tree-optimization/43269
32675         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
32676         region detection.
32677
32678 2010-03-08  Martin Jambor  <mjambor@suse.cz>
32679
32680         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
32681         (ipa_is_param_called): Removed.
32682         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
32683         (ipa_print_node_params): Do not print the called flag.
32684         (ipa_write_node_info): Do not stream the called flag.
32685         (ipa_read_node_info): Likewise.
32686
32687 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
32688
32689         PR debug/43176
32690         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
32691         * cselib.c (struct expand_value_data): Add dummy field.
32692         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
32693         dummy to false.
32694         (cselib_dummy_expand_value_rtx_cb): New function.
32695         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
32696         any rtl.
32697         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
32698         * var-tracking.c: Include pointer-set.h.
32699         (variable): Change n_var_parts to char from int.  Add
32700         cur_loc_changed and in_changed_variables fields.
32701         (variable_canonicalize): Remove.
32702         (shared_var_p): New inline function.
32703         (unshare_variable): Maintain cur_loc_changed and
32704         in_changed_variables fields.  If var was in changed_variables,
32705         replace it there with new_var.  Just copy cur_loc instead of
32706         resetting it to something else.
32707         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
32708         (dataflow_set_union): Don't call variable_canonicalize.
32709         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
32710         of their DEBUG_EXPR_TREE_DECLs.
32711         (canonicalize_loc_order_check): Verify that cur_loc is NULL
32712         and in_changed_variables and cur_loc_changed is false.
32713         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
32714         and cur_loc_changed.  Don't update cur_loc here.
32715         (variable_merge_over_src): Don't call variable_canonicalize.
32716         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
32717         removing loc that is equal to cur_loc, clear cur_loc,
32718         set cur_loc_changed and ensure variable_was_changed is called.
32719         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
32720         compare pointers in cur_loc check, if it is equal to loc,
32721         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
32722         (variable_different_p): Remove compare_current_location argument,
32723         don't compare cur_loc.
32724         (dataflow_set_different_1): Adjust variable_different_p caller.
32725         (variable_was_changed): If dv had some var in changed_variables
32726         already, reset in_changed_variables flag for it and propagate
32727         cur_loc_changed over to the new variable.  On empty var
32728         always set cur_loc_changed.  Set in_changed_variables on whatever
32729         var is added to changed_variables.
32730         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
32731         Use shared_var_p.  When removing loc that is equal to cur_loc,
32732         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
32733         end, don't set it to something else, just call variable_was_changed.
32734         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
32735         loc being removed, clear cur_loc and set cur_loc_changed.
32736         Set cur_loc_changed if all locations have been removed.
32737         (struct expand_loc_callback_data): New type.
32738         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
32739         allocated.  Always create SUBREGs if simplify_subreg failed.
32740         Prefer to use cur_loc, when that fails and still in
32741         changed_variables (and seen first time) recompute it.  Set
32742         cur_loc_changed of variables which had to change cur_loc and
32743         compute elcd->cur_loc_changed if any of the subexpressions used
32744         had to change cur_loc.
32745         (vt_expand_loc): Adjust to pass arguments in
32746         expand_loc_callback_data structure.
32747         (vt_expand_loc_dummy): New function.
32748         (emitted_notes): New variable.
32749         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
32750         that weren't used for any other decl in current
32751         emit_notes_for_changes call call vt_expand_loc_dummy to update
32752         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
32753         first loc_chain location if NULL before.  Always use just
32754         cur_loc instead of first loc_chain location.  When cur_loc_changed
32755         is false, when not --enable-checking=rtl just don't emit any note.
32756         When rtl checking, compute the note and assert it is the same
32757         as previous note.  Clear cur_loc_changed and in_changed_variables
32758         at the end before removing from changed_variables.
32759         (check_changed_vars_3): New function.
32760         (emit_notes_for_changes): Traverse changed_vars to call
32761         check_changed_vars_3 on each changed var.
32762         (emit_notes_for_differences_1): Clear cur_loc_changed and
32763         in_changed_variables.  Recompute cur_loc of new_var.
32764         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
32765         (vt_emit_notes): Initialize and destroy emitted_notes.
32766
32767 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
32768
32769         PR rtl-optimization/42220
32770         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
32771         Use verify_reg_tracked to determine if we should use OP_OUT rather
32772         than OP_INOUT.
32773         (build_def_use): If we see an in-out operand for a register that we
32774         know nothing about, treat is an output if possible, fail the block if
32775         not.
32776
32777 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32778
32779         PR debug/42897
32780         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
32781         permanently.
32782
32783 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32784
32785         PR debug/42897
32786         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
32787         uses of relevant DEFs that are dead outside the loop too.
32788
32789 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
32790
32791         * var-tracking.c (dataflow_set_merge): Swap src and src2.
32792         Reverted:
32793         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
32794         PR debug/41371
32795         * var-tracking.c (values_to_unmark): New variable.
32796         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
32797         values_to_unmark vector.  Moved body to...
32798         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
32799         instead queue it into values_to_unmark vector.
32800         (vt_find_locations): Free values_to_unmark vector.
32801
32802 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
32803
32804         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
32805         (site.exp): Export them when plugins are enabled.
32806
32807 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
32808
32809         PR middle-end/42326
32810         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
32811         that contain scevs.
32812         (chrec_fold_multiply): Same.
32813
32814 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
32815
32816         PR c/43248
32817         * c-decl.c (build_compound_literal): Return early if init is
32818         an error_mark_node.
32819
32820 2010-03-04  Martin Jambor  <mjambor@suse.cz>
32821
32822         PR tree-optimization/43164
32823         PR tree-optimization/43191
32824         * tree-sra.c (type_consists_of_records_p): Reject records with
32825         zero-size bit-fields at the end.
32826
32827 2010-03-04  Mike Stump  <mikestump@comcast.net>
32828
32829         * Makefile.in (TAGS): Remove *.y.
32830
32831 2010-03-04  Richard Guenther  <rguenther@suse.de>
32832
32833         PR tree-optimization/40761
32834         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
32835         in reverse order.
32836         (my_rev_post_order_compute): New function.
32837         (init_pre): Call it.
32838
32839 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
32840
32841         PR middle-end/43209
32842         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
32843         decrease the cost of an IV candidate when the cost is infinite.
32844
32845 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32846
32847         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
32848         Use '3DNow!' for the extension of that name, ensure normal space
32849         after the string.
32850         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
32851
32852 2010-03-03  Jeff Law  <law@redhat.com>
32853
32854         * PR middle-end/32693
32855         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
32856         than gen_rtx_SUBREG.
32857         (extract_bit_field_1): Likewise.
32858
32859 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
32860
32861         * doc/sourcebuild.texi (Test directives): Document that arguments
32862         include-opts and exclude-opts are now optional for dg-skip-if,
32863         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
32864
32865 2010-03-03  Jason Merrill  <jason@redhat.com>
32866
32867         PR c++/12909
32868         * cgraph.h (varpool_node): Add extra_name field.
32869         * varpool.c (varpool_extra_name_alias): New.
32870         (varpool_assemble_decl): Emit extra name aliases.
32871         (varpool_mark_needed_node): Look past an extra name alias.
32872         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
32873         * lto-streamer-in.c (lto_input_tree): Read it.
32874         * lto-streamer-out.c (output_unreferenced_globals): Write it.
32875
32876 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
32877
32878         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
32879         (sparc*-*-solaris2*): ...this.
32880
32881 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
32882
32883         PR debug/43229
32884         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
32885         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
32886         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
32887         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
32888
32889         PR debug/43237
32890         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
32891         fallthrough to default handling, just with want_address 0 instead of 2.
32892         For single element lists, add_AT_loc directly, otherwise create an
32893         artificial variable DIE and stick location list to it.
32894
32895         PR debug/43177
32896         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
32897         (VAL_EXPR_HAS_REVERSE): Define.
32898         (reverse_op): New function.
32899         (add_stores): For reversible operations add an extra MO_VAL_USE.
32900
32901 2010-03-02  Jason Merrill  <jason@redhat.com>
32902
32903         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
32904
32905 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
32906
32907         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
32908         (sparc64-*-linux*): Likewise.
32909         (sparc64-*-solaris2*): Include assembler files before linker ones.
32910         (sparc-*-solaris2*): Simplify and reorder to match previous case.
32911         * config/sparc/gas.h: Delete.
32912         * config/sparc/sol2-64.h: Add copyright notice.
32913         * config/sparc/sol2-gas-bi.h: Likewise.
32914         * config/sparc/sol2-gld.h: Likewise.
32915         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
32916         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
32917         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
32918         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
32919         (sparc_elf_asm_named_section): Rename into...
32920         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
32921
32922 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
32923
32924         * config/alpha/alpha.c (override_options): Fix -mtune error message.
32925
32926 2010-03-02  Jeff Law  <law@redhat.com>
32927
32928         PR middle-end/42431
32929         * reload1.c (rtx_p, substitute_stack): Declare.
32930         (substitute): Record addresses of changed rtxs.
32931         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
32932         Restore the original rtx when complete.
32933         (reload): Free subsitute_stack when complete.
32934
32935 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
32936
32937         * doc/gccint.texi (menu): Add Testsuites as a chapter.
32938         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
32939         new chapter.
32940         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
32941         LTO Testing, gcov Testing, profopt Testing, compat Testing,
32942         Torture Tests): Change from subsection to section.
32943
32944 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
32945             Steven Bosscher  <steven@gcc.gnu.org>
32946
32947         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
32948         instead of bb.
32949
32950 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
32951
32952         PR middle-end/42640
32953         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
32954         the assignment from the new induction variable to the assignment
32955         of the value from the original loop PHI function.
32956
32957 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
32958             Daniel Jacobowitz  <dan@codesourcery.com>
32959
32960         * doc/sourcebuild.texi (Test directives): Clarify options to
32961         dg-skip-if.
32962
32963 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32964
32965         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
32966         Disable cfi directives unless GCC and gas agree on using read-only
32967         .eh_frame sections for 64-bit.
32968         * configure: Regenerate.
32969
32970 2010-03-01  Richard Guenther  <rguenther@suse.de>
32971
32972         PR tree-optimization/43220
32973         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
32974         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
32975
32976 2010-03-01  Richard Guenther  <rguenther@suse.de>
32977             Martin Jambor  <mjambor@suse.cz>
32978
32979         PR middle-end/41250
32980         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
32981         gimplified parameters.
32982
32983 2010-03-01  Christian Bruel  <christian.bruel@st.com>
32984
32985         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
32986
32987 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
32988
32989         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
32990
32991 2010-03-01  Richard Guenther  <rguenther@suse.de>
32992
32993         PR middle-end/43213
32994         * expr.c (expand_assignment): Use the alias-oracle to tell
32995         if the rhs aliases the result decl.
32996
32997 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32998
32999         PR pch/14940
33000         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
33001         to sol_gt_pch_get_address.
33002         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
33003         64-bit, SPARC and x86.
33004         (sol_gt_pch_get_address): New function.
33005
33006 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
33007
33008         * toplev.h (inform_n, error_n): Declare.
33009         * diagnostic.c (inform_n, error_n): New function.
33010
33011 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
33012
33013         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
33014         has no rtl yet when processing local_decls, queue it and recheck
33015         if deferred stack allocation hasn't assigned it rtl.
33016
33017 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
33018
33019         * config/sh/sh.c (unspec_bbr_uid): New.
33020         (gen_block_redirect): Use it instead of INSN_UID.
33021         (gen_far_branch): Likewise.
33022
33023 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
33024
33025         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
33026         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
33027
33028 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33029
33030         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
33031         (Warning Options): -Wno-conversion-null is valid for
33032         Objective-C++ as well.
33033         * doc/tm.texi (Named Address Spaces): Likewise.
33034         * doc/plugins.texi (Plugins): Replace TABs with spaces.
33035         * doc/tree-ssa.texi (Tree SSA): Likewise.
33036
33037 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33038
33039         PR bootstrap/43202
33040         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
33041         by default.  Don't set the default arch for
33042         i[34567]86-*-darwin*|x86_64-*-darwin*.
33043
33044 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33045
33046         PR bootstrap/43202
33047         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
33048         default.  Set the default 32bit/64bit archs with $with_arch
33049         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
33050
33051 2010-02-27  Richard Guenther  <rguenther@suse.de>
33052
33053         PR tree-optimization/43186
33054         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
33055         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
33056         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
33057         unroller iterations.
33058
33059 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33060
33061         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
33062         required and i[34567]86-*-* targets don't support 64bit ISA.
33063
33064 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
33065
33066         PR ada/43096
33067         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
33068         the same alias set.
33069
33070 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33071
33072         * config.gcc: Set the default arch at least to Prescott for
33073         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
33074         if SSE math is enabled.
33075
33076 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33077
33078         * diagnostic.c (diagnostic_initialize): Update.
33079         (diagnostic_report_diagnostic): Test inhibit_notes_p for
33080         informative notes.
33081         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
33082         (diagnostic_inhibit_notes): New.
33083         * toplev.c (process_options): inhibit notes with -fcompare-debug.
33084
33085 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33086
33087         PR c/20631
33088         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
33089         * doc/standards.texi: Likewise.
33090         * doc/extend.texi: Likewise.
33091         * doc/trouble.texi: Likewise.
33092         * doc/cppopts.texi: Likewise.
33093         * doc/install.texi: Likewise.
33094         * c.opt (std=c90,std=gnu90): New options.
33095         * c-opts.c (c_common_handle_option): Handle them.
33096
33097 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33098
33099         PR c/24577
33100         * c-decl.c (undeclared_variable): Use an informative note.
33101
33102 2010-02-26  Richard Guenther  <rguenther@suse.de>
33103
33104         PR tree-optimization/43186
33105         * gimple.h (gimple_fold): Remove.
33106         * gimple.c (gimple_fold): Remove.  Inline into single user ...
33107         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
33108         Try harder for conditions.
33109
33110 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33111
33112         PR debug/43190
33113         * function.c (used_types_insert): Don't skip through named pointer
33114         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
33115         and it is different from the main variant's type.
33116
33117 2010-02-26  Nick Clifton  <nickc@redhat.com>
33118
33119         * config/rx/rx.md (sminsi3): Remove bogus alternative.
33120
33121 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33122
33123         * config.gcc: Support --with-fpmath=sse for x86.
33124
33125         * config/i386/ssemath.h: New.
33126
33127         * doc/install.texi (--with-fpmath=sse): Documented.
33128
33129 2010-02-26  Richard Guenther  <rguenther@suse.de>
33130
33131         PR tree-optimization/43188
33132         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
33133         vector types of over-aligned element type.
33134
33135 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
33136
33137         PR target/43175
33138         * config/i386/i386.c (expand_vec_perm_blend): Use correct
33139         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
33140
33141 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
33142
33143         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
33144
33145 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33146
33147         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
33148         * var-tracking.c: Include diagnostic.h.
33149         (debug_dv): New function.
33150         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
33151
33152         PR debug/43160
33153         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
33154         (add_value_chain, add_value_chains, remove_value_chain,
33155         remove_value_chains): Handle DEBUG_EXPRs.
33156         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
33157
33158         PR debug/43161
33159         * regcprop.c (struct queued_debug_insn_change): New type.
33160         (struct value_data_entry): Add debug_insn_changes field.
33161         (struct value_data): Add n_debug_insn_changes field.
33162         (debug_insn_changes_pool): New variable.
33163         (free_debug_insn_changes, apply_debug_insn_changes,
33164         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
33165         (kill_value_one_regno): Call free_debug_insn_changes if needed.
33166         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
33167         fields.
33168         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
33169         changes for them.
33170         (copyprop_hardreg_forward_1): Don't call apply_change_group for
33171         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
33172         changes, call cprop_find_used_regs via note_stores.
33173         (copyprop_hardreg_forward): When copying vd from predecessor
33174         which has any queued DEBUG_INSN changes, make sure the pointers are
33175         cleared.  At the end call df_analyze and then if there are any
33176         DEBUG_INSN changes queued at the end of some basic block for still
33177         live registers, apply them.
33178         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
33179
33180 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
33181
33182         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
33183         (arm*-*-*): Ditto.
33184
33185 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
33186
33187         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
33188         targets.  Set the default with_cpu/with_arch from arch/cpu.
33189         Allow x86-64 and native for with_cpu/with_arch.
33190
33191 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
33192
33193         * ebitmap.c: Change calls to verify_popcount with calls to
33194         sbitmap_verify_popcount.
33195         (ebitmap_clear_bit): Fixed map->cacheindex test and
33196         map>cache update when bit clearing results in an empty
33197         element.
33198
33199 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
33200
33201         PR target/43154
33202         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
33203         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
33204         and support both V2DF and V2DI modes.
33205         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
33206         support both V2DF and V2DI modes.
33207         (general): Delete trailing whitespace from a few patterns.
33208
33209         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
33210         V2DF/V2DI interleave high/low builtins.
33211
33212         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
33213         new VSX builtins.
33214
33215         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
33216         interleave high/low functions.
33217
33218 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
33219
33220         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
33221         #pragma extern_prefix.
33222
33223 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
33224
33225         PR debug/43166
33226         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
33227         BLKmode, assert op0 is a MEM and just adjust its mode.
33228
33229         PR debug/43165
33230         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
33231         if bitpos isn't multiple of mode's bitsize.
33232
33233 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33234
33235         * c.opt (-ftemplate-depth=): New.
33236         (-ftemplate-depth-): Deprecate.
33237         * optc-gen.awk: Handle -ftemplate-depth=.
33238         * opth-gen.awk: Likewise.
33239         * c-opts.c (c_common_handle_option): Likewise.
33240         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
33241
33242 2010-02-24  Jason Merrill  <jason@redhat.com>
33243
33244         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
33245
33246 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33247
33248         * cfg.c (alloc_aux_for_block): Remove inline.
33249         (alloc_aux_for_edge): Likewise.
33250
33251 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33252
33253         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
33254
33255 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33256
33257         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
33258         * config/i386/sol2-gas.h: New file.
33259         * config.gcc (i[34567]86-*-solaris2*): Use it.
33260
33261 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33262
33263         PR c/43128
33264         * c-typeck.c (ep_convert_and_check): New.
33265         (build_conditional_expr): Use it.
33266         (build_binary_op): Likewise.
33267
33268 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
33269
33270         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
33271
33272         PR debug/43150
33273         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
33274         bounds even for -O+.
33275         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
33276         expr needs to have DECL_NAME set.
33277
33278 2010-02-24  Nick Clifton  <nickc@redhat.com>
33279
33280         * config/mep/mep.c: Include gimple.h.
33281         (mep_function_uses_sp): Delete unused function.
33282         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
33283         parameters.  Use unsigned integers to count args.  Return a
33284         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
33285
33286 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33287
33288         PR target/43107
33289         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
33290         greater or equal to nelt instead of 2 * nelt.
33291         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
33292         with nelt - 1.
33293
33294 2010-02-23  Jason Merrill  <jason@redhat.com>
33295
33296         PR debug/42800
33297         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
33298         in cfun->local_decls even if they have register types.
33299
33300         PR c++/42837
33301         * stor-layout.c (place_field): Don't warn about unnecessary
33302         DECL_PACKED if the type is packed.
33303
33304 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33305
33306         PR target/43139
33307         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
33308         GOTOFF relocs, even when the base reg isn't pic pointer.
33309
33310 2010-02-23  Michael Matz  <matz@suse.de>
33311
33312         PR debug/43077
33313         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
33314         (expand_gimple_basic_block): Generate and use debug temps if there
33315         are debug uses left after the last real use of TERed ssa names.
33316         Unlink debug immediate uses when they are expanded.
33317
33318 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33319
33320         PR 43123
33321         * config/i386/i386.c (override_options): Reorganise to provide
33322         better error messages.
33323
33324 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33325
33326         PR middle-end/43083
33327         * graphite-scop-detection.c (create_single_exit_edge): Move
33328         the call to find_single_exit_edge to....
33329         (create_sese_edges): ...here.  Don't handle multiple edges
33330         exiting the function.
33331         (build_graphite_scops): Don't handle multiple edges
33332         exiting the function.
33333
33334 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33335
33336         PR middle-end/43097
33337         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
33338         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
33339
33340 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33341
33342         PR middle-end/43026
33343         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
33344
33345 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33346
33347         PR c++/43126
33348         * c-typeck.c (convert_arguments): Print declaration location.
33349         * c-common.c (validate_nargs): Rename as
33350         builtin_function_validate_nargs.
33351         (check_builtin_function_arguments): Update.
33352
33353 2010-02-22  Richard Guenther  <rguenther@suse.de>
33354
33355         PR lto/43045
33356         * tree-inline.c (declare_return_variable): Use the type of
33357         the call stmt lhs if available.
33358
33359 2010-02-22  Duncan Sands  <baldrick@free.fr>
33360
33361         * passes.c (register_pass): Always consider all pass lists when
33362         ref_pass_instance_number is zero.
33363
33364 2010-02-22  Richard Guenther  <rguenther@suse.de>
33365
33366         PR tree-optimization/42749
33367         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
33368         parameter.  Do arithmetic in the original type.
33369         (update_accumulator_with_ops): Likewise.
33370         (adjust_accumulator_values): Adjust.
33371
33372 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33373
33374         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
33375         (QI to BLKmode splitter): New splitter.
33376
33377 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
33378
33379         * config/i386/i386.c (initial_ix86_tune_features): Turn on
33380         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
33381
33382 2010-02-22  Richard Guenther  <rguenther@suse.de>
33383
33384         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
33385
33386 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
33387
33388         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
33389         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
33390         ($(T)crti.o, $(T)crtn.o): Remove rules.
33391
33392 2010-02-21  Tobias Burnus  <burnus@net-b.de>
33393
33394         PR fortran/35259
33395         * doc/invoke.texi (-fassociative-math): Document that this
33396         option is automatically enabled for Fortran.
33397
33398 2010-02-20  David S. Miller  <davem@davemloft.net>
33399
33400         * configure.ac: Test if linker and assembler properly support
33401         GOTDATA_OP relocations.
33402         * configure: Rebuild.
33403         * config.in: Likewise.
33404         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
33405         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
33406         (movsi_high_pic): Likewise.
33407         (movdi_lo_sum_pic): Likewise.
33408         (movdi_high_pic): Likewise.
33409         (movsi_pic_gotdata_op): New pattern.
33410         (movdi_pic_gotdata_op): Likewise.
33411         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
33412         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
33413
33414 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
33415
33416         PR target/43067
33417         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
33418         attribute to ssemul.
33419         (xop_mulv2div2di3_high): Ditto.
33420
33421 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33422
33423         PR c++/35669
33424         * c.opt (Wconversion-null): New option.
33425         * doc/invoke.texi (Wconversion-null): Document.
33426
33427 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33428
33429         * common.opt (Wlarger-than-): Add Undocumented.
33430
33431 2010-02-19  Mike Stump  <mikestump@comcast.net>
33432
33433         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
33434
33435 2010-02-19  Jason Merrill  <jason@redhat.com>
33436
33437         PR target/40332
33438         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
33439         * configure: Likewise.
33440
33441 2010-02-20  Alan Modra  <amodra@gmail.com>
33442
33443         PR middle-end/42344
33444         * cgraph.h (cgraph_make_decl_local): Declare.
33445         * cgraph.c (cgraph_make_decl_local): New function.
33446         (cgraph_make_node_local): Use it.
33447         * cgraphunit.c (cgraph_function_versioning): Likewise.
33448         * ipa.c (function_and_variable_visibility): Likewise.
33449
33450 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33451
33452         PR bootstrap/43121
33453         * except.c (sjlj_emit_function_enter): Don't call
33454         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
33455         directly.
33456         * rtl.h (add_reg_br_prob_note): Remove prototype.
33457
33458 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33459
33460         PR 41779
33461         * c-common.c (conversion_warning): Remove widening conversions
33462         before checking the conversion of integers to reals.
33463
33464 2010-02-19  Mike Stump  <mikestump@comcast.net>
33465
33466         PR middle-end/43125
33467         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
33468
33469         PR objc/43061
33470         * cgraphunit.c (process_function_and_variable_attributes): Check
33471         DECL_PRESERVE_P instead of looking up attribute "used".
33472         * ipa-pure-const.c (check_decl): Likewise.
33473         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
33474         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
33475         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
33476         instead of attribute "used".
33477         * config/sol2-c.c (solaris_pragma_init): Likewise.
33478         (solaris_pragma_fini): Likewise.
33479
33480 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33481
33482         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
33483         Use XCNEW instead of xcalloc.
33484         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
33485         XNEW instead of xmalloc.
33486         (get_fields): Use XNEWVEC instead of xmalloc.
33487
33488         PR debug/43084
33489         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
33490         populate vars array.
33491         (create_new_general_access): For debug stmts just reset value.
33492         (get_stmt_accesses): For accesses within debug stmts just record them
33493         using add_access_to_acc_sites instead of preventing the peeling or
33494         counting them as accesses.
33495
33496         PR middle-end/42233
33497         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
33498
33499 2010-02-19  Richard Guenther  <rguenther@suse.de>
33500
33501         PR tree-optimization/42916
33502         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
33503         instructions.
33504
33505 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
33506
33507         * configure.ac: Replace all uses of changequote in macro arguments
33508         with proper quoting.
33509
33510 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33511
33512         PR middle-end/42233
33513         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
33514
33515 2010-02-19  Richard Guenther  <rguenther@suse.de>
33516
33517         PR tree-optimization/42944
33518         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
33519         test for aliasing with errno.
33520
33521 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33522
33523         PR middle-end/42233
33524         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
33525         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
33526         * dojump.c: Include output.h.
33527         (inv): New inline function.
33528         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
33529         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
33530         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
33531         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
33532         argument, pass it down to other calls.
33533         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
33534         add REG_BR_PROB note to the conditional jump.
33535         * cfgexpand.c (add_reg_br_prob_note): Removed.
33536         (expand_gimple_cond): Don't call it, add the probability
33537         as last argument to jumpif_1/jumpifnot_1.
33538         * Makefile.in (dojump.o): Depend on output.h.
33539         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
33540         callers.
33541         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
33542         * stmt.c (do_jump_if_equal): Likewise.
33543         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
33544         * loop-unswitch.c (compare_and_jump_seq): Likewise.
33545         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
33546         Likewise.
33547         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
33548         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
33549         jumpifnot_1 callers.
33550         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
33551         callers.
33552         (store_expr): Adjust jumpifnot caller.
33553         (store_constructor): Adjust jumpif caller.
33554
33555         PR middle-end/42233
33556         * gimplify.c (gimple_boolify): For __builtin_expect call
33557         gimple_boolify also on its first argument.
33558
33559 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
33560
33561         * configure.ac (gnu-unique-object): Wrap regexps using [] in
33562         changequote block.
33563         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
33564         * configure: Regenerated.
33565
33566 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33567
33568         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
33569         lang_hooks.types_compatible_p instead of comptypes.
33570
33571 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33572
33573         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
33574         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
33575         if __prefer_thumb__ is defined.
33576
33577 2010-02-18  Martin Jambor  <mjambor@suse.cz>
33578
33579         PR tree-optimization/43066
33580         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
33581         array with zero-sized element type.
33582
33583 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
33584
33585         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
33586         rtx, allocate struct var_loc_node here and return it to the
33587         caller, and only if it is actually needed.
33588         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
33589         move it earlier and return immediately if it returns NULL.
33590
33591 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
33592
33593         * config/sparc/gas.h: New file.  Restore
33594         TARGET_ASM_NAMED_SECTION to its ELF default.
33595         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
33596         check !HAVE_GNU_AS.
33597         * config/sparc/sparc.c (sparc_elf_asm_named_section):
33598         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
33599         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
33600         after sparc/sysv4.h.
33601
33602 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
33603
33604         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
33605
33606 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
33607
33608         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
33609         patterns from predicated pattern.
33610
33611 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
33612
33613         PR target/43103
33614         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
33615         for insn mnemonic suffix.
33616
33617 2010-02-17  Richard Guenther  <rguenther@suse.de>
33618
33619         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
33620         to loop PHI nodes.
33621
33622 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
33623
33624         PR debug/42918
33625         * caller-save.c (save_call_clobbered_regs): If BB ends with
33626         a DEBUG_INSN, move any notes in between last real insn and the last
33627         DEBUG_INSN after the last DEBUG_INSN.
33628
33629 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
33630
33631         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
33632         Fix return type.  Fix argument type.  Explain meaning of return value.
33633
33634 2010-02-16  Richard Guenther  <rguenther@suse.de>
33635
33636         PR tree-optimization/41043
33637         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
33638         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
33639         statements ...
33640         (vrp_visit_phi_node): ... but only for loop PHI nodes.
33641
33642 2010-02-16  Ira Rosen  <irar@il.ibm.com>
33643
33644         PR tree-optimization/43074
33645         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
33646         * tree-vect-loop.c (vect_analyze_loop_operations): Add
33647         vectorizable cycles in hybrid SLP check.
33648         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
33649
33650 2010-02-16  Richard Guenther  <rguenther@suse.de>
33651
33652         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
33653         (true_dependence): If memrefs_conflict_p computes must-alias
33654         trust it.  Move TBAA check after offset-based disambiguation.
33655         (canon_true_dependence): Likewise.
33656
33657 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
33658
33659         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
33660         * doc/invoke.texi: Document it.
33661         * var-tracking.c: Include toplev.h and params.h.
33662         (vt_find_locations): Return bool indicating success.  Compute
33663         hash sizes unconditionally.  Check new parameter, report.
33664         (variable_tracking_main_1): Check vt_find_locations results and
33665         retry.  Renamed from...
33666         (variable_tracking_main): ... this.  New wrapper to preserve
33667         flag_var_tracking_assignments.
33668         * Makefile.in (var-tracking.o): Adjust dependencies.
33669
33670 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
33671             Jakub Jelinek  <jakub@redhat.com>
33672
33673         PR target/42854
33674         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
33675         if weak_import attribute is present.
33676         * config/darwin.c (machopic_select_section): Likewise.
33677
33678 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
33679
33680         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
33681         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
33682         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
33683         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
33684
33685         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
33686         types.
33687
33688         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33689         Fix argument types.
33690
33691         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
33692         Rewrite text to refer to the names.
33693
33694 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
33695
33696         * config/i386/i386-builtin-types.def
33697         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
33698         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
33699         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
33700         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
33701         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
33702         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
33703         IX86_BUILTIN_VPERMIL2PS256.
33704         (MULTI_ARG_4_DF2_DI_I): Defined.
33705         (MULTI_ARG_4_DF2_DI_I1): Defined.
33706         (MULTI_ARG_4_SF2_SI_I): Defined.
33707         (MULTI_ARG_4_SF2_SI_I1): Defined.
33708         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
33709         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
33710         __builtin_ia32_vpermil2ps256.
33711         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33712         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33713         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
33714         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33715         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33716         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
33717         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
33718         CODE_FOR_xop_vpermil2v8sf3.
33719         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
33720         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
33721         * config/i386/xopintrin.h (_mm_permute2_pd): New.
33722         (_mm256_permute2_pd): New.
33723         (_mm_permute2_ps): New.
33724         (_mm256_permute2_ps): New.
33725
33726 2010-02-15  Nick Clifton  <nickc@redhat.com>
33727
33728         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
33729         boolean parameters.  Use emit_jump_insn when emitting a pop
33730         instruction containing a return insn.
33731         (push): Use 'true' rather than '1' as second parameter to F.
33732         (h8300_expand_prologue): Likewise.
33733         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
33734         (h8300_expand_epilogue): Likewise.
33735
33736 2010-02-15  Richard Guenther  <rguenther@suse.de>
33737
33738         PR middle-end/43068
33739         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
33740         if that is zero.
33741
33742 2010-02-15  Nick Clifton  <nickc@redhat.com>
33743
33744         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
33745         delta.
33746
33747 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
33748
33749         * intl.c (fake_ngettext): New function.
33750         * intl.h (fake_ngettext): Declare.
33751         (ngettext): Define macro.
33752         * collect2.c (notice_translated): New function.
33753         (main): Use notice_translated and ngettext.
33754         * collect2.h (notice_translated): Declare.
33755
33756 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
33757
33758         * reorg.c (delete_computation): Comment fixes.
33759         * caller-save.c (setup_save_areas): Idem.
33760         * sel-sched-dump.c (dump_lv_set): Idem.
33761         * rtl.def: Idem.
33762
33763 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33764
33765         * config/s390/s390.c (s390_sched_init): New function.
33766         (TARGET_SCHED_INIT): Target hook defined.
33767
33768 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
33769             Jack Howarth  <howarth@bromo.med.uc.edu>
33770             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
33771
33772         PR target/42982
33773         Partial revert of unintended change in fix for PR41605.
33774         * config/darwin.h: Fix typo.
33775         * config/darwin9.h: Same.
33776
33777 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
33778
33779         * c-pch.c (pch_init): Clear v.
33780
33781 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33782
33783         PR middle-end/42930
33784         * graphite-scop-detection.c (graphite_can_represent_scev): Call
33785         graphite_can_represent_init for MULT_EXPR.
33786
33787 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33788
33789         PR middle-end/42914
33790         PR middle-end/42530
33791         * graphite-sese-to-poly.c (remove_phi): New.
33792         (translate_scalar_reduction_to_array): Call remove_phi.
33793
33794 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33795
33796         PR middle-end/42771
33797         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
33798         * graphite-clast-to-gimple.h (gloog): Update declaration.
33799         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
33800         * graphite-poly.h (struct poly_bb): Add missing comments.
33801         (struct scop): Add poly_scop_p field.
33802         (POLY_SCOP_P): New.
33803         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
33804         * graphite.c (graphite_transform_loops): Build the polyhedral
33805         representation for each scop before code generation.
33806         * sese.c (rename_variables_in_operand): Removed.
33807         (rename_variables_in_expr): Return the renamed expression.
33808         (rename_sese_parameters): New.
33809         * sese.h (rename_sese_parameters): Declared.
33810
33811 2010-02-11  Richard Guenther  <rguenther@suse.de>
33812
33813         PR tree-optimization/42998
33814         * tree-ssa-pre.c (create_expression_by_pieces): Treat
33815         POINTER_PLUS_EXPR properly.
33816
33817 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
33818             Changpeng Fang  <changpeng.fang@amd.com>
33819
33820         PR middle-end/40886
33821         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
33822         the cost of an IV candidate when the IV is used in a test against zero.
33823
33824         * gcc.dg/tree-ssa/ivopts-3.c: New.
33825
33826 2010-02-11  Richard Guenther  <rguenther@suse.de>
33827
33828         PR lto/41664
33829         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
33830         pointer-vs-decl case by swapping refs.  Handle some cases
33831         of pointer-vs-decl disambiguations more conservatively.
33832         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
33833         to false after expanding.
33834
33835 2010-02-11  Richard Guenther  <rguenther@suse.de>
33836
33837         PR driver/43021
33838         * gcc.c (process_command): Handle LTO file@offset case more
33839         appropriately.
33840
33841 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
33842
33843         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
33844         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
33845         of DEBUG_INSNs.
33846         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
33847
33848         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
33849         if MEM's mode size isn't DWARF2_ADDR_SIZE.
33850         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
33851         Optimize eq/ne comparisons when both arguments are known to be
33852         zero-extended.
33853         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
33854         Don't mask operands unnecessarily if they are known to be already
33855         zero-extended.
33856
33857 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
33858
33859         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
33860         instead of loop.
33861
33862 2010-02-10  Richard Guenther  <rguenther@suse.de>
33863
33864         PR tree-optimization/43017
33865         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
33866         for wrapping signed arithmetic.
33867
33868 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
33869
33870         PR debug/43010
33871         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
33872         if no debug info should be emitted for it.
33873
33874 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
33875
33876         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
33877         note when flag_exceptions is set.
33878
33879 2010-02-10  Duncan Sands  <baldrick@free.fr>
33880
33881         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
33882
33883 2010-02-10  Richard Guenther  <rguenther@suse.de>
33884
33885         PR c/43007
33886         * tree.c (get_unwidened): Handle constants.
33887         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
33888
33889 2010-02-10  Martin Jambor  <mjambor@suse.cz>
33890
33891         PR lto/42985
33892         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
33893         check for variable argument counts independently.
33894
33895 2010-02-10  Christian Bruel  <christian.bruel@st.com>
33896
33897         PR target/42841
33898         * config/sh/sh.c (find_barrier): Increase length for non delayed
33899         conditional branches.
33900
33901 2010-02-10  Christian Bruel  <christian.bruel@st.com>
33902
33903         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
33904
33905 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
33906
33907         * builtins.c (set_builtin_user_assembler_name): Also handle
33908         ffs if int is smaller than word.
33909
33910 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
33911
33912         PR middle-end/42973
33913         * ira-conflicts.c (get_dup): Remove.
33914         (process_reg_shuffles): Add new parameter.  Use it as an
33915         additional guard for copy generation.
33916         (add_insn_allocno_copies): Rewrite.
33917
33918 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
33919
33920         * common.opt (fsched2-use-traces): Preserved for backward
33921         compatibility.
33922         * doc/invoke.texi: Remove the documentation about option
33923         -fsched2-use-traces.
33924         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
33925         flag_sched2_use_traces.
33926         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
33927         the backward compatibility flag section.
33928
33929 2010-02-09  Richard Guenther  <rguenther@suse.de>
33930
33931         PR tree-optimization/43008
33932         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
33933         make HEAP variables initialized from global memory if they
33934         are not known builtin functions.
33935         (find_func_aliases): Adjust.
33936
33937 2010-02-09  Richard Guenther  <rguenther@suse.de>
33938
33939         PR tree-optimization/43000
33940         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
33941         arithmetic manually.
33942
33943 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
33944
33945         PR tree-optimization/42931
33946         * tree-loop-linear.c (try_interchange_loops): Don't call
33947         double_int_mul if estimated_loop_iterations failed.
33948
33949 2010-02-08  Martin Jambor  <mjambor@suse.cz>
33950
33951         PR middle-end/42898
33952         * tree-sra.c (build_accesses_from_assign): Do not mark in
33953         should_scalarize_away_bitmap if stmt has volatile ops.
33954         (sra_modify_assign): Do not process assigns piecemeal if if stmt
33955         has volatile ops.
33956
33957 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
33958
33959         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
33960
33961 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
33962
33963         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
33964         before the pattern.
33965
33966 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
33967
33968         PR middle-end/42946
33969         * df-core.c (df_finish_pass): Change type of saved_flags to int.
33970
33971 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
33972
33973         PR middle-end/42988
33974         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
33975         to unknown_dependence.
33976         (graphite_legal_transform_dr): Handle the unknown_dependence.
33977         (graphite_carried_dependence_level_k): Same.
33978
33979 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
33980
33981         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
33982
33983 2010-02-07  Richard Guenther  <rguenther@suse.de>
33984
33985         PR middle-end/42991
33986         * expr.c (get_inner_reference): Always initialize *pbitsize.
33987
33988 2010-02-07  Richard Guenther  <rguenther@suse.de>
33989
33990         PR middle-end/42956
33991         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
33992         new ARRAY_REFs on variable size element or minimal index arrays.
33993         Complete.
33994         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
33995         gimple_fold_indirect_ref.
33996
33997 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
33998
33999         PR target/42957
34000         * arm.c (arm_override_options): Just return if the user has specified
34001         an invalid fpu name.
34002
34003 2010-02-03  Jason Merrill  <jason@redhat.com>
34004
34005         PR c++/42870
34006         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
34007         i386_pe_maybe_record_exported_symbol.
34008
34009 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
34010
34011         PR target/42924
34012         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34013         (pa_delegitimize_address): New function.
34014
34015 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
34016
34017         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
34018         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
34019
34020 2010-02-05  Richard Guenther  <rguenther@suse.de>
34021
34022         PR lto/42762
34023         * lto-streamer-in.c (get_resolution): Deal with references
34024         to undefined functions.
34025
34026 2010-02-05  Richard Guenther  <rguenther@suse.de>
34027
34028         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
34029         (fold_const_aggregate_ref): Likewise.
34030         (ccp_fold_stmt): Substitute loads.
34031         (maybe_fold_reference): Verify types before substituting.
34032         Unshare properly.
34033         (fold_gimple_assign): Unshare properly.
34034         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
34035
34036 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
34037
34038         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
34039         for rs6000_gen_cell_microcode.
34040
34041 2010-02-04  Richard Guenther  <rguenther@suse.de>
34042
34043         PR rtl-optimization/42952
34044         * dse.c (const_or_frame_p): Remove MEM handling.
34045
34046 2010-02-04  Nick Clifton  <nickc@redhat.com>
34047
34048         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
34049         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34050         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
34051         (mn10300_asm_output_mi_thunk): New function.
34052         (mn10300_can_output_mu_thunk): New function.
34053         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
34054         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
34055         (FUNCTION_ARG): Delete incorrect comment.
34056
34057 2010-02-03  Jason Merrill  <jason@redhat.com>
34058
34059         PR c++/40138
34060         * fold-const.c (operand_equal_p): Handle erroneous types.
34061
34062 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34063
34064         * config/h8300/h8300.md (can_delay): Fix attibute condition.
34065
34066 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
34067
34068         PR rtl-optimization/42941
34069         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
34070         of xmalloc.
34071
34072 2010-02-03  Jason Merrill  <jason@redhat.com>
34073
34074         PR c++/35652
34075         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
34076
34077 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
34078
34079         PR debug/42896
34080         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
34081         (cselib_reset_table): Renamed from...
34082         (cselib_reset_table_with_next_value): ... this.
34083         (cselib_get_next_uid): Renamed from...
34084         (cselib_get_next_unknown_value): ... this.
34085         * cselib.c (next_uid): Renamed from...
34086         (next_unknown_value): ... this.
34087         (cselib_clear_table): Adjust.
34088         (cselib_reset_table): Adjust.  Renamed from...
34089         (cselib_reset_table_with_next_value): ... this.
34090         (cselib_get_next_uid): Adjust.  Renamed from...
34091         (cselib_get_next_unknown_value): ... this.
34092         (get_value_hash): Use hash.
34093         (cselib_hash_rtx): Likewise.
34094         (new_cselib_val): Adjust.  Set and dump uid.
34095         (cselib_lookup_mem): Pass next_uid as hash.
34096         (cselib_subst_to_values): Likewise.
34097         (cselib_log_lookup): Dump uid.
34098         (cselib_lookup): Pass next_uid as hash.  Adjust.
34099         (cselib_process_insn): Adjust.
34100         (cselib_init): Initialize next_uid.
34101         (cselib_finish): Adjust.
34102         (dump_cselib_table): Likewise.
34103         * dse.c (canon_address): Dump value uid.
34104         * print-rtl.c (print_rtx): Print value uid.
34105         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
34106         (dvuid): New type.
34107         (dv_uid): New function, sort of renamed from...
34108         (dv_htab_hash): ... this, reimplemented in terms of it and...
34109         (dv_uid2hash): ... this.  New.
34110         (variable_htab_eq): Drop excess assertions.
34111         (tie_break_pointers): Removed.
34112         (canon_value_cmp): Compare uids.
34113         (variable_post_merge_New_vals): Print uids.
34114         (vt_add_function_parameters): Adjust.
34115         (vt_initialize): Reset table.  Adjust.
34116
34117 2010-02-03  Richard Guenther  <rguenther@suse.de>
34118
34119         PR tree-optimization/42944
34120         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
34121         (call_may_clobber_ref_p_1): Likewise.  Properly handle
34122         malloc and calloc clobbering errno.
34123
34124 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
34125
34126         * doc/invoke.texi: Fix name of sched1 dump.
34127
34128         * opts.c (decode_options): Set flag_tree_switch_conversion
34129         only conditionally on optimize >= 2.
34130
34131         * gcse.c: Assorted comment fixes in pass description.
34132
34133 2010-02-03  Anthony Green  <green@moxielogic.com>
34134
34135         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
34136         nop padding in order to maintain alignment of storage location of
34137         target function address.
34138         (moxie_trampoline_init): Store target function address at newly
34139         aligned location.
34140         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
34141         to 32.
34142         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
34143
34144 2010-02-03  Richard Guenther  <rguenther@suse.de>
34145
34146         PR middle-end/42927
34147         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
34148
34149 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34150
34151         * config.gcc: Reenable check for obsolete targets.
34152         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
34153         mips-sgi-irix6.[0-4]*.
34154
34155 2010-02-02  Nick Clifton  <nickc@redhat.com>
34156
34157         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
34158         constant size of 4 as being the same as 0.
34159         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
34160         can take values in the range 0..4.
34161
34162 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
34163
34164         PR java/41991
34165         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
34166         as _darwin10_Unwind_FindEnclosingFunction().
34167         * libgcc-libsystem.ver: New.
34168
34169 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
34170
34171         PR target/41399
34172         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
34173         implicitly set registers.
34174
34175 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
34176
34177         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
34178         (arm_override_options): Allow automatic selection of the thread
34179         pointer register if thumb2.
34180         (legitimize_pic_address): Improve code sequences for Thumb2.
34181         (arm_call_tls_get_addr): Likewise.
34182         (legitimize_tls_address): Likewise.
34183         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
34184         (pic_load_addr_32bit): ... this.  New named pattern.
34185         * thumb2.md (pic_load_addr_thumb2): Delete.
34186         (pic_load_dot_plus_four): Delete.
34187         (tls_load_dot_plus_four): New named pattern.
34188
34189 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34190
34191         PR libgomp/29986
34192         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
34193         Document fix for TLS bug.
34194
34195 2010-01-31  Richard Guenther  <rguenther@suse.de>
34196
34197         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
34198         conservatively correct.
34199
34200 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34201
34202         PR target/42850
34203         Revert:
34204         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34205
34206         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
34207
34208 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34209
34210         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
34211
34212 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
34213
34214         * config.gcc: Adjust order of makefile fragments for mingw targets.
34215
34216 2010-01-31  Richard Guenther  <rguenther@suse.de>
34217
34218         PR middle-end/42898
34219         * gimplify.c (gimplify_init_constructor): For volatile LHS
34220         initialize a temporary.
34221
34222 2010-01-31  Matthias Klose  <doko@ubuntu.com>
34223
34224         * configure.ac: Fix __stack_chk_fail check for cross builds configured
34225         --with-headers
34226         * configure: Regenerate.
34227
34228 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
34229
34230         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34231         the same alias set and their sizes different constantness.
34232         (aliasing_component_refs_p): Revert 2009-10-24 change.
34233
34234 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34235
34236         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
34237         unused.
34238
34239 2010-01-29  Richard Guenther  <rguenther@suse.de>
34240
34241         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
34242         Assert we successfully updated the call.
34243
34244 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
34245
34246         PR rtl-optimization/42889
34247         * df.h (df_set_bb_dirty_nonlr): New prototype.
34248         * df-core.c (df_set_bb_dirty_nonlr): New function.
34249         * df-scan.c (df_insn_rescan): Call it instead of
34250         df_set_bb_dirty for DEBUG_INSNs.
34251
34252 2010-01-29  Richard Guenther  <rguenther@suse.de>
34253
34254         PR middle-end/37448
34255         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
34256         quadratic behavior in most cases.
34257
34258 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
34259
34260         PR target/42891
34261         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
34262         in the call to gen_x86_movsicc_0_m1.
34263
34264 2010-01-28  Richard Guenther  <rguenther@suse.de>
34265
34266         PR tree-optimization/42871
34267         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
34268
34269 2010-01-28  Richard Guenther  <rguenther@suse.de>
34270
34271         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
34272         into call arguments.
34273
34274 2010-01-28  Richard Guenther  <rguenther@suse.de>
34275
34276         PR middle-end/42883
34277         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
34278         the forwarder if the destination is an EH landing pad.
34279
34280 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
34281
34282         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
34283         block list passed to gimple_duplicate_sese_tail.
34284         (parallelize_loops): Avoid parallelization when the function
34285         has_nonlocal_label.
34286         Avoid parallelization when the preheader is IRREDUCIBLE.
34287         Try to optimize when estimated_loop_iterations_int is unresolved.
34288         Add the loop's location to the dump file.
34289         * tree-cfg.c (add_phi_args_after_redirect): Remove.
34290         (gimple_duplicate_sese_tail): Remove the check for the latch.
34291         Redirect nexits to the exit block.
34292         Remove handling of the incoming edges to the latch.
34293         Redirect the backedge from the copied latch to the exit bb.
34294
34295 2010-01-28  Michael Matz  <matz@suse.de>
34296
34297         PR target/42881
34298         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
34299         Wrap force_reg into a sequence, emit it before user.
34300
34301 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
34302
34303         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
34304         (arm_rev): New.
34305         (arm_legacy_rev): Likewise.
34306         (thumb_legacy_rev): Likewise.
34307
34308 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34309
34310         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
34311         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
34312         on MEM's address failed, try avoid_constant_pool_reference and
34313         recurse if it returned something different.
34314         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
34315         address, try avoid_constant_pool_reference and recurse if it
34316         returned something different.
34317         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
34318         address and avoid_constant_pool_reference returned something
34319         different, don't set have_address.
34320
34321 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
34322
34323         PR debug/42861
34324         * var-tracking.c (val_store): Add modified argument, obey it.
34325         Adjust callers.
34326         (count_uses): Move down logging of main.
34327         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
34328         don't need resolution.
34329         (emit_notes_in_bb): Likewise.
34330
34331 2010-01-27  Richard Guenther  <rguenther@suse.de>
34332
34333         PR middle-end/42878
34334         * tree-inline.c (remap_decl): Delay remapping of SSA name
34335         default definitions until we need them.
34336
34337 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34338
34339         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34340         (rs6000_delegitimize_address): New function.
34341
34342         * config/s390/s390.c (s390_delegitimize_address): Call
34343         delegitimize_mem_from_attrs.
34344
34345         PR middle-end/42874
34346         * tree-inline.c (cannot_copy_type_1): Removed.
34347         (copy_forbidden): Don't forbid copying of functions containing
34348         records/unions with variable length fields.
34349
34350 2010-01-27  Christian Bruel  <christian.bruel@st.com>
34351
34352         Revert:
34353         PR target/42841
34354         * config/sh/sh.c (find_barrier): Increase length for non delayed
34355         conditional branches.
34356
34357 2010-01-27  Matthias Klose  <doko@ubuntu.com>
34358
34359         * configure.ac (gnu-unique-object): Fix ldd version check.
34360         * configure: Regenerate.
34361
34362 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34363
34364         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
34365         HAVE_GNU_AS value.
34366         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
34367         Test for HAVE_GNU_AS value.
34368
34369 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34370
34371         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
34372         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
34373         INT64_TYPE): Define.
34374         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
34375         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
34376         INT_LEAST64_TYPE): Define.
34377         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
34378         UINT_LEAST64_TYPE): Define.
34379         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
34380         INT_FAST64_TYPE): Define.
34381         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
34382         UINT_FAST64_TYPE): Define.
34383         (INTMAX_TYPE, UINTMAX_TYPE): Define.
34384         (INTPTR_TYPE, UINTPTR_TYPE): Define.
34385         (SIG_ATOMIC_TYPE): Define.
34386
34387 2010-01-26  Richard Guenther  <rguenther@suse.de>
34388
34389         * df-scan.c (df_scan_set_bb_info): Remove assert.
34390         (df_insn_rescan_debug_internal): Merge asserts.
34391         (df_install_ref): Likewise.
34392         (df_mark_reg): Use bitmap_set_range.
34393         (df_hard_reg_used_p): Remove assert.
34394         (df_hard_reg_used_count): Likewise.
34395
34396 2010-01-26  Richard Guenther  <rguenther@suse.de>
34397
34398         PR rtl-optimization/42685
34399         * web.c (web_main): Ignore DEBUG_INSNs.
34400
34401 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
34402
34403         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
34404
34405         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
34406         Fix types of fndecl and arglist parameters.
34407
34408 2010-01-26  Richard Guenther  <rguenther@suse.de>
34409
34410         PR middle-end/42806
34411         * tree-eh.c (unsplit_eh): Skip debug insns.
34412
34413 2010-01-26  Richard Guenther  <rguenther@suse.de>
34414
34415         PR tree-optimization/42250
34416         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
34417
34418 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
34419
34420         PR fortran/42866
34421         * omp-low.c (expand_omp_sections): Only use single_pred if
34422         l2_bb is single_pred_p.
34423
34424 2010-01-25  Christian Bruel  <christian.bruel@st.com>
34425
34426         PR target/42841
34427         * config/sh/sh.c (find_barrier): Increase length for non delayed
34428         conditional branches.
34429         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
34430
34431 2010-01-24  David S. Miller  <davem@davemloft.net>
34432
34433         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
34434         define if not using GAS.
34435         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34436         Likewise.  Delete SECTION_MERGE code, which is only applicable
34437         when using GAS.
34438
34439 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
34440
34441         PR c++/42748
34442         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
34443         mangling of va_list in system headers.
34444
34445 2010-01-23  Toon Moene  <toon@moene.org>
34446
34447         * tree-predcom.c (combine_chains): Return NULL, not false.
34448
34449 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
34450
34451         * tree-loop-distribution.c (distribute_loop): Fix declaration and
34452         initialization of variable res to agree with return type.
34453
34454 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
34455
34456         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
34457         * tree-sra.c: Add include of expr.h.
34458
34459 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
34460
34461         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
34462         insert the debug stmt on the single non-EH edge from the stmt.
34463
34464 2010-01-22  Richard Henderson  <rth@redhat.com>
34465
34466         PR tree-opt/42833
34467         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
34468         the RHS until after generate_subtree_copies has insertted its
34469         code before the current statement.
34470
34471 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
34472
34473         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
34474
34475         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
34476
34477 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34478
34479         PR tree-optimization/42585
34480         * tree-sra.c (struct access): New field grp_total_scalarization.
34481         (dump_access): Dump the new field.
34482         (should_scalarize_away_bitmap): New variable.
34483         (cannot_scalarize_away_bitmap): Likewise.
34484         (sra_initialize): Allocate new bitmaps.
34485         (sra_deinitialize): Free new bitmaps.
34486         (create_access_1): New function.
34487         (create_access): Parts moved to create_access_1.
34488         (type_consists_of_records_p): New function.
34489         (completely_scalarize_record): Likewise.
34490         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
34491         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
34492         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
34493         access.
34494         (analyze_all_variable_accesses): Completely scalarize small eligible
34495         records.
34496
34497 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34498
34499         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
34500
34501 2010-01-21  Andrew Haley  <aph@redhat.com>
34502
34503         * gcc.c (process_command): Move lang_specific_driver before
34504         setting cc_libexec_prefix.
34505
34506 2010-01-21  Richard Guenther  <rguenther@suse.de>
34507
34508         PR middle-end/19988
34509         * fold-const.c (negate_expr_p): Pretend only negative
34510         real constants are easily negatable.
34511
34512 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
34513             Jason Merrill  <jason@redhat.com>
34514
34515         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
34516         (TYPE_TRANSPARENT_AGGR): this, for union and record.
34517         * calls.c (initialize argument_information): Handle it.
34518         * c-common.c (handle_transparent_union_attribute): Use new name.
34519         * c-decl.c (finish_struct): Ditto.
34520         * c-typeck.c (type_lists_compatible_p): Ditto.
34521         (convert_for_assignment): Use new name and also handle record.
34522         * function.c (aggregate_value_p): Handle it.
34523         (pass_by_reference): Ditto.
34524         (assign_parm_data_types): Ditto.
34525         * print-tree.c (print_node): Ditto.
34526         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
34527         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
34528         * tree.c (first_field): New fn.
34529
34530 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
34531
34532         PR target/42818
34533         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
34534         even when linking statically, for now.
34535
34536 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34537
34538         PR debug/42715
34539         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
34540         without a cselib val.
34541         (count_uses): Accept MO_VAL_SET with no val on stores.
34542         (add_stores): Likewise.
34543
34544 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34545
34546         * var-tracking.c (check_value_val): Add a compile time assertion.
34547         (dv_is_decl_p): Simplify.
34548         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
34549         gcc_assert if ENABLE_CHECKING.
34550
34551 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34552
34553         PR debug/42782
34554         * var-tracking.c: Include tree-flow.h.
34555         (mem_dies_at_call): New.
34556         (dataflow_set_preserve_mem_locs): Use it.
34557         (dataflow_set_remove_mem_locs): Likewise.
34558         (dump_var): Renamed from dump_variable.  Adjust all callers.
34559         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
34560         * Makefile.in (var-tracking.o): Adjust deps.
34561
34562 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
34563
34564         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
34565
34566 2010-01-20  Richard Guenther  <rguenther@suse.de>
34567
34568         PR tree-optimization/42717
34569         * tree-ssa-dce.c (get_live_post_dom): Remove.
34570         (forward_edge_to_pdom): Take an arbitrary edge to copy
34571         degenerate PHI args from.
34572         (remove_dead_stmt): Use the first post-dominator even if it
34573         does not contain live statements as redirection destination.
34574
34575 2010-01-20  Richard Guenther  <rguenther@suse.de>
34576
34577         * tree-inline.c (estimate_num_insns): Handle EH builtins.
34578
34579 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34580
34581         * sel-sched.c (create_speculation_check): Remove set but not used
34582         variable twin.
34583         (try_transformation_cache): Remove set but not used variable ds.
34584         (calculate_privileged_insns): Remove set but not used variables
34585         cur_insn and min_spec_insn.
34586         (find_best_expr): Remove set but not used variable avail_n.
34587         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
34588         variable e.
34589         * cgraphunit.c (assemble_thunk): Remove set but not used variable
34590         false_label.
34591         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
34592         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
34593         new_scop_exit_edge.
34594
34595 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
34596
34597         PR bootstrap/42786
34598         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
34599         cpu types.  Add support for *-sse3 cpu types.
34600         (x86_64-*-*): Ditto.
34601
34602 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34603
34604         PR middle-end/42803
34605         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
34606         argument, call initializer_constant_valid_p_1 instead of
34607         initializer_constant_valid_p, pass CACHE to it, return NULL
34608         immediately if first call returns NULL.
34609         (initializer_constant_valid_p_1): New function.
34610         (initializer_constant_valid_p): Use it.
34611
34612 2010-01-20  Thomas Quinot  <quinot@adacore.com>
34613
34614         * tree.def (PLACEHOLDER_EXPR): Fix comment.
34615
34616 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34617
34618         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
34619         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
34620         (loc_list_from_tree): Don't handle unsigned division.  Handle
34621         signed modulo using DW_OP_{over,over,div,mul,minus}.
34622         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
34623         modulo instead of signed.
34624
34625 2010-01-20  DJ Delorie  <dj@redhat.com>
34626
34627         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
34628         (Fpa): Pass it
34629         (h8300_emit_stack_adjustment): Propogate it.
34630         (push): Pass it.
34631         (h8300_expand_prologue): Likewise.
34632         (h8300_expand_epilogue): Likewise.
34633
34634 2010-01-19  Michael Matz  <matz@suse.de>
34635
34636         PR tree-optimization/41783
34637         * tree-data-ref.c (toplevel): Include flags.h.
34638         (dump_data_dependence_relation):  Also dump the inputs if the
34639         result will be unknown.
34640         (split_constant_offset_1): Look through some conversions.
34641         * tree-predcom.c (determine_roots_comp): Restart a new chain if
34642         the offset from last element is too large.
34643         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
34644         (reassociate_to_the_same_stmt): Handle vector registers.
34645         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
34646         (e.g. conversions).
34647         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
34648         wide_prolog_niters argument, emit widening instructions.
34649         (vect_do_peeling_for_alignment): Adjust caller, use widened
34650         variant of the iteration cound.
34651         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
34652
34653 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34654
34655         PR target/38697
34656         * config/arm/neon-testgen.m (emit_automatics): New parameter
34657         features. Adjust for Fixed_return_reg feature.
34658         (test_intrinsic): Call emit_automatics with new feature.
34659         * config/arm/neon.ml: Update copyright years.
34660         (features): New Fixed_return_reg feature.
34661         (ops): Update feature for Vget_low.
34662
34663 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
34664
34665         PR tree-optimization/42719
34666         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
34667         stmt uses.
34668
34669         PR debug/42728
34670         * fwprop.c (all_uses_available_at): Return false if def_set dest
34671         is a REG that is used in def_insn.
34672
34673 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
34674
34675         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
34676
34677         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
34678         Add argument names.
34679
34680         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
34681
34682         * target.h (struct gcc_target) <secondary_reload>: Change type
34683         of last argument to secondary_reload_info *.
34684
34685 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
34686
34687         PR target/42774
34688         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
34689         memory references with unaligned offsets.  Remove CQImode handling.
34690         (unaligned_memory_operand): Return 1 for memory references with
34691         unaligned offsets.  Remove CQImode handling.
34692
34693 2010-01-18  Richard Guenther  <rguenther@suse.de>
34694
34695         PR middle-end/39954
34696         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
34697         builtin calls.
34698
34699 2010-01-18  Richard Guenther  <rguenther@suse.de>
34700
34701         PR tree-optimization/42781
34702         * tree-ssa-structalias.c (find_what_var_points_to): Skip
34703         restrict processing only if the original variable was artificial.
34704
34705 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
34706
34707         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
34708         find number of popped argument bytes.
34709
34710         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
34711         Fix the text that describes the return value for invalid insns.
34712
34713         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
34714
34715         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
34716         Clarify what 'cost of the -dependence' is.  Fix quoting.
34717
34718         * toplev.c (default_get_pch_validity): Rename argument to "sz".
34719         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
34720
34721 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
34722
34723         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34724         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
34725
34726 2010-01-17  Richard Guenther  <rguenther@suse.de>
34727
34728         PR middle-end/42248
34729         * function.c (split_complex_args): Take a VEC to modify.
34730         (assign_parms_augmented_arg_list): Build a VEC instead of
34731         a chain of PARM_DECLs.
34732         (assign_parms_unsplit_complex): Take a VEC of arguments.
34733         Do not fixup unmodified parms.
34734         (assign_parms): Deal with the VEC.
34735         (gimplify_parameters): Likewise.
34736
34737 2010-01-17  Richard Guenther  <rguenther@suse.de>
34738
34739         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
34740         node existence check.
34741         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
34742         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
34743         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
34744         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
34745         (gimple_execute_on_growing_pred): Likewise.
34746
34747 2010-01-17  Richard Guenther  <rguenther@suse.de>
34748
34749         PR tree-optimization/42773
34750         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
34751         (compute_antic_aux): Likewise.
34752         (compute_partial_antic_aux): Likewise.
34753
34754 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
34755
34756         PR debug/42767
34757         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
34758         and US_TRUNCATE.
34759
34760 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
34761
34762         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
34763         appearance.
34764
34765         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
34766         Fix markup for strict argument.
34767
34768         (TARGET_SCHED_REORDER2): Fix argument types.
34769
34770         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
34771         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
34772
34773         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
34774         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
34775
34776         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
34777         Add argument name.
34778
34779         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
34780         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
34781         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
34782         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
34783         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
34784
34785         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
34786
34787         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
34788
34789         (TARGET_ASM_RELOC_RW_MASK): Add return type.
34790         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
34791
34792         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
34793
34794         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
34795         Use prototype.
34796
34797         (TARGET_ASM_NAMED_SECTION): Fix argument list.
34798
34799         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
34800         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
34801
34802         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
34803
34804         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
34805
34806         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
34807         referring to it.  Fix language.
34808
34809         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
34810
34811         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
34812
34813         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
34814
34815         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
34816
34817         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
34818         '@var{stream}.  Remove stray 'and'.
34819
34820         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
34821
34822         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
34823
34824         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
34825
34826         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
34827         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
34828
34829         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
34830         Fix description of return value.
34831         Rename argument "sz" to "len."
34832
34833         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
34834         Clarify meaning of 'true' return value.
34835
34836         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
34837
34838         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
34839         rep_mode versus mode_rep.
34840
34841         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
34842
34843         (TARGET_BUILTIN_DECL): Fix name.
34844
34845         (TARGET_COMMUTATIVE_P): Fix type of first argument.
34846
34847         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
34848
34849         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
34850
34851         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
34852
34853         (TARGET_RELAXED_ORDERING): Use @deftypevr.
34854
34855         (TARGET_GET_DRAP_RTX): Note that this is a hook.
34856         Clarify language.
34857
34858         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
34859         Rename argument tm_fn to md_fn.
34860
34861         (TARGET_OPTION_PRINT): Fix argument list.
34862
34863 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
34864
34865         PR target/42664
34866         * config/i386/i386.c (ix86_fixup_binary_operands):
34867         Revert FMA4 fixup of operands.
34868
34869 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
34870
34871         PR other/42525
34872         * Makefile.in (write_entries_to_file, install-plugin):
34873         Use \012 instead of \n with tr.
34874
34875 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
34876
34877         * configure.ac (HAVE_AS_REF): New C macro.
34878         * configure: Regenerate.
34879         * config.in: Likewise.
34880         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
34881         if HAVE_AS_REF.
34882         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
34883         if HAVE_AS_REF.
34884
34885 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
34886
34887         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
34888
34889         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
34890
34891         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
34892
34893         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
34894
34895         (TARGET_IN_SMALL_DATA_P): Fix argument type.
34896
34897         (TARGET_BINDS_LOCAL_P): Fix argument type.
34898
34899         (TARGET_ASM_FILE_END): Use prototype.
34900
34901         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
34902
34903         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
34904
34905         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
34906
34907         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
34908
34909         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
34910         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
34911
34912         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
34913         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
34914
34915         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
34916         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
34917         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
34918         (TARGET_ADDR_SPACE_CONVERT): Likewise.
34919
34920         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
34921
34922         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
34923
34924         (TARGET_INIT_BUILTINS): Use prototype.
34925
34926         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
34927         Put 'const char *' in braces.  Fix parameter types.
34928         (TARGET_INVALID_CONVERSION): Fix parameter types.
34929         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
34930         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
34931
34932         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
34933         Fix argument type.
34934
34935         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
34936
34937         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
34938
34939 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
34940
34941         * doc/tm.texi (TARGET_HELP): Fix return type.
34942
34943         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
34944         in braces.  Fix argument types.
34945
34946         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
34947
34948         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
34949
34950         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
34951
34952         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
34953         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
34954
34955         (TARGET_MANGLE_TYPE): Fix argument types.
34956
34957         (TARGET_IRA_COVER_CLASSES): Use prototype.
34958
34959         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
34960
34961         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
34962
34963         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
34964
34965         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
34966
34967         (TARGET_CALLEE_COPIES): Fix argument types.
34968
34969         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
34970
34971         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
34972
34973         (TARGET_FUNCTION_VALUE): Fix argument types.
34974
34975         (TARGET_RETURN_IN_MSB): Fix argument type.
34976
34977         (TARGET_RETURN_IN_MEMORY): Fix argument types.
34978
34979         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
34980
34981         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
34982
34983         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
34984         agree with return type.
34985
34986         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
34987
34988 2010-01-15  Jing Yu  <jingyu@google.com>
34989
34990         PR rtl-optimization/42691
34991         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
34992         a pseudo to a constant and are merged, and adjust comments.
34993
34994 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
34995
34996         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
34997
34998 2010-01-15  Richard Guenther  <rguenther@suse.de>
34999
35000         PR middle-end/42739
35001         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
35002         labels of computed or non-local gotos to the destination.
35003         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
35004         landing pad label is the first label.
35005
35006 2010-01-15  Richard Guenther  <rguenther@suse.de>
35007
35008         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
35009
35010 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35011
35012         PR target/42747
35013         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
35014         to allow generation of the xssqrtdp instruction on power7.
35015         (sqrtdf2_fpr): Ditto.
35016
35017 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35018
35019         PR middle-end/42674
35020         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
35021         functions with noreturn attribute.
35022
35023         PR c++/42608
35024         * varasm.c (declare_weak): Add weak attribute to decl if it
35025         doesn't have one already.
35026         (assemble_external): Only add decls to weak_decls if they also
35027         have weak attribute.
35028
35029 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
35030
35031         * var-tracking.c (var_reg_delete): Don't delete the association
35032         between REGs and values or one-part variables if the register
35033         isn't clobbered.
35034
35035 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35036
35037         PR debug/42657
35038         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
35039         because its first operand is a non-localized variable.
35040
35041 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35042
35043         PR tree-optimization/42706
35044         * tree-sra.c (encountered_recursive_call): New variable.
35045         (encountered_unchangable_recursive_call): Likewise.
35046         (sra_initialize): Initialize both new variables.
35047         (callsite_has_enough_arguments_p): New function.
35048         (scan_function): Call decl and flags check only for IPA-SRA, check
35049         whether there is a recursive call and whether it has enough arguments.
35050         (all_callers_have_enough_arguments_p): New function.
35051         (convert_callers): Look for recursive calls only when
35052         encountered_recursive_call is set.
35053         (ipa_early_sra): Bail out either if
35054         !all_callers_have_enough_arguments_p or
35055         encountered_unchangable_recursive_call.
35056
35057 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35058
35059         * sel-sched.c: Add 2010 to copyright years.
35060         * sel-sched-ir.c: Likewise.
35061         * sel-sched-ir.h: Likewise.
35062
35063 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35064
35065         PR tree-optimization/42714
35066         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
35067         constructors specially.
35068
35069 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35070
35071         * config/i386/drivers-i386.c (detect_caches_intel):
35072         Add l2sizekb parameter and fill in.
35073         (host_detect_local_cpu): Add l2sizekb, fill in.
35074         Add Atom small cache heuristic.
35075
35076 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35077
35078         * config/i386/drivers-i386.c (detect_caches_cpuid4):
35079         Add level3 parameter and fill in.
35080         (detect_caches_intel): Handle level3 cache.
35081
35082 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35083
35084         * config/i386/drivers-i386.c (host_detect_local_cpu):
35085         Fix core duo detection.
35086
35087 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35088
35089         * config/i386/drivers-i386.c (host_detect_local_cpu):
35090         Fix Atom detection.
35091
35092 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35093
35094         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
35095         (rs6000_variable_issue_1): this.  Use...
35096         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
35097
35098 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35099
35100         * sel-sched-ir.c (sel_restore_other_notes): Rename to
35101         sel_restore_notes.  Update all callers.  Call reemit_notes
35102         for all insns.
35103
35104 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35105
35106         PR rtl-optimization/42246
35107         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
35108         loops.
35109
35110 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35111
35112         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
35113         all successors is the same as number of successors in current region.
35114
35115 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35116
35117         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
35118         to rename is not separable.  Otherwise check that its LHS is not NULL.
35119
35120 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35121
35122         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
35123
35124 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35125
35126         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
35127         available registers when failed to discover LHS register class.
35128         Fix indentation.  Update comment.
35129
35130 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35131             Alexander Monakov  <amonakov@ispras.ru>
35132
35133         PR rtl-optimization/42389
35134         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
35135         to can_issue_more.
35136         (advance_state_on_fence): Likewise.
35137         (sel_target_adjust_priority): Print debug output only when
35138         sched_verbose >= 4, not 2.
35139         (get_expr_cost): Do not issue all unique insns on the next cycle.
35140         (fill_insns): Initialize can_issue_more from the value saved
35141         with the fence.
35142         * sel-sched-ir.c (flist_add): New parameter issue_more.
35143         Init FENCE_ISSUE_MORE with it.
35144         (merge_fences): Likewise.
35145         (init_fences): Update call to flist_add.
35146         (add_to_fences, add_clean_fence_to_fences)
35147         (add_dirty_fence_to_fences): Likewise.
35148         (move_fence_to_fences): Update call to merge_fences.
35149         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
35150         sched groups.
35151         * sel-sched-ir.h (struct _fence): New field issue_more.
35152         (FENCE_ISSUE_MORE): New accessor macro.
35153
35154 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35155
35156         PR rtl-optimization/42388
35157         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
35158         that have no predecessors nor successors.  Do not call move_bb_info
35159         for empty blocks outside of current region.
35160
35161 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35162
35163         PR rtl-optimization/42294
35164         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
35165         * sel-sched.c (move_exprs_to_boundary): Transitively add all
35166         originators' originators.
35167
35168 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35169
35170         PR rtl-optimization/39453
35171         PR rtl-optimization/42246
35172         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
35173         for pipelining_p.
35174         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
35175
35176 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35177             Alexander Monakov  <amonakov@ispras.ru>
35178
35179         PR middle-end/42245
35180         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
35181         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
35182         argument.  Update all callers.
35183         (tidy_control_flow): ... and here.  Recompute topological order
35184         of basic blocks in region if necessary.
35185         (sel_redirect_edge_and_branch): Change return type.  Return true
35186         if topological order might have been invalidated.
35187         (purge_empty_blocks): Export and move from...
35188         * sel-sched.c (purge_empty_blocks): ... here.
35189         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
35190         (maybe_tidy_empty_bb): Delete prototype.
35191         (purge_empty_blocks): Declare.
35192
35193 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35194
35195         PR rtl-optimization/42249
35196         * sel-sched.c (try_replace_dest_reg): When chosen register
35197         and original register is the same, do not bail out early, but
35198         still check all original insns for validity of replacing destination
35199         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
35200         in this case.
35201
35202 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35203
35204         PR c/42721
35205         Port from no-undefined-overflow branch:
35206         2009-03-09  Richard Guenther  <rguenther@suse.de>
35207
35208         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
35209
35210 2010-01-14  Richard Guenther  <rguenther@suse.de>
35211
35212         PR lto/42665
35213         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
35214
35215 2010-01-14  Ira Rosen  <irar@il.ibm.com>
35216
35217         PR tree-optimization/42709
35218         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
35219         as scalar type in creation of constant vector operand.
35220
35221 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35222
35223         PR testsuite/42414
35224         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
35225         (check-parallel-%): Match `testsuite' directory component only
35226         at the end.
35227
35228 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
35229
35230         PR translation/39521
35231         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
35232         strings with _().
35233
35234 2010-01-13  Richard Guenther  <rguenther@suse.de>
35235
35236         PR tree-optimization/42730
35237         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
35238         offset zero.
35239
35240 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
35241
35242         PR target/pr42542
35243         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
35244         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
35245         them signed.
35246
35247 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
35248
35249         * config/bfin/libgcc-bfin.ver: Regenerate based on current
35250         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
35251         ___umulsi3_highpart.
35252
35253         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
35254         rather than schedule_insns if the pass is enabled.
35255
35256 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35257
35258         PR tree-optimization/42704
35259         * tree-sra.c (sra_modify_assign): Do not delete assignments to
35260         SSA_NAMEs.
35261
35262 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35263
35264         PR tree-optimization/42703
35265         * tree-sra.c (analyze_access_subtree): Check that we can build a
35266         reference to the original data within the aggregate.
35267
35268 2010-01-13  Richard Guenther  <rguenther@suse.de>
35269
35270         PR tree-optimization/42705
35271         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
35272
35273 2010-01-13  Richard Guenther  <rguenther@suse.de>
35274
35275         PR middle-end/42716
35276         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
35277
35278 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35279
35280         PR debug/41371
35281         * var-tracking.c (values_to_unmark): New variable.
35282         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35283         values_to_unmark vector.  Moved body to...
35284         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35285         instead queue it into values_to_unmark vector.
35286         (vt_find_locations): Free values_to_unmark vector.
35287
35288 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
35289
35290         * config/s390/s390.c (override_options): Set
35291         default of max-pending-list-length to 256
35292
35293 2010-01-13  Richard Guenther  <rguenther@suse.de>
35294
35295         PR lto/42678
35296         * tree-pass.h (PROP_gimple_lcx): New.
35297         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
35298         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
35299         before the final cleanup_eh.
35300         (dump_properties): Dump PROP_gimple_lcx.
35301         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
35302         (tree_lower_complex_O0): Remove.
35303         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
35304         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
35305         tree_lower_complex, schedule TODO_update_ssa.
35306         * lto-streamer-out.c (output_function): Stream the functions
35307         properties.
35308         * lto-streamer-in.c (input_function): Likewise.
35309         (lto_read_body): Do not override them here.
35310
35311 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
35312
35313         PR c/42708
35314         * c-typeck.c (build_c_cast): Fold value cast to union type before
35315         wrapping it in a CONSTRUCTOR.
35316
35317 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35318
35319         PR rtl-optimization/42699
35320         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
35321         involved.
35322
35323 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35324
35325         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35326         SUBTARGET_WARN_UNUSED_SPEC): Move ...
35327         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35328         SUBTARGET_WARN_UNUSED_SPEC): ... here
35329         * config/mips/iris5.h (LIBGCC_SPEC): Define.
35330
35331 2010-01-12  Julian Brown  <julian@codesourcery.com>
35332
35333         * config/arm/neon-schedgen.ml (Utils): Don't try to
35334         open missing module.
35335         (find_with_result): New.
35336
35337 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35338
35339         PR debug/42662
35340         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
35341         sharing when canonicalizing ({lt,ge}u (plus a b) b).
35342
35343         PR tree-optimization/42645
35344         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
35345         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
35346         decl_map, set processing_debug_stmt to -1 and return name without
35347         any remapping.
35348
35349 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
35350
35351         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
35352         binutils version, and reword target configuration description.
35353
35354 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35355
35356         * config/avr/avr.h (LINKER_NAME): Remove.
35357
35358 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
35359
35360         PR target/42416
35361         * config/rs6000/rs6000.c (rs6000_override_options): On targets
35362         that support VSX, warn for -mno-altivec if vsx is not disabled,
35363         and disable vsx.
35364
35365 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
35366             Shujing Zhao  <pearly.zhao@oracle.com>
35367
35368         PR translation/42469
35369         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
35370         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
35371         character between option name and help text.
35372         * c.opt (imultilib): Likewise.
35373
35374 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
35375
35376         * lto-streamer-out.c (output_unreferenced_globals): Output static
35377         variables.
35378
35379 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
35380
35381         PR rtl-optimization/42621
35382         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
35383         optimizing for size.
35384         (duplicate_computed_gotos): Remove now-redundant check.
35385
35386 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
35387
35388         PR target/37454
35389         * configure.ac: Save and restore LDFLAGS and LIBS
35390         * configure: Regenerate.
35391
35392 2010-01-10  Richard Guenther  <rguenther@suse.de>
35393
35394         PR middle-end/42667
35395         * builtins.c (fold_builtin_strlen): Add type argument and
35396         convert the resulting length to it.
35397         (fold_builtin_1): Adjust.
35398
35399 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35400
35401         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
35402         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
35403         1 insn.
35404         (num_insns_constant_wide): Adjust for that change.
35405
35406 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35407
35408         PR debug/42631
35409         * web.c (union_defs): Add used argument, to combine uses of
35410         uninitialized regs.
35411         (entry_register): Adjust type and tests of used argument.
35412         (web_main): Widen used for new use.  Pass it to union_defs.
35413         * df.h (union_defs): Adjust prototype.
35414
35415 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35416
35417         PR debug/42630
35418         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
35419         uses in new incoming argument.  Free body.
35420         (reset_debug_uses_in_loop): New.
35421         (analyze_insn_to_expand_var): Call the latter if the former found
35422         anything.  Fix whitespace.  Reject invalid dest overlaps before
35423         going through all insns in the loop.
35424
35425 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35426
35427         PR debug/42629
35428         * haifa-sched.c (dying_use_p): Debug insns don't count.
35429
35430 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35431
35432         PR middle-end/42363
35433         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
35434         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
35435         (verify_gimple_call): Reject LHS in noreturn calls.
35436
35437 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35438
35439         PR debug/42604
35440         PR debug/42395
35441         * tree-vect-loop-manip.c (adjust_info): New type.
35442         (adjust_vec): New pointer to vector.
35443         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
35444         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
35445         (slpeel_update_phis_for_duplicate_loop): Use them.
35446         (slpeel_update_phi_nodes_for_guard1): Likewise.
35447         (slpeel_update_phi_nodes_for_guard2): Likewise.
35448         (slpeel_tree_peel_loop_to_edge): Likewise.
35449         (vect_update_ivs_after_vectorizer): Likewise.
35450
35451 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35452
35453         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
35454         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
35455
35456 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35457
35458         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
35459         bogus uninitialized warning.
35460
35461 2010-01-09  Richard Guenther  <rguenther@suse.de>
35462
35463         PR middle-end/42512
35464         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
35465         the evolution is compatible with the initial condition.
35466
35467 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35468
35469         * gcc.c (process_command): Update copyright notice dates.
35470         * gcov.c (print_version): Likewise.
35471         * gcov-dump.c (print_version): Likewise.
35472         * mips-tfile.c (main): Likewise.
35473         * mips-tdump.c (main): Likewise.
35474
35475 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35476
35477         PR target/41885
35478         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
35479         (rotlhi3): Delete.
35480         (rotlhi3_8): Delete.
35481         (rotlsi3): Delete.
35482         (rotlsi3_8): Delete.
35483         (rotlsi3_16): Delete.
35484         (rotlsi3_24): Delete.
35485         (rotl<mode>3): New.
35486         (*rotw<mode>3): New.
35487         (*rotb<mode>3): New.
35488         * config/avr/avr.c (avr_rotate_bytes): New function.
35489         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
35490
35491 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
35492
35493         PR target/37454
35494         * configure.ac: Modify -rdynamic check.
35495         * configure: Regenerate.
35496
35497 2010-01-08  DJ Delorie  <dj@redhat.com>
35498
35499         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
35500         register popping order.
35501
35502 2010-01-08  Richard Guenther  <rguenther@suse.de>
35503
35504         PR lto/42528
35505         * c.opt (fsigned-char): Also let LTO handle this option.
35506         (funsigned-char): Likewise.
35507
35508 2010-01-07  Richard Guenther  <rguenther@suse.de>
35509
35510         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
35511         (gimple_op): Likewise.
35512         (gimple_op_ptr): Likewise.
35513         (gimple_assign_set_lhs): Remove gcc_assert.
35514         (gimple_assign_set_rhs1): Likewise.
35515         (gimple_assign_set_rhs2): Likewise.
35516         (gimple_call_set_lhs): Likewise.
35517         (gimple_call_set_fn): Likewise.
35518         (gimple_call_set_fndecl): Likewise.
35519         (gimple_call_fndecl): Likewise.
35520         (gimple_call_return_type): Likewise.
35521         (gimple_call_set_chain): Likewise.
35522         (gimple_call_num_args): Likewise.
35523         (gimple_call_set_arg): Likewise.
35524         (gimple_cond_set_code): Likewise.
35525         (gimple_cond_set_lhs): Likewise.
35526         (gimple_cond_set_rhs): Likewise.
35527         (gimple_cond_set_true_label): Likewise.
35528         (gimple_cond_set_false_label): Likewise.
35529         (gimple_label_set_label): Likewise.
35530         (gimple_goto_set_dest): Likewise.
35531         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
35532         (gimple_debug_bind_get_value): Likewise.
35533         (gimple_debug_bind_get_value_ptr): Likewise.
35534         (gimple_debug_bind_set_var): Likewise.
35535         (gimple_debug_bind_set_value): Likewise.
35536         (gimple_debug_bind_reset_value): Likewise.
35537         (gimple_debug_bind_has_value_p): Likewise.
35538         (gimple_return_retval_ptr): Remove gcc_assert.
35539         (gimple_return_retval): Likewise.
35540         (gimple_return_set_retval): Likewise.
35541         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
35542         (safe_referenced_var_iterator): Remove.
35543         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
35544         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
35545         (fill_referenced_var_vec): Remove.
35546         (first_readonly_imm_use): Remove redundant gcc_assert.
35547         (phi_arg_index_from_use): Combine gcc_asserts.
35548         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
35549         (first_imm_use_stmt): Remove redundant gcc_assert.
35550         * tree-cfg.c (verify_gimple_call): Verify function and chain
35551         operands.  Verify arguments.
35552         (verify_types_in_gimple_stmt): Verify condition code and labels.
35553
35554 2010-01-07  Richard Guenther  <rguenther@suse.de>
35555
35556         PR tree-optimization/42641
35557         * sese.c (rename_map_elt_info): Use the SSA name version, do
35558         not hash pointers.
35559
35560 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
35561
35562         PR tree-optimization/42625
35563         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
35564         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
35565
35566 2010-01-07  Duncan Sands  <baldrick@free.fr>
35567
35568         * Makefile.in (PLUGIN_HEADERS): Add version.h.
35569
35570 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
35571
35572         PR target/42511
35573         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
35574         note itself is not function_invariant_p.
35575
35576 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
35577
35578         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
35579         Do not add the DF_NOTE problem.
35580         * store-motion.c (execute_rtl_store_motion): Likewise.
35581
35582 2010-01-07  Martin Jambor  <mjambor@suse.cz>
35583
35584         PR tree-optimization/42157
35585         * tree-sra.c (compare_access_positions): Stabilize sort if both
35586         accesses have integer types, return zero immediately if they are the
35587         same.
35588
35589 2010-01-06  Richard Henderson  <rth@redhat.com>
35590
35591         PR middle-end/41883
35592         * haifa-sched.c (add_to_note_list): Merge into ...
35593         (concat_note_lists): ... here, and ...
35594         (unlink_other_notes, rm_other_notes): Merge into...
35595         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
35596         NOTE_INSN_EPILOGUE_BEG.
35597
35598 2010-01-06  Richard Guenther  <rguenther@suse.de>
35599
35600         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
35601         not inline regular functions into always-inline functions.
35602
35603 2010-01-06  Nick Clifton  <nickc@redhat.com>
35604
35605         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
35606         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
35607         used together.
35608         (OVERRIDE_OPTIONS): Delete.
35609         (OPTIMIZATION_OPTIONS): Define.
35610         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
35611         * config/rx/rx.c (rx_handle_option): Issue an error message if
35612         -mcpu=rx200 and -fpu are used together.
35613         (rx_set_optimization_options): New function.  Issue an error
35614         message if an optimization attribute attempts to reset the FPU/
35615         math optimization pairing.
35616         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
35617         * config/rx/rx.opt: Set the default to 32-bit doubles.
35618         * config/rx/t-rx: Add multilibs for -nofpu option.
35619         * doc/invoke.texi: Update documentation of RX options.
35620
35621 2010-01-06  Richard Guenther  <rguenther@suse.de>
35622
35623         * tree-ssa-pre.c (name_to_id): New global.
35624         (alloc_expression_id): Simplify SSA name handling.
35625         (lookup_expression_id): Likewise.
35626         (init_pre): Zero name_to_id.
35627         (fini_pre): Free it.
35628
35629 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
35630
35631         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
35632
35633 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
35634
35635         PR target/42542
35636         * config/i386/sse.md (smaxv2di3): New.
35637         (umaxv2di3): Likewise.
35638         (sminv2di3): Likewise.
35639         (uminv2di3): Likewise.
35640
35641 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
35642
35643         PR target/42564
35644         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
35645         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
35646         (legitimize_tls_address): Likewise.
35647         (sparc_tls_referenced_p): Likewise.
35648         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
35649         and adjust calls to legitimize_pic_address.
35650         (legitimate_constant_p) Use sparc_tls_referenced_p.
35651         (legitimate_pic_operand_p): Likewise.
35652         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
35653         (sparc_tls_symbol_ref_1): Delete.
35654         (sparc_tls_referenced_p): Make static, recognize specific patterns.
35655         (legitimize_tls_address): Make static, handle CONST patterns.
35656         (legitimize_pic_address): Make static, remove unused parameter and
35657         adjust recursive calls.
35658         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
35659         and adjust call to legitimize_pic_address.
35660         (sparc_output_mi_thunk): Likewise.
35661
35662 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
35663             H.J. Lu  <hongjiu.lu@intel.com>
35664
35665         PR target/42542
35666         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
35667         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
35668         operands to make them signed.
35669
35670         Revert:
35671         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35672
35673         PR target/42542
35674         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
35675         GTU to GT for V4SI and V2DI.
35676
35677         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
35678         (umin<mode>3): Removed.
35679         (uminv8hi3): New.
35680         (uminv4si3): Likewise.
35681
35682 2010-01-05  Martin Jambor  <mjambor@suse.cz>
35683
35684         PR tree-optimization/42462
35685         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
35686         current_function_decl to helper functions and macros.
35687
35688 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35689
35690         PR bootstrap/41771
35691         * flags.h: Don't include real.h.
35692         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
35693         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
35694         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
35695         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
35696         * dominance.c: Update copyright.
35697         * gimple.c (walk_gimple_op): Remove inline.
35698         * tree-ssa-reassoc.c: Include real.h.
35699         * Makefile.in (FLAGS_H): Remove $(REAL_H).
35700         (tree-ssa-reassoc.o): Depend on $(REAL_H).
35701
35702 2010-01-05  Nick Clifton  <nickc@redhat.com>
35703
35704         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
35705         register to push into the stack frame when the accumulator has to
35706         be saved during interrupts.
35707
35708 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
35709
35710         * doc/invoke.texi: Remove the documentation about option
35711         -Wunreachable-code.
35712         * common.opt (Wunreachable-code):  Preserved for backward
35713         compatibility.
35714         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
35715         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
35716         the backward compatibility flag section.
35717
35718 2010-01-05  Richard Guenther  <rguenther@suse.de>
35719
35720         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
35721
35722 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
35723
35724         PR other/42611
35725         * cfgexpand.c (expand_one_var): Diagnose too large variables.
35726
35727         PR tree-optimization/42508
35728         * tree-sra.c (convert_callers): Check for recursive call
35729         by comparing cgraph nodes instead of decls.
35730         (modify_function): Call ipa_modify_formal_parameters also
35731         on all same_body aliases.
35732
35733         * cgraphunit.c (cgraph_materialize_all_clones): Compare
35734         cgraph nodes when checking for same_body aliases.
35735
35736 2010-01-05  Richard Guenther  <rguenther@suse.de>
35737
35738         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
35739         allocation and lookup.
35740         (get_or_alloc_expr_for_constant): Likewise.
35741         (phi_translate): Sink allocation.
35742
35743 2010-01-04  Richard Guenther  <rguenther@suse.de>
35744
35745         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
35746         a new entry only if needed.
35747         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
35748         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
35749         hashtable lookup.
35750         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
35751         the result array.
35752         (phi_translate): Handle CONSTANTs early.
35753
35754 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35755
35756         PR tree-optimization/42398
35757         * tree-sra.c (struct access): Removed flag grp_different_types.
35758         (dump_access): Do not dump the removed flag.
35759         (sort_and_splice_var_accesses): Do not set the removed flag.
35760         (sra_modify_expr): Check for type compatibility directly.
35761
35762 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35763
35764         PR tree-optimization/42366
35765         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
35766         edges with variable number of parameters.
35767         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
35768         flag instead of asserting it.
35769         (ipa_read_node_info): Read uses_analysis_done flag.
35770
35771 2010-01-04  Richard Guenther  <rguenther@suse.de>
35772
35773         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
35774         iterative_hash_* as intended.
35775         (vn_reference_compute_hash): Likewise.  Simplify hashing
35776         SSA names.
35777         (vn_reference_lookup_2): Likewise.
35778         (vn_nary_op_compute_hash): Likewise.
35779         (vn_phi_compute_hash): Likewise.
35780         (expressions_equal_p): Remove strange code.
35781         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
35782         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
35783         (bitmap_insert_into_set_1): Take value-id as parameter.
35784         (add_to_value): Pass it.
35785         (bitmap_insert_into_set): Likewise.
35786         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
35787
35788 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
35789
35790         PR driver/42442
35791         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
35792         (do_self_spec): For switches with SWITCH_IGNORE set set also
35793         SWITCH_IGNORE_PERMANENTLY.
35794         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
35795         of SWITCH_IGNORE.
35796
35797 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
35798
35799         * lto-streamer-out.c (output_unreferenced_globals): Output the full
35800         tree of an unreferenced global var.
35801
35802 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35803
35804         PR target/42542
35805         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
35806         GTU to GT for V4SI and V2DI.
35807
35808         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
35809         (umin<mode>3): Removed.
35810         (uminv8hi3): New.
35811         (uminv4si3): Likewise.
35812
35813 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35814
35815         PR lto/42581
35816         * collect2.c (main): Turn on trace in collect2 if -v is passed
35817         to gcc with LTO.
35818
35819 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
35820
35821         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
35822         description of expression operand.
35823
35824 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
35825
35826         * configure.ac: Add install-html to target_list for Make-hooks.
35827         * configure: Regenerate.
35828         * fortran/Make-lang.in (F95_HTMLFILES): New.
35829         (fortran.html): Use it.
35830         (fortran.install-html): New.
35831         * Makefile.in (install-html): Add lang.install-html.
35832         * java/Make-lang.in (JAVA_HTMLFILES): New.
35833         (java.html): Use it.
35834         (java.install-html): New.
35835         * objc/Make-lang.in (objc.install-html): New.
35836         * objcp/Make-lang.in (obj-c++.install-html): New.
35837         * cp/Make-lang.in (c++.install-html): New.
35838         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
35839         * lto/Make-lang.in (lto.install-html): New.
35840
35841 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
35842
35843         PR lto/42520
35844         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
35845
35846 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
35847
35848         PR rtl-optimization/41862
35849         * store-motion.c (store_killed_in_insn, compute_store_table,
35850         remove_reachable_equiv_notes, replace_store_insn,
35851         build_store_vectors): Ignore all DEBUG_INSNs.
35852
35853 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
35854
35855         PR lto/41564
35856         * common.opt: Add dumpdir.
35857
35858         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
35859         isn't specified.
35860         (option_map): Add --dumpdir.
35861
35862         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
35863
35864         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
35865
35866         * opts.c (decode_options): Try dump_dir_name first if
35867         dump_base_name isn't an absolute path.
35868         (common_handle_option): Handle OPT_dumpdir.
35869
35870         * toplev.c (dump_dir_name): New.
35871         (print_switch_values): Also ignore -dumpdir.
35872
35873         * toplev.h (dump_dir_name): New.
35874
35875 2010-01-03  Richard Guenther  <rguenther@suse.de>
35876
35877         PR tree-optimization/42589
35878         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
35879         double-word expansion of bswap32.
35880
35881 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
35882
35883         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
35884         with BLOCK_FOR_INSN.
35885         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
35886         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
35887         noce_process_if_block): Likewise.
35888         * gcse.c (compute_local_properties, insert_expr_in_table,
35889         insert_set_in_table, canon_list_insert, find_avail_set,
35890         pre_insert_copy_insn): Likewise.
35891
35892         * basic-block.h (BLOCK_NUM): Move from here...
35893         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
35894
35895 2010-01-03  Richard Guenther  <rguenther@suse.de>
35896
35897         PR tree-optimization/42438
35898         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
35899         contains_may_not_return_call flag.
35900         (BB_MAY_NOTRETURN): New.
35901         (valid_in_sets): Trapping nary operations are not valid
35902         in blocks that may not return.
35903         (insert_into_preds_of_block): Remove check for trapping expressions.
35904         (compute_avail): Compute also BB_MAY_NOTRETURN.
35905
35906 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
35907
35908         * doc/invoke.texi: Add 2010 to copyright years.
35909
35910 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
35911
35912         * config/sparc/sparc.c: Fix formatting nits.
35913
35914 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
35915             Alexander Monakov  <amonakov@ispras.ru>
35916
35917         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
35918
35919 2010-01-02  Richard Guenther  <rguenther@suse.de>
35920
35921         PR middle-end/42577
35922         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
35923         (simplify_switch_using_ranges): Mark to be removed edges
35924         as non-executable.
35925
35926 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35927
35928         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
35929
35930         * collect2.c (scan_libraries): Add missing argument in call to
35931         scan_prog_file.
35932
35933 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
35934
35935         PR target/42448
35936         * config/alpha/predicates.md (aligned_memory_operand): Return false
35937         for CQImode.
35938         (unaligned_memory_operand): Return true for CQImode.
35939         * config/alpha/alpha.c (get_aligned_mem): Assert that location
35940         doesn not cross aligned SImode word boundary.
35941
35942 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
35943
35944         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
35945         Remove.
35946         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
35947         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
35948
35949 2010-01-02  Richard Guenther  <rguenther@suse.de>
35950
35951         PR lto/41597
35952         * toplev.c (compile_file): Emit LTO marker properly.  Change
35953         it to __gnu_lto_v1.
35954         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
35955
35956 2010-01-01  Richard Guenther  <rguenther@suse.de>
35957
35958         PR debug/42455
35959         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
35960
35961 2010-01-01  Richard Guenther  <rguenther@suse.de>
35962
35963         PR c/42570
35964         * c-decl.c (grokdeclarator): For zero-size arrays force
35965         structural equality checks as layout_type does.
35966
35967 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
35968
35969         * builtins.c: Update copyright to 2010.
35970
35971 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
35972
35973         PR lto/42531
35974         * lto-streamer-out.c (produce_asm): Revert the last change.
35975         (copy_function): Likewise.
35976
35977         * lto-streamer.c (lto_get_section_name): Skip any leading
35978         asterisk in name.
35979
35980 2010-01-01  Richard Guenther  <rguenther@suse.de>
35981
35982         PR middle-end/42559
35983         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
35984         for LABEL_DECLs.
35985
35986 \f
35987 Copyright (C) 2010 Free Software Foundation, Inc.
35988
35989 Copying and distribution of this file, with or without modification,
35990 are permitted in any medium without royalty provided the copyright
35991 notice and this notice are preserved.