OSDN Git Service

* opts.c (target_handle_option): Do not assert that loc ==
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
2
3         * opts.c (target_handle_option): Do not assert that loc ==
4         UNKNOWN_LOCATION.
5
6 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
7             Richard Guenther  <rguenther@suse.de>
8
9         PR middle-end/45838
10         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
11         call_may_clobber_ref_p_1): Return true for __sync_* and some
12         OpenMP builtins that act as threading barriers.
13
14 2010-11-17  Richard Guenther  <rguenther@suse.de>
15
16         PR tree-optimization/46498
17         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
18
19 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
20
21         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
22         (xtensa_function_arg_boundary): ...this.
23         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
24         thinko in declaration.
25         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
26         number of parameters to picochip_function_arg_boundary.
27         (picochip_arg_advance): Likewise.
28
29 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
30
31         PR target/46512
32         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
33         under check for type.
34
35 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * ifcvt.c (dead_or_predicable): Fix typo.
38
39 2010-11-16  Richard Henderson  <rth@redhat.com>
40
41         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
42         * config/s390/s390.opt (mfused-madd): Remove.
43         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
44         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
45         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
46         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
47
48 2010-11-16  Richard Henderson  <rth@redhat.com>
49
50         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
51         * config/rs6000/rs6000.opt (mfused-madd): Remove.
52         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
53         (*altivec_vmaddfp_1): Remove.
54         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
55         (altivec_mulv4sf3): Expand to FMA directly.
56         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
57         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
58         * config/rs6000/paired.md (paired_madds0): Use FMA.
59         (paired_madds1): Likewise.
60         (*paired_madd): Rename from paired_madd; use FMA.
61         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
62         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
63         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
64         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
65         (rs6000_emit_madd): Use fma_optab.
66         (rs6000_emit_msub): Use fms_optab.
67         (rs6000_emit_nmsub): Expand the FMA pattern directly.
68         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
69         (*fmasf4_fpr): Rename from fmasf4_fpr.
70         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
71         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
72         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
73         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
74         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
75         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
76         (*fmadf4_fpr): Rename from fmadf4_fpr.
77         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
78         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
79         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
80         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
81         (fmasf4, fmadf4): Macroize into...
82         (fma<FMA_F>4): ... here.
83         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
84         (nfma<FMA_F>4, nfms<FMA_F>4): New.
85         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
86         TARGET_FUSED_MADD.
87         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
88         (*vsx_fmadd<mode>4_1): Remove.
89         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
90         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
91         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
92         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
93         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
94         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
95         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
96
97 2010-11-16  Richard Henderson  <rth@redhat.com>
98
99         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
100         (fmasf4, fnmadf4, fnmasf4): Likewise.
101         (unnamed plus+mult insns and splitters): Delete.
102
103 2010-11-16  Richard Henderson  <rth@redhat.com>
104
105         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
106         (fnma<VSF>4): Rename from fnms_<VSF>.
107         (fms<VSF>4): Rename from fms_<VSF>.
108         (fma<VDF>4): Rename from fma_<VDF>.
109         (fms<VDF>4): Rename from fms_<VDF>.
110         (nfma<VDF>4): Rename from fnma_<VDF>.
111         (nfms<VDF>4): Rename from fnms_<VDF>.
112         (fnma<VDF>4, fnms<VDF>4): New expanders.
113         (floatunsdisf2): Update for the renames.
114         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
115         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
116
117 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
118
119         PR rtl-optimization/46490
120         * combine.c (expand_compound_operation): Fix thinko.
121
122 2010-11-16  Richard Henderson  <rth@redhat.com>
123
124         PR target/46470
125         * recog.c (peep2_attempt): Convert frame-related info when possible.
126         (peep2_fill_buffer): Allow frame-related insns into the buffer.
127         (peephole2_optimize): Allow peep2_attempt to fail.
128
129 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
130
131         PR rtl-optimization/46315
132         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
133         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
134         extracted from...
135         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
136         (remove_reg_equal_equiv_notes_for_defs): ...this.
137         (delete_unmarked_insns): Adjust to above renaming.
138         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
139         referring to registers set in the insns being moved, if any.
140
141         * df-core.c (df_ref_dump): New function extracted from...
142         (df_refs_chain_dump): ...here.  Call it.
143         (df_regs_chain_dump): Likewise.
144         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
145         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
146
147 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
148
149         PR rtl-optimization/46395
150         * postreload.c (reload_combine): Invalidate register use
151         information on all control flow insns.
152
153         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
154         LABEL_REF in UNSPEC operand.
155
156 2010-11-16  Jan Hubicka  <jh@suse.cz>
157
158         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
159         when !flag_toplevel_reorder do not remove unless variable is
160         COMDAT or ARTIFICIAL.
161         * ipa.c (varpool_can_remove_if_no_refs): ... here.
162         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
163         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
164         * varpool.c (decide_is_variable_needed): Do not handle visibility issues.
165         (varpool_finalize_decl): Likewise.
166         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node; update
167         outdated comment on DECL_RTL_SET_P check.
168
169 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
170
171         * config/sol2.h (NM_FLAGS): Define.
172         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
173         * doc/tm.texi: Update.
174
175 2010-11-16  Nick Clifton  <nickc@redhat.com>
176
177         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma
178         rtx_code.
179         (msubsf4): Rename to fmssf4, and use fma.
180         (nmaddsf4): Rename to fnmasf4 and use fma.
181         (nmsubsf4): Rename to fnmssf4 and use fma.
182
183 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
184
185         PR target/44762
186         * config/score/score3.c (score3_return_in_memory): Constify arguments.
187         (score3_in_small_data_p, score3_function_value): Likewise.
188         (score3_trampoline_init): Use LCT_NORMAL.
189         (score3_print_operand): Initialize code as UNKNOWN.
190         * config/score/predicates.md (score_load_multiple_operation):
191         Remove unused variable.
192         (score_store_multiple_operation): Likewise.
193         * config/score/score7.c (score7_return_in_memory): Constify arguments.
194         (score7_in_small_data_p, score7_function_value): Likewise.
195         (score7_trampoline_init): Use LCT_NORMAL.
196         (score7_print_operand): Initialize code as UNKNOWN.
197         * config/score/score3.h (score3_return_in_memory): Update prototype.
198         (score3_in_small_data_p, score3_function_value): Likewise.
199         * config/score/score-protos.h (score_function_value): Likewise.
200         * config/score/score7.h (score7_return_in_memory): Update prototype.
201         (score7_in_small_data_p, score7_function_value): Likewise.
202         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
203         (score_return_in_memory, score_pass_by_reference): Constify arguments.
204         (score_output_mi_thunk, score_function_prologue): Don't return a value.
205         (score_function_epilogue, score_in_small_data_p): Likewise.
206         (score_option_override, score_asm_trampoline_template): Likewise.
207         (score_trampoline_init, score_print_operand): Likewise.
208         (score_print_operand_address, score_prologue): Likewise.
209         (score_epilogue, score_call, score_call_value): Likewise.
210         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
211         (score_function_arg_advance): Likewise. Make static.
212         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
213         (score_function_arg, score_legitimate_address_p): Make static.
214         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
215         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
216         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
217         Allow (W) == HOST_BITS_PER_WIDE_INT.
218
219         PR java/46386
220         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
221         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
222
223 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
224
225         * config/arc/arc.c: Delete pasto.
226         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
227
228 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
229
230         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
231         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
232         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
233         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
234         (mn10300_preferred_reload_class,
235         mn10300_preferred_output_reload_class): New functions.
236
237 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
238
239         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New
240         macros.
241         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
242         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
243         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
244
245 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
246
247         * builtins.c (std_gimplify_va_arg_expr): Use
248         targetm.calls.function_arg_boundary.
249         * function.c (assign_parms, locate_and_pad_parm): Likewise.
250         * calls.c (struct arg_data): Update comment.
251         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
252         * target.def (function_arg_boundary): Define.
253         * targhooks.h (default_function_arg_boundary): Declare.
254         * targhooks.c (default_function_arg_boundary): Define.
255         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
256         TARGET_FUNCTION_ARG_BOUNDARY.
257         (FUNCTION_ARG_BOUNDARY): Delete.
258         (TARGET_FUNCTION_ARG_BOUNDARY): New.
259         * doc/tm.texi: Regenerate.
260         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
261         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
262         * config/arc/arc.c (arc_function_arg_boundary): Define.
263         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
264         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
265         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
266         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
267         (arm_function_arg_boundary): Define.
268         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
269         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
270         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
271         * config/frv/frv.c (frv_function_arg_boundary): Make static.
272         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
273         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
274         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
275         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
276         (ix86_compat_function_arg_boundary): Take and return unsigned int.
277         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
278         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
279         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
280         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
281         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
282         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
283         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
284         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
285         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
286         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
287         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
288         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
289         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
290         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
291         * config/mips/mips.c (mips_function_arg_boundary): Make static.
292         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
293         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
294         * config/pa/pa.c (pa_function_arg_boundary): Define.
295         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
296         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
297         * config/picochip/picochip-protos.h
298         (picochip_get_function_arg_boundary): Delete.
299         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
300         Rename to...
301         (picochip_function_arg_boundary): ...this.  Make static.
302         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
303         (picochip_arg_advance): Adjust.
304         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
305         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
306         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
307         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
308         (rs6000_function_arg_boundary): ...this.  Make static.
309         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
310         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
311         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
312         * config/rx/rx.c (rx_function_arg_boundary): Define.
313         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
314         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
315         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
316         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
317         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
318         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
319         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
320         (xtensa_function_arg_boundary): ...this.  Make static.
321         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
322
323 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
324
325         * expr.c (alignment_for_piecewise_move): New function.
326         (widest_int_mode_for_size): New function.
327         (move_by_pieces, move_by_pieces_ninsns): Call them.
328         (can_store_by_pieces, store_by_pieces_1): Likewise.
329
330 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
331
332         * gcc.c (char_p): Define.  Define a VEC of it.
333         (n_linker_options, n_assembler_options, n_preprocessor_options):
334         Delete.
335         (linker_options, assembler_options, preprocessor_options): Convert
336         to a VEC.
337         (add_preprocessor_option): Adjust.
338         (add_assembler_option): Adjust.
339         (add_linker_option): Adjust.
340         (do_specs_vec): New function.
341         (do_spec_1): Call it.  Adjust for new types.
342
343 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
344
345         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update
346         dependencies.
347         (sreal.o, statistics.o, stringpool.o): Likewise.
348
349 2010-11-16  Richard Guenther  <rguenther@suse.de>
350
351         PR tree-optimization/44545
352         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
353         statements are not reassociatable.
354         (reassociate_bb): Likewise.
355
356 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
357
358         * bitmap.c: Delete unnecessary includes.
359         * ebitmap.c: Likewise.
360         * et-forest.c: Likewise.
361         * sreal.c: Likewise.
362         * statistics.c: Likewise.
363         * stringpool.c: Likewise.
364         * double-int.c: Add comment for inclusion of tm.h.
365
366 2010-11-16  Richard Guenther  <rguenther@suse.de>
367
368         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
369         (visit_nary_op): ... this.
370         (visit_binary_op): Remove.
371         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
372
373 2010-11-16  Richard Guenther  <rguenther@suse.de>
374
375         PR middle-end/45172
376         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate
377         edges.
378
379 2010-11-16  Nick Clifton  <nickc@redhat.com>
380
381         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
382         record is packed.
383
384 2010-11-15  Richard Henderson  <rth@redhat.com>
385
386         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
387         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR,
388         DOT_PROD_EXPR.
389
390 2010-11-15  Richard Henderson  <rth@redhat.com>
391
392         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
393         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
394         fma rtx_code.
395
396 2010-11-15  Richard Henderson  <rth@redhat.com>
397
398         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
399         and *mulsubsf4 respectively.  Use fma rtx_code.
400
401 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
402
403         * gcc.c: Include "vec.h".
404         (argbuf): Make into a VEC.
405         (argbuf_length, argbuf_index): Remove.
406         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
407         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
408         compare_debug_dump_opt_spec_function: Use VEC interfaces on
409         argbuf.
410         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
411         (gcc.o): Depend on $(VEC_H).
412
413 2010-11-15  Richard Henderson  <rth@redhat.com>
414
415         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
416         via FMA if unsafe math.
417         (insert_var_expansion_initialization): Handle FMA.
418         (combine_var_copies_in_loop_exit): Likewise.
419
420 2010-11-15  Richard Henderson  <rth@redhat.com>
421
422         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
423         * config/ia64/ia64.opt: Remove mfused-madd.
424         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
425         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
426         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
427         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
428         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
429         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
430         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
431         (fmav2sf4): Rename from fpma; use FMA code.
432         (fmsv2sf4): Rename from fpms; use FMA code.
433         (fnmav2sf4): Rename from *fpnma; use FMA code.
434         * config/ia64/ia64.md (MODE_SDF): New iterator.
435         (suffix): New mode attribute.
436         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
437         (fmssf4): Rename from *fmssf4.
438         (fnmasf4): Rename from *nfmasf4.
439         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
440         (*nmadddf4, *nmadddf4_truncsf): Remove.
441         (fmsdf4): Rename from *fmsdf4.
442         (fnmadf4): Rename from *nfmadf4.
443         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
444         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
445         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
446         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
447         (fmsxf4): Rename from *fmsxf4.
448         (fnmaxf4): Rename from *nfmaxf4.
449         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
450         (*fnmaxf_trunc_<MODE_SDF>): New.
451
452 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
453
454         PR tree-optimization/46461
455         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
456         a gimple val.
457
458 2010-11-15  Ian Lance Taylor  <iant@google.com>
459
460         * godump.c: New file.
461         * common.opt (fdump-go-spec=): New option.
462         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
463         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
464         (TYPE_SYMTAB_IS_DIE): Define.
465         (struct tree_type): Change GTY for symtab field to use
466         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
467         to pick the union field.
468         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
469         (dump_go_spec_init): Declare.
470         * toplev.c (process_options): Handle flag_dump_go_spec.
471         * debug.c: Include "tree.h".
472         (do_nothing_debug_hooks): Set tree_type_symtab_field.
473         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
474         * dbxout.c (dbx_debug_hooks): Likewise.
475         (xcoff_debug_hooks): Likewise.
476         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
477         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
478         SDB_DEBUGGING_INFO is not defined.
479         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
480         (Overall Options): Document -fdump-go-spec.
481         * Makefile.in (OBJS-common): Add godump.o.
482         (debug.o): Add dependency on $(TREE_H).
483         (godump.o): New target.
484         (GTFILES): Add $(srcdir)/godump.c.
485
486 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
487
488         PR debug/46095
489         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
490         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
491         style < 0, add REG_FRAME_RELATED_EXPR.
492
493         PR debug/46387
494         * rtl.h (vt_equate_reg_base_value): New prototype.
495         * alias.c (vt_equate_reg_base_value): New function.
496         * var-tracking.c (vt_init_cfa_base): Use it.
497
498 2010-11-15  Jan Hubicka  <jh@suse.cz>
499             Diego Novillo  <dnovillo@google.com>
500
501         PR lto/41528
502         * doc/lto.texi: Add.
503         * doc/gccint.texi: Add reference to lto.texi.
504         * doc/invoke.texi: Update user documentation for LTO.
505         Move internal flags to lto.texi
506
507 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
508
509         * c-typeck.c (build_unary_op): Use
510         objc_build_incr_expr_for_property_ref to build the pre/post
511         increment/decrement of an Objective-C property ref, and skip the
512         lvalue_or_else check in that case.
513
514 2010-11-15  Martin Jambor  <mjambor@suse.cz>
515
516         PR tree-optimization/46349
517         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
518         (contains_vce_or_bfcref_p): Likewise.
519         (sra_modify_assign): Use them.
520
521 2010-11-15  Richard Guenther  <rguenther@suse.de>
522
523         PR tree-optimization/46467
524         * tree-ssa-structalias.c (do_structure_copy): Properly treat
525         variables without subvars.
526
527 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
528
529         * config/picochip/picochip.c (file header): Picochip name change.
530         * config/picochip/picochip.md (file header): Likewise.
531         * config/picochip/predicates.md (file header): Likewise.
532         * config/picochip/dfa_space.md (file header): Likewise.
533         * config/picochip/dfa_speed.md (file header): Likewise.
534         * config/picochip/picochip.h(file header): Likewise.
535         * config/picochip/constraints.md (file header): Likewise.
536         * config/picochip/picochip-protos.h (file header): Likewise.
537         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
538         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
539         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
540         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
541         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
542         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
543         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
544         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
545         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
546         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
547         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
548         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
549         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
550         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
551
552 2010-11-15  Richard Guenther  <rguenther@suse.de>
553
554         PR bootstrap/46474
555         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
556
557 2010-11-15  Nick Clifton  <nickc@redhat.com>
558
559         * config/stormy16/stormy16.c (direct_return): Do not generate a
560         direct return for interrupt handlers.
561
562 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
563
564         * Makefile.in (tm.texi): Replace with rule for:
565         ($(srcdir)/doc/tm.texi).
566         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
567         $(srcdir)/doc/tm.texi .
568         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
569         tm.texi .
570
571         PR target/46427
572         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
573
574         PR bootstrap/45444
575         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
576         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
577
578         PR target/46432
579         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
580
581 2010-11-15  Richard Guenther  <rguenther@suse.de>
582
583         PR lto/44150
584         * lto-opts.c (lto_write_options): Write -fexceptions even if
585         not set by the user.
586
587 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
588
589         PR c/46462
590         * c-decl.c (declspecs_add_type): Make variables with error types
591         integers.
592         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
593         do not start a declaration before an Objective-C foreach.
594         (c_parser_declaration_or_fndef): Improve recovery after unknown
595         type name.
596         (c_parser_for_statement): Hoist entrance of "foreach context"
597         before ifs, add corresponding reset where it was missing.  Do
598         not set objc_could_be_foreach_context for C.
599
600 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
601
602         PR tree-optimization/45722
603         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
604         this is a reference to a component.
605         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
606         (ipa_note_param_call): Adjust comment.
607
608 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
609
610         * config/mips/mips.c (machine_function): Remove
611         initialized_mips16_gp_pseudo_p.
612         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
613         detect whether a pseudo has already been created.  Unconditionally
614         create a new one if not.
615         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
616         expanding to rtl.  Create a new pseudo otherwise, if allowed.
617
618 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
619
620         PR target/43440
621         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
622         * tm.texi: Regenerated.
623         * output.h (decode_reg_name_and_count): Declare.
624         * varasm.c (decode_reg_name_and_count): New function.
625         (decode_reg_name): Reimplement using decode_reg_name_and_count.
626         * reginfo.c (fix_register): Use decode_reg_name_and_count and
627         iterate over all regs used.
628         * stmt.c (expand_asm_operands): Likewise.
629         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
630         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
631         multiple machine registers.
632
633 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
634
635         * stor-layout.c (place_union_field): Do not put location information
636         on offset expressions.
637         (place_field): Likewise.
638         (finalize_record_size): Likewise on size expressions.
639         (finalize_type_size): Likewise.
640         (layout_type): Likewise.
641
642 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
643
644         PR debug/42889
645         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
646         * df-core.c (df_set_bb_dirty_nonrl): Remove.
647         * df.h (df_set_bb_dirty_nonlr): Likewise.
648
649 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
650
651         * config/mips/mips.md (call_internal): Pass curr_insn to
652         mips_split_call.
653         (call_internal_direct): Ditto.
654         (call_value_internal): Ditto.
655         (call_value_internal_direct): Ditto.
656         (call_value_multiple_internal): Ditto.
657         * config/mips/mips.c (mips_split_call): Do not copy
658         CALL_INSN_FUNCTION_USAGE here.
659
660 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
661
662         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
663         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
664         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
665         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
666         (TUNE_LOONGSON_3A): Define.
667         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
668         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
669         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
670         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
671         (mips_rtx_cost_data): Add Loongson-3A.
672
673 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
674
675         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
676         switches.
677
678 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
679
680         * dwarf2out.c (macinfo_entry): New struct.
681         (output_comp_unit): Emit the section start label here and flag that we
682         will emit an info section.
683         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
684         emitting directly.
685         (dwarf2out_end_source_file): Likewise.
686         (dwarf2out_define): Likewise.
687         (dwarf2out_undef): Likewise.
688         (output_macinfo): New.
689         (dwarf2out_init): Do not emit debug section switches here, allocate a
690         vec for macinfo, when required.
691         (dwarf2out_finish): First switch to debug_abbrev_section here.
692         debug_line_section,  debug_macinfo_section, Likewise.
693         Check that the pubtypes table has at least one unpruned entry before
694         trying to emit it.
695
696 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
697
698         PR c/20385
699         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
700         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
701         token lookahead.
702         (c_parser_compound_statement_nostart, c_parser_label,
703         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
704         (c_parser_declaration_or_fndef): Detect the case now matched by
705         c_parser_next_tokens_start_declaration, give error and correct it.
706
707 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
708
709         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
710         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
711         with typespec_kind.
712         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
713         (shadow_tag_warned, check_compound_literal_type): Adjust
714         uses of tag_defined_p.
715         (declspecs_add_type): Set typespec_kind.
716         * c-parser.c (c_parser_declaration_or_fndef,
717         c_parser_declspecs, c_parser_struct_declaration,
718         c_parser_parameter_declaration, c_parser_type_name,
719         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
720         of type_seen_p.
721         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
722         tag_defined_p, pass ctsk_firstref through.
723
724 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
725
726         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
727         (struct format_wanted_type): Replace field "name" with "kind", add
728         "format_start" and "format_length".
729         (check_format_info_main): Fill in new fields.  Fill in
730         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
731         after the final NUL outside the while loop.  Do not include
732         width and precision modifiers in the format_start/format_length
733         of the main format.
734         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
735         arguments.  Compute WANTED_TYPE first so that format_type_warning
736         can be called for missing arguments.  Adjust calls to
737         format_type_warning.
738         (format_type_warning): Fetch as much information as possible
739         from format_wanted_type.  Adjust printing now that every
740         warning has a "descr", as well as for missing argument warnings
741         and to include % sign for format specifiers.
742
743 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
744
745         PR rtl-optimization/46204
746         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
747         Update all callers.  Do not recompute topological order.  Adjust
748         fallthrough edges following a degenerate conditional jump.
749
750 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
751
752         * opts-common.c (control_warning_option): New.
753         * opts.c (set_default_handlers): New.
754         (decode_options): Use set_default_handlers and
755         control_warning_option.
756         (common_handle_option): Update call to enable_warning_as_error.
757         (enable_warning_as_error): Take gcc_options parameters.  Use
758         control_warning_option.
759         * opts.h (set_default_handlers, control_warning_option): Declare.
760
761 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
762
763         * Makefile.in (OPTS_H): Define.
764         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
765         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
766         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
767         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
768         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
769         * gcc.c (driver_handle_option): Take location_t parameter.
770         (process_command, do_self_spec): Update calls to
771         read_cmdline_option.
772         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
773         * langhooks.c (lhd_handle_option): Take location_t parameter.
774         * langhooks.h (handle_option): Take location_t parameter.
775         * lto-opts.c (lto_reissue_options): Update call to set_option.
776         * opts-common.c (handle_option): Make static.  Take location_t
777         parameter and pass it to other functions.
778         (handle_generated_option): Take location_t parameter and pass it
779         to other functions.
780         (read_cmdline_option): Take location_t parameter and pass it to
781         other functions.  Use warning_at and error_at.
782         (set_option): Take location_t parameter and pass it to other
783         functions.
784         * opts.c (common_handle_option): Take location_t parameter and
785         pass it to other functions.
786         (enable_warning_as_error): Make static.  Take location_t parameter
787         and pass it to other functions.
788         (lang_handle_option): Take location_t parameter and pass it to
789         other functions.
790         (target_handle_option): Take location_t parameter.
791         (read_cmdline_options, maybe_default_option,
792         maybe_default_options, default_options_optimization,
793         decode_options): Take location_t parameter and pass it to other
794         functions.
795         * opts.h: Include input.h.
796         (struct cl_option_handler_func, decode_options, set_option,
797         handle_generated_option, read_cmdline_option): Take location_t
798         parameters.
799         (handle_option, enable_warning_as_error): Remove.
800         * toplev.c (toplev_main): Update call to decode_options.
801
802 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
803
804         * graphite-cloog-util.c (oppose_constraint,
805         cloog_matrix_to_ppl_constraint,
806         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
807         CLooG isl uses unsigned integers.  This triggered a warning.
808
809 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
810
811         PR target/46438
812         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
813         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
814         (xtensa_function_arg_1): De-constify cum.
815         (xtensa_expand_prologue): Use add_reg_note.
816
817         PR target/46435
818         * config/cris/cris.c (saved_regs_mentioned): Delete.
819         (cris_reload_address_legitimized): Cast itype to enum reload_type.
820         Remove unused variable op0p.
821         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
822         (cris_emit_movem_store): Use add_reg_note.
823
824         PR bootstrap/46456
825         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
826
827 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
828
829         * function.c (expand_function_end): Set the locator of the prologue on
830         the stack checking insns.
831
832 2010-11-12  Richard Henderson  <rth@redhat.com>
833
834         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
835         * config/xtensa/xtensa.opt (mfused-madd): Remove.
836         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
837         MASK_FUSED_MADD.
838         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
839         (fnmasf4): Rename from mulsubsf3; use fma.
840
841 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
842             Richard Henderson  <rth@redhat.com>
843
844         PR target/46428
845         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
846         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
847         comparison.
848
849 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
850
851         * opts-common.c (decode_cmdline_option): Initialize separate_args.
852
853 2010-11-12  Jan Hubicka  <jh@suse.cz>
854
855         * doc/invoke.texi (early-inlining-insns): Update default.
856         * params.def (early-inlining-insns): Default to 10.
857
858 2010-11-12  Olivier Hainque  <hainque@adacore.com>
859
860         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
861
862 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
863
864         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
865         (SUPPORTS_INIT_PRIORITY): Define.
866
867 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
868
869         PR target/46430
870         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
871         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
872         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
873         (avr_device_to_devicelib): Likewise.
874         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
875         into block.
876         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
877         (zero_extendhidi2, zero_extendsidi2): Likewise.
878         * config/avr/avr.c (avr_num_arg_regs): Constify type.
879         (avr_return_addr_rtx): De-constify tem.
880         (avr_rotate_bytes): Move declarations to start of block.
881         Don't use variable length array.
882         Put nested if/else into block.
883
884         PR rtl-optimization/46433
885         * var-tracking.c: Include tm_p.h .
886
887         PR bootstrap/44756
888         PR build/44767
889         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
890         should be unsigned.
891         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
892         * doc/tm.texi: Regenerate.
893
894         PR target/46412
895         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
896         * config/bfin/bfin.c: Include sel-sched.h .
897         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
898         (expand_interrupt_handler_prologue): Remove unused variable insn.
899         (bfin_load_pic_reg): Likewise.
900         (bfin_rtx_costs): Make code / outer_code variables of type
901         enum rtx_code, copied from re-named parameters.
902         (bfin_local_alignment): Change align argument and return type
903         to unsigned.
904         (bfin_adjust_cost): Remove unused variable insn_type.
905         Declare variables at start of block.
906         (struct loop_info): Rename to...
907         (struct loop_info_d).
908         (workaround_rts_anomaly): Change type of icode to int.
909         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
910         with int-typed variable.
911         (note_np_check_stores): Likewise.
912         (trapping_loads_p): Remove unused variable pat.
913         (bfin_expand_binop_builtin): Use expand_normal.
914         (bfin_expand_unop_builtin): Likewise.
915         (bfin_expand_builtin): Likewise.
916         Set tmode before use.
917
918         PR middle-end/44769
919         * final.c (split_double): Don't use BITS_PER_WORD directly in
920         shift count.
921
922         PR target/46431
923         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
924         assignment.
925
926         PR target/46450
927         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
928         Use add_reg_note.
929         (xstormy16_function_arg): Dereference cum.
930         (xstormy16_expand_builtin): Use expand_normal.
931         Change type of omode to enum machine_mode.
932         (combine_bnp): Rename and to and_insn.
933
934         PR target/46437
935         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
936         localreg.
937
938 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
939
940         PR debug/46375
941         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
942
943 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
944
945         PR lto/46376
946         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
947
948 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
949
950         PR c/44782
951         * common.opt (fmax-errors=): New option.
952         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
953         * diagnostic.h (struct diagnostic_context): Add max_errors field.
954         * diagnostic.c (diagnostic_initialize): Initialize it.
955         (diagnostic_action_after_output): Exit if more than max_errors
956         have been output.
957         * doc/invoke.texi (Warning Options): Add -fmax-errors.
958         (-fmax-errors): Document.
959
960 2010-11-11  Richard Henderson  <rth@redhat.com>
961
962         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
963
964 2010-11-11  Richard Henderson  <rth@redhat.com>
965
966         * config/fused-madd.opt: New file.
967         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
968         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
969         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
970         * config/i386/i386.opt (mfused-madd): Remove.
971         * config/i386/sse.md (split_fma): Remove.
972         (split_fms, split_fnma, split_fnms): Remove.
973
974 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
975
976         PR target/46088
977         * config/i386/i386.md (*ashl<mode>3_cconly,
978         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
979         change nonimmediate_operand predicate to register_operand.
980
981 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
982
983         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
984
985 2010-11-11  Jan Hubicka  <jh@suse.cz>
986
987         * opts.c (finish_options): Do not error on -flto-partition alone.
988
989         * doc/invoke.texi (-fwhopr): Merge into -flto section.
990         (-flto-partition): Document none.
991         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
992         * lto-wrapper.c: Update comment.
993         (run_gcc): Update LTO option parsing.
994         * opts.c (finish_options): add support -flto-partition=none
995         (common_handle_option): Remove fwhopr.
996         * common.opt: Turn fwhopr into flto.
997         * collect2.c (main): Update option handling.
998         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
999         * ipa-split.c (execute_split_functions): Remove flag_whopr.
1000         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1001         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1002         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1003
1004 2010-11-11  Jan Hubicka  <jh@suse.cz>
1005
1006         PR tree-optimize/40436
1007         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1008         (eliminated_by_inlining_prob): ... this one; return 50% probability for
1009         SRA.
1010         (estimate_function_body_sizes): Update use of eliminated_by_inlining_prob;
1011         estimate static function size for 2 instructions.
1012
1013 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
1014
1015         PR target/44749
1016         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1017         declare.  Change type of argument four to type int.
1018         (mep_secondary_input_reload_class): Returns enum reg_class.
1019         (mep_secondary_output_reload_class): Likewise.
1020         (mep_function_value): Change types of arguments to cont_tree.
1021         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1022         argument four to type int.
1023         (mep_secondary_input_reload_class): Returns enum reg_class.
1024         (mep_secondary_output_reload_class): Likewise.
1025         (mep_function_value): Change types of arguments to cont_tree.
1026         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1027         mep_regno_reg_class to enum reg_class.
1028
1029 2010-11-11  Richard Henderson  <rth@redhat.com>
1030
1031         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1032         that the target has the exact fma operation that we matched.
1033
1034 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1035
1036         * reginfo.c (fix_register): Avoid inserting English word in
1037         diagnostic sentence.  Use %qs for quoting and %'.
1038
1039 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
1040
1041         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1042         Intel processor family 6, model 0x2c.
1043
1044 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1045
1046         * opts.c (warning_as_error_callback,
1047         register_warning_as_error_callback): Remove.
1048         (enable_warning_as_error): Don't use warning_as_error_callback.
1049         * opts.h (register_warning_as_error_callback): Remove.
1050
1051 2010-11-11  Richard Henderson  <rth@redhat.com>
1052
1053         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1054         in between the MULT and the PLUS/MINUS.
1055
1056 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1057
1058         PR middle-end/46388
1059         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1060         BLKmode mode for it.
1061         (expand_expr_real_1): Similarly for op0.
1062
1063 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1064
1065         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1066         Document optional target selector.
1067
1068 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1069
1070         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1071         assembling high and low parts of size if not using 32-bit HWINT; else
1072         use DECL_SIZE_UNITS, not DECL_SIZE.
1073
1074 2010-11-11  Martin Jambor  <mjambor@suse.cz>
1075
1076         PR tree-optimization/46383
1077         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1078         offsets.
1079         (compute_complex_ancestor_jump_func): Likewise.
1080         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1081
1082 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR debug/46150
1085         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1086         true if expr1->hash != expr2->hash.
1087
1088 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1089
1090         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
1091         diagnostics with lowercase letters.
1092         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1093         lowercase letters.
1094         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1095         diagnostic.
1096         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1097         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1098         lowercase letters.
1099         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1100         Remove trailing ' ' from diagnostic.
1101         * config/avr/avr.c (print_operand_address): Start diagnostic with
1102         a lowercase letter and remove trailing '.'.
1103         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1104         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1105         with lowercase letters.  Use %' in diagnostics.  Remove trailing
1106         '.' from diagnostics.
1107         (bfin_handle_longcall_attribute): Use %' in diagnostic.
1108         * config/cris/cris.c (cris_split_movdx,
1109         cris_expand_pic_call_address): Start diagnostics with lowercase
1110         letters.
1111         (cris_asm_output_label_ref): Use %' in diagnostic.
1112         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
1113         letter.
1114         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
1115         lowercase letter.
1116         * config/darwin-c.c (version_as_macro): Start diagnostic with a
1117         lowercase letter.
1118         * config/darwin-driver.c (darwin_default_min_version): Use %' in
1119         diagnostic.
1120         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
1121         diagnostic.
1122         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1123         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
1124         diagnostics.
1125         * config/i386/i386.c (ix86_option_override_internal): Write
1126         diagnostic as a single sentence without trailing '.'.  Use %' in
1127         diagnostics.
1128         (ix86_function_sseregparm, classify_argument): Start diagnostics
1129         with lowercase letters.
1130         (ix86_expand_prologue): Use %' in diagnostic.
1131         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
1132         diagnostic.
1133         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
1134         lowercase letter.
1135         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
1136         diagnostic.
1137         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1138         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
1139         '`' in help text.
1140         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
1141         lowercase letter.
1142         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
1143         lowercase letters.
1144         * config/microblaze/microblaze.c (microblaze_handle_option):
1145         Remove trailing '.' from diagnostic.
1146         (print_operand): Start diagnostic with a lowercase letter.
1147         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
1148         lowercase letters.  Avoid '`' in diagnostics.
1149         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
1150         lowercase letters.  Avoid '`' in diagnostics.
1151         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
1152         lowercase letters.  Avoid '`' in diagnostics.
1153         * config/picochip/picochip.c (picochip_option_override,
1154         picochip_emit_save_register, picochip_function_arg,
1155         picochip_output_label, picochip_output_internal_label,
1156         picochip_asm_output_opcode, picochip_output_cbranch,
1157         picochip_output_compare, picochip_output_branch,
1158         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
1159         diagnostics. Start diagnostics with lowercase letters.  Use %' in
1160         diagnostics.
1161         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1162         "SPE" capitalization.  Start diagnostic with a lowercase letter.
1163         (rs6000_handle_option): Start diagnostics with lowercase letters.
1164         (def_builtin): Remove trailing '.' from diagnostic.
1165         (rs6000_savres_routine_name): Start diagnostic with a lowercase
1166         letter.
1167         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
1168         diagnostic.
1169         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
1170         lowercase letter.
1171         * config/s390/s390.c (s390_option_override) Start diagnostics with
1172         lowercase letters.  Use %' in diagnostic.
1173         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
1174         lowercase letters.
1175         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
1176         diagnostic.
1177         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
1178         diagnostic.
1179         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
1180         diagnostic.
1181         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1182         * config/spu/spu.c (spu_option_override): Start diagnostics with
1183         lowercase letters.  Use %qs for quoting in diagnostics.
1184         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
1185         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
1186         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
1187         from diagnostic.
1188         * convert.c (convert_to_integer, convert_to_vector): Use %' in
1189         diagnostics.
1190         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
1191         letter and use "cannot" spelling.
1192         * expmed.c (extract_fixed_bit_field): Start diagnostic with
1193         lowercase letter and format as a single sentence without '.'.
1194         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
1195         Use %' in diagnostics.
1196         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1197         Use %' in diagnostics.
1198         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1199         Use %' in diagnostics.
1200         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
1201         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
1202         with lowercase letters and remove tailing '.' and '\n'.
1203         * lto-cgraph.c (input_profile_summary): Start diagnostic with
1204         lowercase letter and remove trailing '.'.
1205         (input_cgraph): Start diagnostics with lowercase letters and
1206         remove trailing '\n'.
1207         * opts.c (finish_options, common_handle_option): Start diagnostics
1208         with lowercase letters and remove trailing '.'.  Fix typo in
1209         diagnostic.
1210         * passes.c (position_pass): Start diagnostic with lowercase
1211         letter.
1212         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
1213         register_callback, try_init_one_plugin): Start diagnostics with
1214         lowercase letters.
1215         * reload1.c (spill_failure): Use %' in diagnostic.
1216         (gen_reload): Start diagnostic with a lowercase letter.
1217         * stor-layout.c (place_field): Start diagnostic with a lowercase
1218         letter.
1219         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
1220         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
1221         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
1222         Start diagnostics with lowercase letters, remove trailing '.' and
1223         use %' in diagnostics.
1224         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
1225         (verify_ssa): Don't split diagnostic across two error calls.
1226         Spell out "number" and use %' in diagnostic.
1227         * value-prof.c (visit_hist, check_counter): Start diagnostics with
1228         lowercase letters.
1229
1230 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
1231
1232         PR middle-end/46419
1233         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1234         (_mm_cvtpu16_ps): Ditto.
1235
1236 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1237
1238         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1239         warn_larger_than, larger_than_size, warn_frame_larger_than,
1240         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1241         default_visibility, flag_tls_default): New Variable declarations.
1242         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1243         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1244         (v): Declare as Common and document here.
1245         * flags.h (default_visibility, flag_generate_lto,
1246         warn_larger_than, larger_than_size, warn_frame_larger_than,
1247         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1248         flag_shlib, flag_excess_precision_cmdline): Remove.
1249         (set_Wstrict_aliasing): Update prototype.
1250         * gcc.c (verbose_flag): Remove.
1251         (driver_handle_option): Add diagnostic_context parameter.  Don't
1252         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
1253         incrementing it.
1254         * opts-common.c (handle_option): Pass dc to handler.
1255         * opts.c (warn_larger_than, larger_than_size,
1256         warn_frame_larger_than, frame_larger_than_size,
1257         default_visibility): Remove.
1258         (common_handle_option): Add diagnostic_context parameter.
1259         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1260         gcc_options parameters.
1261         (lang_handle_option, target_handle_option, read_cmdline_options,
1262         decode_options): Add diagnostic_context parameters.
1263         (finish_options): Access option state through opts pointer where
1264         possible.
1265         (common_handle_option): Access option state through opts pointer
1266         where possible.  Do not set local static variable verbose.  Do not
1267         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1268         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1269         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1270         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1271         OPT_fwhopr_.  Do not explicitly set .opt file variables for
1272         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
1273         (set_Wstrict_aliasing): Add gcc_options parameter.
1274         * opts.h (struct cl_option_handler_func): Add diagnostic_context
1275         parameter to handler.
1276         (decode_options): Add diagnostic_context parameter.
1277         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1278         asm_file_name, flag_generate_lto, flag_gen_aux_info,
1279         aux_info_file_name, flag_shlib, flag_tls_default,
1280         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1281         (toplev_main): Pass global_dc to decode_options.
1282         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1283         aux_info_file_name, asm_file_name): Remove.
1284         * tree.h (flag_tls_default): Remove.
1285
1286 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1287
1288         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1289         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1290
1291 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1292
1293         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1294         (x86_64-*-*): Likewise.
1295         * config/i386/cpuid.h: Define TBM bit.
1296         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1297         and set has_tbm.
1298         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1299         isa_flag for TBM.
1300         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1301         (OPTION_MASK_ISA_TBM_UNSET): New.
1302         (ix86_handle_option): Handle -mtbm.
1303         (isa_opts): Add -mtbm.
1304         (enum pta_flags): Add PTA_TBM.
1305         (ix86_option_override_internal): Add TBM support.
1306         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
1307         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
1308         (IX86_BUILTIN_BEXTRI64): Likewise.
1309         (bdesc_args): Add TBM intrinsics.
1310         (ix86_expand_builtin): Add TBM specific case.
1311         * config/i386/i386.h (TARGET_TBM): New for TBM.
1312         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
1313         (tbm_bextri_<mode>): Likewise.
1314         (*tbm_blcfill_<mode>): Likewise.
1315         (*tbm_blci_<mode>): Likewise.
1316         (*tbm_blcic_<mode>): Likewise.
1317         (*tbm_blcmsk_<mode>): Likewise.
1318         (*tbm_blcs_<mode>): Likewise.
1319         (*tbm_blsfill_<mode>): Likewise.
1320         (*tbm_blsic_<mode>): Likewise.
1321         (*tbm_t1mskc_<mode>): Likewise.
1322         (*tbm_tzmsk_<mode>): Likewise.
1323         * config/i386/i386.opt: Add -mtbm.
1324         * config/i386/tbmintrin.h (__bextri_u32): New.
1325         (__blcfill_u32): Likewise.
1326         (__blci_u32): Likewise.
1327         (__blcic_u32): Likewise.
1328         (__blcmsk_u32): Likewise.
1329         (__blcs_u32): Likewise.
1330         (__blsfill_u32): Likewise.
1331         (__blsic_u32): Likewise.
1332         (__t1mskc_u32): Likewise.
1333         (__tzmsk_u32): Likewise.
1334         (__bextri_u64): Likewise.
1335         (__blcfill_u64): Likewise.
1336         (__blci_u64): Likewise.
1337         (__blcic_u64): Likewise.
1338         (__blcmsk_u64): Likewise.
1339         (__blcs_u64): Likewise.
1340         (__blsfill_u64): Likewise.
1341         (__blsic_u64): Likewise.
1342         (__t1mskc_u64): Likewise.
1343         (__tzmsk_u64): Likewise.
1344         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
1345         * doc/invoke.texi: Document -mtbm.
1346         * doc/extend.texi: Document TBM built-in functions.
1347
1348 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1349
1350         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
1351         (x86_64-*-*): Likewise.
1352         * config/i386/cpuid.h: Define BMI bit.
1353         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1354         and set has_bmi.
1355         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1356         isa_flag for BMI.
1357         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
1358         (OPTION_MASK_ISA_BMI_UNSET): New.
1359         (ix86_handle_option): Handle -mbmi.
1360         (isa_opts): Add -mbmi.
1361         (enum pta_flags): Add PTA_BMI.
1362         (ix86_option_override_internal): Add BMI support.
1363         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
1364         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
1365         (IX86_BUILTIN_BEXTR64): Likewise.
1366         (IX86_BUILTIN_CTZS): Likewise.
1367         (bdesc_args): Add BMI intrinsics.
1368         (ix86_expand_args_builtin): Add BMI specific cases.
1369         * config/i386/i386.h (TARGET_BMI): New for BMI.
1370         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1371         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
1372         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
1373         (UNSPEC_TZCNT): Likewise.
1374         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
1375         (bmi_andn_<mode>): New for BMI.
1376         (bmi_bextr_<mode>): Likewise.
1377         (bmi_blsi_<mode>): Likewise.
1378         (bmi_blsmsk_<mode>): Likewise.
1379         (bmi_blsr_<mode>): Likewise.
1380         * config/i386/i386.opt: Add -mbmi.
1381         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
1382         * config/i386/bmiintrin.h (__lzcnt_u16): New.
1383         (__tzcnt_u16): Likewise.
1384         (__andn_u32): Likewise.
1385         (__bextr_u32): Likewise.
1386         (__blsi_u32): Likewise.
1387         (__blsmsk_u32): Likewise.
1388         (__blsr_u32): Likewise.
1389         (__lzcnt_u32): Likewise.
1390         (__tzcnt_u32): Likewise.
1391         (__andn_u64): Likewise.
1392         (__bextr_u64): Likewise.
1393         (__blsi_u64): Likewise.
1394         (__blsmsk_u64): Likewise.
1395         (__blsr_u64): Likewise.
1396         (__lzcnt_u64): Likewise.
1397         (__tzcnt_u64): Likewise.
1398         * doc/invoke.texi: Document -mbmi and -mno-bmi.
1399         * doc/extend.texi: Document BMI built-in functions.
1400
1401 2010-11-10  Jan Hubicka  <jh@suse.cz>
1402
1403         PR tree-optimize/46228
1404         * doc/invoke.texi (comdat-sharing-probability): Document.
1405         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1406         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1407
1408 2010-11-10  Jan Hubicka  <jh@suse.cz>
1409
1410         PR tree-optimize/46228
1411         * cgraph.c (cgraph_propagate_frequency): Fix typo.
1412
1413 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
1414
1415         PR tree-optimization/46414
1416         * tree-inline.c (estimate_move_cost): Check preferred vector
1417         mode for vector type.
1418
1419 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1420
1421         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1422
1423 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
1424
1425         PR tree-optimization/45971
1426         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1427         for phi nodes analyzable by scev.
1428
1429 2010-11-10  Richard Guenther  <rguenther@suse.de>
1430
1431         PR tree-optimization/44964
1432         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1433
1434 2010-11-10  Martin Jambor  <mjambor@suse.cz>
1435
1436         PR tree-optimization/46351
1437         PR tree-optimization/46377
1438         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1439         aggregate bit-fields.
1440
1441 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1442
1443         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1444         * doc/tm.texi: Regenerate.
1445         * opts-common.c (tm.h): Don't include.
1446         (target_option_translations): Remove.
1447         (decode_cmdline_options_to_array): Don't handle translating options.
1448         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1449         * config/darwin-driver.c: Don't condition includes on
1450         CROSS_DIRECTORY_STRUCTURE.
1451         (darwin_default_min_version): Make static.
1452         (darwin_driver_init): New.  Call darwin_default_min_version if not
1453         CROSS_DIRECTORY_STRUCTURE.
1454         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1455         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1456         (ASM_SPEC): Add %{static}.
1457         (darwin_default_min_version): Don't declare.
1458         (darwin_driver_init): Declare.
1459         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1460         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1461         * config/darwin.opt (all_load, allowable_client,
1462         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1463         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1464         exported_symbols_list, filelist, findirect-virtual-calls,
1465         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1466         framework, fterminated-vtables, gfull, gused, image_base, init,
1467         install_name, multi_module, multiply_defined,
1468         multiply_defined_unused, no_dead_strip_inits_and_terms,
1469         seg_addr_table, seg_addr_table_filename, segaddr,
1470         segs_read_only_addr, segs_read_write_addr, single_module,
1471         umbrella, unexported_symbols_list, weak_reference_mismatches,
1472         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1473         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1474         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1475         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1476         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1477         (ASM_SPEC): Add %{static}.
1478         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1479         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1480         (DRIVER_SELF_SPECS): Handle options formerly in
1481         TARGET_OPTION_TRANSLATE_TABLE.
1482         * config/mep/mep.opt (mfar): New.
1483         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1484         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
1485         TARGET_OPTION_TRANSLATE_TABLE.
1486         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1487         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1488         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1489         ffix-and-continue, findirect-data): New.
1490         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1491         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1492         (mnofpu): Define mask and use Report here.
1493
1494 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1495
1496         * config/s390/s390.c (s390_emit_prologue): Report the stack
1497         size if -fstack-usage is used.
1498
1499 2010-11-10  Richard Guenther  <rguenther@suse.de>
1500
1501         PR tree-optimization/46398
1502         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
1503
1504 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
1505
1506         PR target/44760
1507         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
1508         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
1509         GP_REG_OR_PSEUDO_STRICT_P.
1510         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
1511         unexpected alternative.
1512         (*movsf_internal): Likewise.
1513         (indirect_jump): Replace call to non-existant function with call to
1514         internal_error.
1515         (tablejump): Likewise.
1516         * config/iq2000/iq2000.c: Include df.h .
1517         (iq2000_function_arg_advance): Use CONST_CAST2.
1518         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
1519         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
1520         a non-zero function address.
1521         (iq2000_initial_elimination_offset): Add gcc_unreachable for
1522         unexpected value of FROM.
1523         (symbolic_expression_p): Delete.
1524         (iq2000_function_value): Constify func.
1525         (expand_one_builtin): Use expand_normal.
1526         (iq2000_print_operand): Don't print VALUE if calculating it failed.
1527
1528         PR rtl-optimization/44764
1529         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
1530
1531         PR target/46407
1532         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
1533         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
1534         with ATTRIBUTE_UNUSED.
1535         (valid_psw_flag): Constify parameter which.
1536         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
1537
1538         PR target/46415
1539         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
1540         (mmix_dbx_register_number): Likewise.
1541         * config/mmix/mmix.c: Include df.h .
1542         (mmix_local_alignment): Change argument basic_align and return type
1543         to unsigned.
1544         (mmix_dbx_register_number): Change argument and return type to
1545         unsigned.
1546         (mmix_expand_prologue): Use add_reg_note.
1547
1548         PR target/46417
1549         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
1550         (spu_split_store): Use aform.
1551         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
1552
1553 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1554
1555         PR/46268
1556         * doc/gty.texi (GTY Options): Clarify that variable_size produces
1557         allocators taking size in bytes, compare with length option.  Add
1558         size calculation example.
1559         (Invoking the garbage collector): Ensure that sentences are
1560         followed by two spaces.  Describe that pointer fields must be
1561         initialized at ggc_collect call.
1562         (Troubleshooting): New section.
1563
1564 2010-11-09  Jan Hubicka  <jh@suse.cz>
1565
1566         PR tree-optimization/40436
1567         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
1568         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
1569         normal instructions; be sure bultin is not implemented in this file;
1570         compute non-zero return cost.
1571         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
1572         * tree-inline.h (eni_weights_d): Add return cost.
1573
1574 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
1575
1576         * c-parser.c (c_parser_struct_declaration): Handle declaration
1577         specifiers followed by CPP_CLOSE_BRACE.
1578
1579 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1580
1581         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
1582         split occurs before reload, and we allocate memory at the time of
1583         the split, not during expansion.  Add attributes.
1584         (floatsi<mode>2_lfiwax_mem): Ditto.
1585         (floatunssi<mode>2_lfiwzx): Ditto.
1586         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1587         (floatsidf2): Ditto.
1588         (floatunssisf2): Ditto.
1589         (floatunssidf2): Ditto.
1590         (fix_trunc<mode>si2): Ditto.
1591         (fix_trunc<mode>si2_stfiwx): Ditto.
1592         (fix_trunc<mode>si2_internal): Ditto.
1593         (fix_trunc<mode>si2): Ditto.
1594         (fix_trunc<mode>di2): Ditto.
1595         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1596         (floatsisf2): Ditto.
1597         (floatdidf2_mem): Ditto.
1598         (floatunsdidf2_mem): Ditto.
1599         (floatunsdidf2): Ditto.
1600         (floatdisf2_internal1): Ditto.
1601         (floatdisf2_mem): Ditto.
1602         (floatunsdisf2_mem): Ditto.
1603         (floatsi<mode>2_lfiwax_mem2): Delete.
1604         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1605         (fix_trunc<mode>si2_mem): Ditto.
1606         (fixuns_trunc<mode>si2_mem): Ditto.
1607         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
1608         type operations to reduce copying the values to multiple memory slots.
1609         (roundu32<mode>2_fprs): Ditto.
1610
1611         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
1612         PRE_INC, PRE_DEC, PRE_MODIFY.
1613         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
1614
1615         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
1616         Delete prototype.
1617
1618 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1619
1620         PR target/43808
1621         * cfgexpand.c (partition_stack_vars): Call
1622         update_alias_info_with_stack_vars unconditionally.
1623         (update_alias_info_with_stack_vars): Allow unused
1624         unreferenced vars when not optimizing.
1625
1626 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
1627
1628         PR tree-optimization/46036
1629         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
1630         add_to_dst_predicate_list.
1631
1632 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1633
1634         PR debug/46171
1635         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
1636         earlier.
1637         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
1638         argument, call dead_debug_reset when adding REG_UNUSED note.
1639         (dead_debug_reset): New function.
1640         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
1641         df_create_unused_note callers.
1642
1643 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
1644
1645         * config/fr30/fr30.c: Include "df.h".
1646
1647 2010-11-09  Richard Guenther  <rguenther@suse.de>
1648
1649         PR tree-optimization/46355
1650         * tree-loop-distribution.c (tree_loop_distribution): Do not
1651         distribute loops without a single exit.
1652
1653 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1654
1655         PR rtl-optimization/46237
1656         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
1657         saved hard regs if they might get partially clobbered.
1658
1659 2010-11-09  Paul Koning  <ni1d@arrl.net>
1660
1661         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
1662
1663 2010-11-09  Richard Guenther  <rguenther@suse.de>
1664
1665         PR tree-optimization/46177
1666         * tree-loop-distribution.c (prop_phis): Remove.
1667         (generate_builtin): Re-use the old loop exit edge to avoid
1668         needing to update PHI nodes.
1669
1670 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
1671
1672         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
1673         type of args_size to unsigned HOST_WIDE_INT.
1674
1675         PR target/44755
1676         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
1677         * config/t-pnt16-warn: New file.
1678         * config/picochip/picochip.c (picochip_emit_stack_allocate):
1679         Use add_reg_note.
1680         (picochip_emit_save_register): Likewise.
1681         (picochip_emit_restore_register): Remove variable insn.
1682         (picochip_legitimize_address): Don't use C++ style comments.
1683         (picochip_legitimize_reload_address): Likewise.
1684         (reorder_var_tracking_notes): Remove variable vliw_start.
1685         (picochip_reorg): Cast first arguemnt to emit_note_after to
1686         enum insn_note.
1687         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
1688         (picochip_expand_builtin_3op): Likewise.
1689         (picochip_expand_builtin_2opvoid): Likewise.
1690         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
1691         (picochip_expand_array_testport): Likewise.
1692         (picochip_init_builtins): Remove unused variables.
1693         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
1694         to unsigned long, and output it as such.
1695         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1696         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
1697         (schedType): Cast result of picochip_schedule_type to
1698         enum attr_schedType.
1699
1700         PR target/44759
1701         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
1702         conditional to type of S.
1703         (mn10300_function_arg): Remove unused variable align.
1704         (mn10300_arg_partial_bytes): Likewise.
1705         * config/mn10300/mn10300.md (attribute cpu): Cast value to
1706         enum attr_cpu.
1707
1708 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
1709
1710         PR bootstrap/46392
1711         * gengtype-parse.c (type): Call get_input_file_name to get file name.
1712
1713 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1714
1715         * tree.h (contains_placeholder_p): Fix comment.
1716         (type_contains_placeholder_p): Adjust comment.
1717         * tree.c (contains_placeholder_p): Fix comment.
1718         (type_contains_placeholder_1): Do not recurse on pointed-to types and
1719         adjust comment.
1720         (type_contains_placeholder_p): Add comment.
1721
1722 2010-11-09  Paul Koning  <ni1d@arrl.net>
1723
1724         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
1725         output of byte values.
1726
1727 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1728
1729         PR middle-end/46360
1730         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
1731         not in SSA mode.
1732
1733 2010-11-09  Richard Guenther  <rguenther@suse.de>
1734
1735         PR middle-end/46221
1736         * varasm.c (compute_visible_aliases): New function.
1737         (remove_unreachable_alias_pairs): Aliases make a target available
1738         even though we reclaimed the cgraph node.
1739         (finish_aliases_1): Likewise.
1740         * Makefile.in (varasm.o): Add pointer-set.h dependency.
1741
1742 2010-11-09  Nick Clifton  <nickc@redhat.com>
1743
1744         * config/mn10300/mn10300-modes.def: New file.
1745
1746 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
1747             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1748
1749         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
1750         (plugin_files, get_file_basename, get_file_realbasename)
1751         (get_file_langdir, error_at_line, gt_files, this_file)
1752         (system_h_file, read_input_list, create_field_all)
1753         (get_file_srcdir_relative_path, get_file_basename)
1754         (get_file_langdir, get_file_gtfilename)
1755         (get_output_file_with_visibility, get_output_file_name)
1756         (struct flist, put_mangled_filename, walk_type)
1757         (put_mangled_filename, finish_root_table, write_roots): Use
1758         input_file-s.
1759         (lang_dir_names, num_lang_dirs): Remove static.
1760         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
1761         (main): Use input_file-s.
1762
1763         * gengtype.h: (struct input_file_st, input_file): New type.
1764         (struct fileloc): Use it.
1765         (gt_files, num_gt_files, this_file, system_h_file)
1766         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
1767         (get_input_file_name): New function.
1768         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
1769         use input_file.
1770         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
1771         (get_output_file_name): Ditto.
1772
1773         * gengtype-lex.l (yybegin): Use input_file.
1774
1775         * gengtype-parse.c (parse_error): Use input_file.
1776
1777 2010-11-08  Xinliang David Li  <davidxl@google.com>
1778
1779         PR tree-optimization/46316
1780         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
1781         * double-int.h (double_int_mul_with_sign): New function.
1782         * double-int.c (double_int_mul_with_sign): New function.
1783
1784 2010-11-08  Paul Koning  <ni1d@arrl.net>
1785
1786         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
1787
1788 2010-11-08  Paul Koning  <ni1d@arrl.net>
1789
1790         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
1791
1792 2010-11-08  Paul Koning  <ni1d@arrl.net>
1793
1794         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
1795         to 8 bits.
1796
1797 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1798
1799         PR target/46378
1800         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1801         turn on ISA 2.04 rounding instructions for power5.
1802
1803         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
1804         not ISA 2.02.
1805
1806         PR target/45585
1807         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
1808         in FPR registers.
1809         (movdi_low_st): Ditto.
1810
1811 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1812             Richard Henderson  <rth@redhat.com>
1813
1814         PR target/44758
1815         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
1816         (attribute acc_group): Cast value to enum attr_acc_group.
1817         (*movdi_nodouble+6): Use gen_int_mode.
1818         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
1819         if RTX_CODE is defined or not.
1820         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
1821         struct frv_io.
1822         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
1823         (frv_frame_access, frv_expand_prologue): Remove unused variables.
1824         (frv_expand_block_clear): Likewise.
1825         (frv_trampoline_init): Use LCT_NORMAL.
1826         (struct frv_packet_group): New struct, broken out of type of
1827         frv_packet.
1828         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
1829         use cast in loop counter increment.
1830         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
1831         assigning to io->type.
1832         (bdesc_set): Use rtx_code UNKNOWN in initializer.
1833         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
1834         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
1835         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
1836         (frv_read_argument): Use expand_normal.
1837
1838         PR target/44757
1839         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
1840         lm32_legitimate_constant_p.
1841         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
1842         * config/lm32/lm32.c (gen_int_relational): Make new block for
1843         LE / LT / LEU / LTU case.  Declare variables at start of block.
1844         (lm32_block_move_inline): Use XALLOCAVEC.
1845
1846 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1847
1848         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
1849
1850 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1851
1852         * gengtype (get_output_file_for_structure): Ensure type is union
1853         or struct.
1854         (write_splay_tree_allocator_def): Use
1855         get_output_file_with_visibility.
1856
1857 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1858
1859         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
1860         to defined values in case of an error.
1861         (s390_option_override): Skip further processing if the -march
1862         parameter wasn't recognized.
1863
1864 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1865
1866         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
1867         assert that REG is a hard register number before using it as an index.
1868
1869         PR bootstrap/46358
1870         * config/i386/i386.c (ix86_expand_split_stack_prologue):
1871         Avoid warnings when HOST_WIDE_INT is 32 bit.
1872
1873 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
1874
1875         PR target/46208
1876         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
1877         (sparc_promote_prototypes): Likewise.
1878         (sparc_promote_function_mode): Promote in 32-bit mode as well.
1879         (sparc_return_in_memory): Remove superfluous parentheses.
1880         (sparc_struct_value_rtx): Fix long lines.
1881         (sparc_function_value_1): Promote in 32-bit mode as well.
1882
1883 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
1884
1885         PR rtl-optimization/45352
1886         * sel-sched.c (find_best_expr): Do not set pneed_stall when
1887         the variable_issue hook is not implemented.
1888         (fill_insns): Remove dead variable stall_iterations.
1889         (init_seqno_1): Force EBB start for resetting sched cycles on any
1890         successor blocks of the rescheduled region.
1891         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
1892         (reset_sched_cycles_in_current_ebb): Add debug printing.
1893         New variable issued_insns.  Advance state when we have issued
1894         issue_rate insns.
1895
1896 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
1897
1898         * gengtype (main): Get here's position using POS_HERE macro for
1899         do*typedef calls.
1900
1901 2010-11-07  Ian Lance Taylor  <iant@google.com>
1902
1903         PR target/46089
1904         * config/i386/i386.c (split_stack_fn_large): New static variable.
1905         (ix86_expand_split_stack_prologue): Handle large model.
1906
1907 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
1908
1909         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
1910         all possible addressing modes.
1911
1912 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
1913
1914         PR tree-optimization/46346
1915         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
1916
1917 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1918
1919         * config/mips/mips.c: Revert previous patch.
1920         * config/mips/mips.md: Likewise.
1921
1922 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
1923
1924         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
1925         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
1926         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
1927         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
1928         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
1929         to use FMA.
1930         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
1931         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
1932         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
1933         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
1934
1935 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
1936
1937         PR c/43384
1938         * c-decl.c (lookup_label): Labels can only be referenced in a
1939         function's scope.
1940         (store_parm_decls_oldstyle): Skip erroneous parameters.
1941
1942 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
1943
1944         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1945         LIBCALL_VALUE): Remove macros.
1946         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1947         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1948         (fr30_function_value_regno_p, fr30_function_value,
1949         fr30_libcall_value): New functions.
1950
1951 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
1952
1953         PR middle-end/46314
1954         * target.def (generate_internal_label): New asm_out hook.
1955         * output.h (default_generate_internal_label): Declare.
1956         * varasm.c (default_generate_internal_label): Define.
1957
1958 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
1959
1960         PR target/44981
1961         * doc/extend.tex (format): Document NSString extension.
1962         (format_arg): Likewise.
1963         (Darwin Format Checks): New section.
1964         * doc/tm.texi: Document string object hooks (generated).
1965         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
1966         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1967         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1968         * target.def (objc_construct_string_object): Rename, amend
1969         documentation.
1970         (string_object_ref_type_p): New hook.
1971         (check_string_object_format_arg): New hook.
1972         * c-parser.c (c_parser_attributes): Allow objective-c class names as
1973         attribute identifiers.
1974         * config/darwin-c.c (darwin_cfstring_ref_p): New.
1975         (darwin_check_cfstring_format_arg): New.
1976         (darwin_additional_format_types): New.
1977         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
1978         (darwin_check_cfstring_format_arg): New.
1979         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
1980         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
1981         (TARGET_N_FORMAT_TYPES): New.
1982         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
1983
1984 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1985             Pascal Obry  <obry@adacore.com>
1986
1987         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
1988         in 64-bit mode and 17 otherwise.
1989
1990 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1991
1992         PR debug/45939
1993         * var-tracking.c (emit_note_insn_var_location): Make sure that
1994         call related var location notes come before the normal ones.
1995
1996 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
1997
1998         PR target/46326
1999         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2000         in the last change.
2001
2002 2010-11-05  Ian Lance Taylor  <iant@google.com>
2003
2004         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2005
2006 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2007
2008         PR c/44772
2009         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2010         pointer_set_contains if DECL_NAME is NULL.
2011
2012 2010-11-05  Ian Lance Taylor  <iant@google.com>
2013
2014         PR target/46084
2015         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2016         request enough additional space for alignment, and force alignment.
2017
2018 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
2019
2020         * config/i386/i386.c (legitimate_pic_address_disp_p):
2021         Handle UNSPEC_PCREL.
2022         (ix86_legitimate_address_p): Likewise.
2023         (legitimize_pic_address): Likewise.
2024         (output_pic_addr_const): Likewise.
2025         (ix86_delegitimize_address): Likewise.
2026         (ix86_find_base_term): Likewise.
2027         (memory_address_length): Likewise.
2028         (x86_output_mi_thunk): Handle special case x64
2029         for non local binding.
2030         * config/i386/i386.md (UNSPEC_PCREL): New.
2031         * config/i386/winnt.c (i386_pe_binds_local_p):
2032         Allow weak symbol for x64 windows with non-local binding.
2033
2034 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2035
2036         PR target/45670
2037         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2038         instead of EXPAND_NORMAL for base expansion.
2039
2040 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
2041
2042         * config.gcc: Support --with-fpmath=avx for x86.
2043         * config/i386/avxmath.h: New.
2044         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2045
2046 2010-11-05  Ian Lance Taylor  <iant@google.com>
2047
2048         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2049         * gengtype.c (walk_type): Don't recognize descbits option.
2050
2051 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
2052
2053         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2054         WORD_SWITCH_TAKES_ARG): Remove.
2055         * doc/options.texi (Args): Document.
2056         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2057         * doc/tm.texi: Regenerate.
2058         * opt-functions.awk (switch_flags): Handle Args.
2059         * opts-common.c: Update comment on tm.h include.
2060         (decode_cmdline_option): Handle options with multiple arguments.
2061         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2062         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2063         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2064         CL_COMMON): Update values.
2065         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2066         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2067         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2068         sectobjectsymbols, sectorder, segcreate, segprot): New.
2069
2070 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2071             Uros Bizjak  <ubizjak@gmail.com>
2072
2073         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2074         256bit AVX register is used.
2075         (ix86_expand_vector_move_misalign): Likewise.
2076         (ix86_expand_vector_move): Replace use_avx256_p with
2077         VALID_AVX256_REG_MODE.
2078
2079 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
2080
2081          PR target/44750
2082         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2083         change.  Set $@-warn.o to -Wno-error.
2084
2085         PR bootstrap/44756
2086         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2087         comparing it to a signed value.
2088
2089         PR middle-end/44766
2090         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2091         PR bootstrap/44770
2092         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2093         to i.
2094
2095         PR target/44754
2096         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2097         (m32c_function_arg).  Add comma between arguments two and three.
2098         (m32c_promote_prototypes): Remove declaration.
2099         (current_function_special_page_vector): Likewise.
2100         (m32c_regno_reg_class): Change return type to enum reg_class.
2101         (m32c_pushm_popm): Use add_reg_note.
2102         (m32c_push_rounding): Change return type to unsigned int.
2103         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2104         enum reload_type.
2105         (m32c_insert_attributes): Constify variable name.
2106         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2107         (m32c_prepare_shift): Remove variable lref.
2108         (m32c_expand_movcc): Remove variable cmp.
2109         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
2110         (m32c_compare_redundant): Remove variable op2.
2111         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
2112         (m32c_pragma_memregs): Assign the number to target_memregs.
2113         (m32c_pragma_address): Remove variable var_str.
2114         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
2115         enum reg_class.
2116         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2117         * config/m32c/bitops.md (andsi3): Add default case to switch.
2118         (iorsi3, xorsi3): Likewise.
2119         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
2120         * config/m32c/jump.md (call, call_value): Likewise.
2121         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
2122         (m32c_regno_reg_class): Likewise.
2123         (current_function_special_page_vector): Declare.
2124
2125 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2126
2127         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
2128
2129         PR tree-optimization/46099
2130         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
2131         if it is NULL and uid wasn't found in the hash table.  Just fold the
2132         result if it is NULL otherwise.  Insert other potentially needed
2133         stmts right before current stmt instead of on the entry edge.
2134         (struct elv_data): Add gsi and reset fields.
2135         (eliminate_local_variables_1): Adjust caller.  If take_address_of
2136         failed for debug stmt, set dta->reset and return.
2137         (eliminate_local_variables_stmt): Change STMT argument for GSI,
2138         pass GSI through to the callback, handle resetting of debug stmts.
2139         (eliminate_local_variables): Adjust caller.  Process debug stmts
2140         in second phase.
2141
2142         PR middle-end/43690
2143         * gimplify.c (gimplify_asm_expr): If a "m" input is a
2144         {pre,post}{in,de}crement, fail.
2145
2146         PR debug/46307
2147         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
2148         * tree-pretty-print.c (dump_generic_node): Likewise.
2149         (op_code_prio): Likewise.
2150         * cfgexpand.c (expand_debug_expr): Likewise.
2151
2152 2010-11-04  Paul Koning  <ni1d@arrl.net>
2153
2154         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
2155         constraints.
2156
2157 2010-11-04  Chao-ying Fu  <fu@mips.com>
2158
2159         * configure.ac: Test assembler support for DSP Rev1 mult.
2160         * configure: Regenerate.
2161         * config.in: Regenerate.
2162         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
2163         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
2164         (CODE_FOR_mips_multu): New define.
2165         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
2166         dspr2_32 to dsp_32.
2167         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
2168         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
2169         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
2170         New define_expand patterns.
2171         * config/mips/constraints.md (ka): Update the constraint to test
2172         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
2173         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
2174         mips_multu): Delete.
2175         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
2176         Change target constraint to "ka".
2177         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
2178         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
2179         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2180         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
2181         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2182         (<u>maddsidi4): Likewise.
2183         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
2184         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2185
2186 2010-11-04  Paul Koning  <ni1d@arrl.net>
2187
2188         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2189
2190 2010-11-04  Paul Koning  <ni1d@arrl.net>
2191
2192         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2193
2194 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
2195
2196         Fixed using the Objective-C 2.0 dot-syntax with class names.
2197         * c-parser.c (c_parser_next_token_starts_declspecs): In
2198         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
2199         (c_parser_next_token_starts_declaration): Same.
2200         (c_parser_postfix_expression): Parse the Objective-C 2.0
2201         dot-syntax with a class name.
2202
2203 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
2204
2205         * final.c (compute_alignments): Compute/free loop info all the time.
2206         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
2207         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
2208         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
2209         * config/rs6000/rs6000.c (cfgloop.h): Include.
2210         (can_override_loop_align): New.
2211         (rs6000_option_override_internal): Set it.
2212         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
2213         (rs6000_loop_align): New function.
2214         (rs6000_loop_align_max_skip): Likewise.
2215
2216 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2217
2218         PR driver/45703
2219         * collect2.c (main): Print --help output to stdout.  Do not
2220         exit right away, so ld --help is appended.  Add empty lines
2221         to separate output suitably.
2222
2223 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
2224
2225         PR tree-optimization/46233
2226         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2227         after calling analyze_function, not before.
2228
2229         PR target/46234
2230         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2231         instead of build_va_arg_indirect_ref.
2232         * config/spu/spu.c (spu_va_start): Likewise.
2233         * config/s390/s390.c (s390_va_start): Likewise.
2234
2235 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
2236
2237         PR middle-end/46292
2238         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2239         if the innermode is not vector mode, determine the mode of a subreg
2240         by using mode_for_size of inner_size.
2241
2242 2010-11-04  Richard Guenther  <rguenther@suse.de>
2243
2244         PR rtl-optimization/46183
2245         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2246         (execute_rtl_pre): Likewise.
2247         (execute_rtl_hoist): Likewise.
2248
2249 2010-11-04  Richard Guenther  <rguenther@suse.de>
2250
2251         PR tree-optimization/46068
2252         * ipa-split.c (consider_split): Remove gcc_unreachable.
2253
2254 2010-11-04  Richard Guenther  <rguenther@suse.de>
2255
2256         * tree-nested.c (build_addr): Use build_fold_addr_expr.
2257
2258 2010-11-04  Richard Guenther  <rguenther@suse.de>
2259
2260         PR tree-optimization/45991
2261         * gimplify.c (force_gimple_operand_1): Use the provded test
2262         function in the initial test.
2263
2264 2010-11-04  Jeff Law  <law@redhat.com>
2265
2266         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2267         of readonly memory equivalances for const/pure calls.
2268
2269 2010-11-04  Richard Guenther  <rguenther@suse.de>
2270
2271         PR tree-optimization/45733
2272         * tree-vect-stmts.c (reverse_vec_elements): Honor the
2273         permute builtins function return type.
2274
2275 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
2276
2277         PR middle-end/44765
2278         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2279         as an index, check it is not INVALID_REGNUM.
2280
2281         PR bootstrap/44756
2282         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2283         unsignedp.
2284         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2285
2286         PR bootstrap/44756
2287         * function.c (thread_prologue_and_epilogue_insns): Add
2288         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2289
2290         PR bootstrap/44756
2291         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2292
2293         PR target/44750
2294         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2295         (pdp11_preferred_reload_class): Rename class to rclass.
2296         (pdp11_preferred_output_reload_class): Likewise.
2297         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2298         ALL_COMPILERFLAGS .
2299         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2300
2301         PR bootstrap/44756
2302         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2303         iteration variables to enum machine_mode.
2304
2305         PR target/44751
2306         * config/h8300/h8300.c: Include df.h.
2307         (push, pop): Use add_reg_note.
2308         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
2309         (compute_a_shift_cc): Likewise.
2310         (expand_a_shift): Argument code has type enum rtx_code.
2311         (struct shift_insn): Member cc_valid has type enum attr_cc.
2312         (struct shift_info) <cc_inline, cc_special>: Likewise.
2313         enum attr_cc.
2314         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
2315         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2316
2317 2010-11-04  Ira Rosen  <irar@il.ibm.com>
2318
2319         PR tree-optimization/46213
2320         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
2321         MINUS_EXPR only if the first operand is reduction operand.
2322
2323 2010-11-04  Richard Guenther  <rguenther@suse.de>
2324             Richard Henderson  <rth@redhat.com>
2325
2326         * tree.def (FMA_EXPR): New tree code.
2327         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
2328         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
2329         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
2330         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
2331         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2332         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
2333         (execute_optimize_widening_mul): Call it.  Reorganize to allow
2334         dead stmt removal.  Move TODO flags ...
2335         (pass_optimize_widening_mul): ... here.
2336         * flag-types.h (enum fp_contract_mode): New enum.
2337         * common.opt (flag_fp_contract_mode): New variable.
2338         (-ffp-contract): New option.
2339         * opts.c (common_handle_option): Handle it.
2340         * doc/invoke.texi (-ffp-contract): Document.
2341         * tree.h (fold_fma): Declare.
2342         * builtins.c (fold_fma): New function.
2343         (fold_builtin_fma): Likewise.
2344         (fold_builtin_3): Call it for fma.
2345         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
2346         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
2347         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
2348         New expanders.
2349         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
2350         named patterns.
2351         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
2352         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
2353         (fms_optab, fnma_optab, fnms_optab): New defines.
2354         * gimplify.c (gimplify_expr): Handle binary truth expressions
2355         explicitly.  Handle FMA_EXPR.
2356         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
2357         operations.
2358
2359 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2360             Richard Guenther  <rguenther@suse.de>
2361
2362         * passes.c (init_optimization_passes): Move veclower after SSA.
2363         * tree-vect-generic.c (uniform_vector_p): New function.
2364         (expand_vector_operations_1): Handle conversion.
2365         (pass_lower_vector): Update SSA form.
2366
2367 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
2368
2369         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
2370         plugin capabilities.
2371         * configure: Regenerate.
2372
2373 2010-11-03  Xinliang David Li  <davidxl@google.com>
2374
2375         PR target/46200
2376         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
2377         Adjust cbase if the use stmt is after iv update.
2378
2379 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2380
2381         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2382
2383 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2384
2385         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
2386         comment.  Pass true to the last argument of output_stack_adjust.
2387
2388 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         PR target/46295
2391         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
2392         if 256bit AVX register is used.
2393
2394 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2395
2396         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
2397         xsmindp/xsmaxdp on VSX for single precision min/max.
2398         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
2399         (vsx_sminsf3): Ditto.
2400
2401 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2402
2403         * combine.c (try_combine): Fix formatting issues, improve comments and
2404         fix a pasto.
2405
2406 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2407
2408         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2409         of the result before building binary expressions.
2410
2411 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2412
2413         PR rtl-optimization/45865
2414         * Makefile.in (df-problems.o): Revert revision 164552.
2415         * basic-block.h (enum bb_flags): Likewise.
2416         * cfgcleanup.c (block_was_dirty): Likewise.
2417         (try_forward_edges): Likewise.
2418         (try_crossjump_bb): Likewise.
2419         (try_head_merge_bb): Likewise.
2420         (try_optimize_cfg): Likewise.
2421         (cleanup_cfg): Likewise.
2422         * df-core.c (df_set_bb_dirty): Likewise.
2423         * df-problems.c: Likewise.
2424         (df_simulate_find_uses): Likewise.
2425         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2426         (find_memory, find_memory_store): Likewise.
2427         (can_move_insns_across): Likewise.
2428         * df.h (can_move_insns_across): Likewise.
2429         * ifcvt.c (find_memory): Likewise.
2430         (dead_or_predicable): Likewise.
2431
2432 2010-11-03  Richard Guenther  <rguenther@suse.de>
2433
2434         PR middle-end/46288
2435         * predict.c (strip_predict_hints): Simply DCE builtin expect if
2436         the result is unused.
2437
2438 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2439
2440         PR tree-optimization/46009
2441         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2442         cond_if_else_store_replacement if bb1 and bb2 have the same
2443         single successor.
2444         (cond_store_replacement): Use gimple_assign_single_p, don't
2445         check if rhs is SSA_NAME or invariant.  Call release_defs for
2446         assign.
2447         (cond_if_else_store_replacement): New function.
2448
2449 2010-11-03  Richard Guenther  <rguenther@suse.de>
2450
2451         * opts.c (finish_options): Properly check for all WHOPR
2452         flags before complaining about -flto-partition.
2453
2454 2010-11-04  Alan Modra  <amodra@gmail.com>
2455
2456         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2457         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2458         TARGET_SECURE_PLT.
2459         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2460         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2461         on input, "r" on output.
2462
2463 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
2464
2465         Implemented -fobjc-std=objc1 flag.
2466         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2467         option.
2468         * doc/standards.texi (Standards): Updated the section on
2469         Objective-C; mention support for Objective-C 2.0 features and the
2470         new -fstd-objc=objc1 flag to disable them.
2471
2472 2010-11-03  Richard Guenther  <rguenther@suse.de>
2473
2474         PR middle-end/46241
2475         * dwarf2out.c (scope_die_for): Properly detect global scope.
2476
2477 2010-11-03  Richard Guenther  <rguenther@suse.de>
2478
2479         PR tree-optimization/46190
2480         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2481         Properly compute peel iterations.
2482
2483 2010-11-03  Richard Guenther  <rguenther@suse.de>
2484
2485         PR tree-optimization/46286
2486         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2487         re-allocated vector data.
2488
2489 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2490
2491         PR target/46285
2492         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2493         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2494         is completed.
2495
2496 2010-11-03  Richard Guenther  <rguenther@suse.de>
2497
2498         PR tree-optimization/46217
2499         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2500         flag matches.
2501         (execute_update_addresses_taken): Likewise.
2502
2503 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2504
2505         PR bootstrap/44335
2506         * targhooks.c (targhook_words_big_endian): New function.
2507         (targhook_float_words_big_endian): Likewise.
2508         * targhooks.h (targhook_words_big_endian): Declare.
2509         (targhook_float_words_big_endian): Likewise.
2510         * target.def (words_big_endian, float_words_big_endian): New hooks.
2511
2512 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2513
2514         PR tree-optimization/46165
2515         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
2516         a normal call into noreturn call.
2517
2518 2010-11-03  Richard Guenther  <rguenther@suse.de>
2519
2520         PR middle-end/46251
2521         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
2522         not INDIRECT_REFs.
2523
2524 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2525
2526         PR tree-optimization/46107
2527         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
2528         if cfg_hook_duplicate_loop_to_header_edge failed.
2529
2530 2010-11-03  Ian Lance Taylor  <iant@google.com>
2531
2532         PR lto/46273
2533         * config.gcc: Don't set lto_binary_reader.
2534         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2535         (Configuration): Mention --disable-lto.  Remove --with-libelf
2536         paragraph.
2537
2538 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2539
2540         PR debug/46252
2541         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
2542         prev_real_insn.
2543         * gcse.c (insert_insn_end_basic_block): Likewise.
2544
2545         PR rtl-optimization/46034
2546         PR rtl-optimization/46212
2547         PR rtl-optimization/46248
2548         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
2549         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
2550         before i0dest -> i0src substitution and pass 1 instead of 0 as last
2551         argument to subst on i2pat.
2552
2553 2010-11-02  Ian Lance Taylor  <iant@google.com>
2554
2555         * configure.ac: Use AC_SYS_LARGEFILE.
2556         * configure: Rebuild.
2557         * config.in: Rebuild.
2558
2559 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2560
2561         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
2562         fold_convert.
2563         * c-typeck.c (build_function_call_vec): Likewise.
2564         * cfgexpand.c (expand_debug_expr): Likewise.
2565         * cgraphunit.c (assemble_thunk): Likewise.
2566         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
2567         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
2568         (fold_binary_loc, fold_ternary_loc): Likewise.
2569         * gimple-fold.c (get_symbol_constant_value): Likewise.
2570         * gimple-low.c (lower_builtin_setjmp): Likewise.
2571         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
2572         * gimplify.c (gimplify_init_constructor): Likewise.
2573         * lambda.h (build_linear_expr): Likewise.
2574         * omp-low.c (omp_reduction_init): Likewise.
2575         * tree-inline.c (remap_ssa_name): Likewise.
2576         * tree-object-size.c (compute_object_sizes): Likewise.
2577         * tree-sra.c (init_subtree_with_zero): Likewise.
2578         (sra_ipa_modify_assign): Likewise.
2579         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
2580         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
2581         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
2582         (undistribute_ops_list): Likewise.
2583         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2584         * tree-vect-stmts.c (vectorizable_call): Likewise.
2585         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
2586         (build_zero_cst): Handle more cases directly.  Update comment.
2587
2588 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2589
2590         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
2591         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
2592
2593         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
2594         and call ix86_split_call_vzeroupper instead of
2595         ix86_split_call_pop_vzeroupper.
2596         (*call_pop_1_vzeroupper): Likewise.
2597         (*sibcall_pop_1_vzeroupper): Likewise.
2598         (*call_value_pop_0_vzeroupper): Likewise.
2599         (*call_value_pop_1_vzeroupper): Likewise.
2600         (*sibcall_value_pop_1_vzeroupper): Likewise.
2601
2602 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2603
2604         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
2605
2606 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2607
2608         * basic-block.h (insert_insn_end_bb_new): Delete.
2609         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
2610
2611 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
2612             H.J. Lu  <hongjiu.lu@intel.com>
2613
2614         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
2615         (ix86_split_call_pop_vzeroupper): Likewise.
2616
2617         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
2618         (ix86_expand_call): Conditionally decorate calls with
2619         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
2620         (ix86_split_call_vzeroupper): New.
2621         (ix86_split_call_pop_vzeroupper): Likewise.
2622
2623         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
2624         (*call_pop_0_vzeroupper): New insn_and_split pattern.
2625         (*call_pop_1_vzeroupper): Likewise.
2626         (*sibcall_pop_1_vzeroupper): Likewise.
2627         (*call_0_vzeroupper): Likewise.
2628         (*call_1_vzeroupper): Likewise.
2629         (*sibcall_1_vzeroupper): Likewise.
2630         (*call_1_rex64_vzeroupper): Likewise.
2631         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
2632         (*call_1_rex64_large_vzeroupper): Likewise.
2633         (*sibcall_1_rex64_vzeroupper): Likewise.
2634         (*call_value_pop_0_vzeroupper): Likewise.
2635         (*call_value_pop_1_vzeroupper): Likewise.
2636         (*sibcall_value_pop_1_vzeroupper): Likewise.
2637         (*call_value_0_vzeroupper): Likewise.
2638         (*call_value_0_rex64_vzeroupper): Likewise.
2639         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
2640         (*call_value_1_vzeroupper): Likewise.
2641         (*sibcall_value_1_vzeroupper): Likewise.
2642         (*call_value_1_rex64_vzeroupper): Likewise.
2643         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
2644         (*call_value_1_rex64_large_vzeroupper): Likewise.
2645         (*sibcall_value_1_rex64_vzeroupper): Likewise.
2646
2647 2010-11-02  Ian Lance Taylor  <iant@google.com>
2648
2649         PR lto/46273
2650         * config.gcc: Revert last patch: set lto_binary_reader.
2651
2652 2010-11-02  Richard Guenther  <rguenther@suse.de>
2653
2654         PR tree-optimization/46149
2655         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
2656         non-indirect MEM_REF variants.
2657
2658 2010-11-02  Richard Guenther  <rguenther@suse.de>
2659
2660         PR tree-optimization/46216
2661         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2662         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
2663
2664 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2665
2666         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
2667         (*-*-osf*): Likewise.
2668         * configure: Regenerate.
2669
2670 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2671
2672         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
2673         for Intel Core 2 and Core i7.
2674
2675 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2676
2677         Model decoder of Core 2/i7 for multipass scheduling.
2678
2679         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
2680         New type to hold target-specific data for multipass scheduling.
2681         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2682         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
2683         Core 2/i7.
2684         (core2i7_secondary_decoder_max_insn_size,)
2685         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
2686         New static variables.
2687         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
2688         ([_]ix86_first_cycle_multipass_data): New static variable.
2689         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
2690         Implement targetm.sched hooks.
2691         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
2692         of ...
2693         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
2694         Implement new targetm.sched hooks.
2695         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
2696         targetm.sched hook to install multipass scheduling hooks on demand.
2697
2698         * doc/tm.texi.in: Document new targetm.sched hooks.
2699         * doc/tm.texi: Regenerate.
2700
2701         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2702         (first_cycle_multipass_data_t): New typedef.
2703         (struct choice_entry: target_data): New field.
2704         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
2705         to allow target model restrictions not represented in DFA.
2706         (choose_ready, schedule_block): Update.
2707         (sched_extend_ready_list, sched_finish_ready_list): Call new target
2708         hooks to initialize target-specific data for multipass scheduling.
2709         * sched-int.h (max_issue): Update declaration.
2710         * sel-sched.c (choose_best_insn): Update.
2711         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
2712         (first_cycle_multipass_{init, fini}): Define and document new
2713         targetm.sched hooks.
2714
2715 2010-11-02  Richard Guenther  <rguenther@suse.de>
2716
2717         PR tree-optimization/46184
2718         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
2719         input vector type from the reduction operand as well.
2720
2721 2010-11-02  Richard Guenther  <rguenther@suse.de>
2722
2723         PR tree-optimization/46177
2724         * tree-loop-distribution.c (prop_phis): Use
2725         mark_virtual_phi_result_for_renaming.
2726
2727 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2728
2729         PR middle-end/46120
2730         * tree.c (get_binfo_at_offset): Bail out on artificial
2731         fields.  Identify primary bases according to their offsets.
2732
2733 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2734
2735         PR tree-optimization/45875
2736         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
2737         (gimple_get_relevant_ref_binfo): Detect primary bases according to
2738         their field offset.
2739
2740 2010-11-02  Ian Lance Taylor  <iant@google.com>
2741
2742         * doc/install.texi (Configuration): Note in two places that Java
2743         is not enabled by default.
2744
2745 2010-11-02  Ian Lance Taylor  <iant@google.com>
2746
2747         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2748         (Configuration): Mention --disable-lto.  Remove --with-libelf
2749         paragraph.
2750
2751 2010-11-02  Ian Lance Taylor  <iant@google.com>
2752
2753         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
2754         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
2755         LIBELFINC.  Remove HAVE_libelf.
2756         * config.gcc: Don't set lto_binary_reader.
2757         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
2758         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
2759         (LIBS): Remove $(LIBELFLIBS).
2760         (INCLUDES): Remove $(LIBELFINC).
2761         * configure: Rebuild.
2762         * config.in: Rebuild.
2763
2764 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2765
2766         * config/microblaze/microblaze-protos.h (function_arg): Delete.
2767         (function_arg_advance): Delete.
2768         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
2769         (FUNCTION_ARG): Delete.
2770         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
2771         (microblaze_function_arg_advance): ...this.  Make static.  Take a
2772         const_tree and a bool.
2773         (function-arg): Rename to...
2774         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
2775         and a bool.
2776         (microblaze_expand_prologue): Call targetm.calls.function_arg and
2777         targetm.calls.function_arg_advance.
2778         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2779
2780 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2781
2782         Merge from FSF "apple/trunk" branch.
2783
2784         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
2785         * config/darwin.opt: .. to here.
2786         (matt-stubs): New option.
2787         * config/i386/darwin.opt: Delete.
2788         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
2789         (MACHO_DYNAMIC_NO_PIC_P): New.
2790         (MACHOPIC_INDIRECT): New.
2791         (MACHOPIC_PURE): New.
2792         * config/i386/darwin.h (DARWIN_X86) Define to 1.
2793         (MACHOPIC_ATT_STUB): New.
2794         (CC1_SPEC): Do not remove mdynamic-no-pic.
2795         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2796         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2797         (FUNCTION_PROFILER): Correct over-length line.
2798         (SUBTARGET_OVERRIDE_OPTIONS): New.
2799         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2800         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
2801         (legitimate_constant_p): Handle mdynamic-no-pic.
2802         (ix86_legitimate_address_p): Likewise.
2803         (ix86_legitimize_address): Likewise.
2804         (ix86_expand_move): Likewise.
2805         (machopic_output_stub): Update for ATT-style stubs and
2806         mdynamic-no-pic.
2807         * config/darwin-protos.h (machopic_symbol_defined_p): New.
2808         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
2809         TARGET_DYNAMIC_NO_PIC: Remove.
2810         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2811         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2812         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
2813         Remove handling of mdynamic-no-pic.
2814         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
2815         Define if required.
2816         (machopic_symbol_defined_p): Do not try to use current_function_decl
2817         when generating _get_pc thunks within stubs.
2818         (machopic_indirect_data_reference): Rework for direct conditionals
2819         rather than #ifdefs, add x86 mdynamic-no-pic
2820         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
2821         defined value.
2822         (darwin_override_options): Handle mdynamic-no-pic here.
2823         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
2824         (machopic_lazy_symbol_ptr3_section): New.
2825         (machopic_picsymbol_stub2_section): New.
2826         (machopic_picsymbol_stub3_section): New.
2827         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
2828         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2829         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2830         Moved common definition from x86 and rs6000.
2831         (MACHO_DYNAMIC_NO_PIC_P): Override value.
2832         (MACHOPIC_INDIRECT): Likewise.
2833         (MACHOPIC_PURE): Likewise.
2834         * config.gcc (x86-darwin-*): Remove darwin.opt.
2835
2836 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
2837
2838         PR debug/46255
2839         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
2840         instead of gsi_last_bb.
2841
2842 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2843             Maxim Kuvyrkov  <maxim@codesourcery.com>
2844
2845         * config/i386/i386.c (cpu_names): Add "corei7".
2846         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
2847
2848 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2849             Maxim Kuvyrkov  <maxim@codesourcery.com>
2850
2851         Tune alignment for Intel Core i7
2852
2853         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
2854         (enum processor_type): Update comment.  Add entries for Core i7.
2855         * config/i386-c.c (ix86_target_macros_internal): Update.
2856         * config/i386.c (m_COREI7{_32,_64}): New macros.
2857         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
2858         (processor_target_table): Tune alignment for Core i7.
2859         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
2860
2861         * doc/invoke.texi: Document "corei7" option value.
2862
2863 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
2864             Maxim Kuvyrkov  <maxim@codesourcery.com>
2865             H.J. Lu  <hjl.tools@gmail.com>
2866
2867         Basic support for Intel Core i7
2868
2869         * i386.c (ix86_option_override_internal): Add entry for corei7, use
2870         generic tuning.  Use generic32 when compiling for 32-bit ABI.
2871
2872 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2873
2874         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
2875         sections and call darwin_asm_dwarf_section() to handle them.
2876         (darwin_asm_dwarf_section): New.
2877         (darwin_file_start): Remove code emitting dwarf section symbols.
2878
2879 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
2880
2881         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
2882         explicitly disable stack protection when building libgcc.
2883         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
2884
2885 2010-11-01  Jason Merrill  <jason@redhat.com>
2886
2887         * fold-const.c (fold_indirect_ref_1): Handle folding
2888         POINTER_PLUS_EXPR to ARRAY_REF.
2889
2890 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
2891
2892         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
2893         (sh_delegitimize_address): New function.
2894
2895 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2896
2897         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
2898         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
2899         (CC1_SPEC): Don't handle -target.
2900         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
2901         options.
2902         * config/darwin.opt (Zallowable_client, Zbundle_loader,
2903         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
2904         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
2905         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
2906         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
2907         Zweak_reference_mismatches, client_name, compatibility_version,
2908         current_version, dylinker_install_name, pagezero_size,
2909         read_only_relocs, seg1addr, segs_read_only_addr,
2910         segs_read_write_addr, sub_library, sub_umbrella): New.
2911         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
2912         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
2913         * config/freebsd.opt: New.
2914         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
2915         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
2916         * config/rpath.opt: New.
2917         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
2918         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
2919         Use rpath.opt.
2920
2921 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
2922
2923         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
2924         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
2925         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
2926         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
2927         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
2928         Document that options in .opt files do not need to be included.
2929         * doc/tm.texi: Regenerate.
2930         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
2931         * opts-common.c: Update comment on tm.h include.
2932         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
2933         * system.h (SWITCH_TAKES_ARG): Poison.
2934         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
2935         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
2936         in darwin.opt.
2937         (LINK_COMMAND_SPEC_A): Don't include %{x}.
2938         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2939         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
2940         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
2941         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2942         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
2943         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
2944         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
2945         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
2946         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2947         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
2948         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
2949         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
2950         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
2951         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
2952         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
2953         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
2954         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
2955         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
2956         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
2957         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
2958         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
2959         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
2960         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
2961
2962 2010-11-01  Paul Koning  <ni1d@arrl.net>
2963
2964         * config/pdp11/pdp11.md: Use iterators.
2965         (addqi3, subqi3, iorsi3, xorsi3): Delete.
2966
2967 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
2968
2969         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
2970         GCC_INSN_FLAGS_H.
2971         * libgcov.c (__gcov_indirect_call_profiler): Set
2972         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
2973         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
2974
2975 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2976
2977         PR tree-optimization/46259
2978
2979         Revert:
2980         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
2981         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
2982         build_vector_from_val.
2983
2984 2010-11-01  DJ Delorie  <dj@redhat.com>
2985
2986         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
2987         as well as an assertion.
2988
2989 2010-11-01  Paul Koning  <ni1d@arrl.net>
2990
2991         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
2992         complex modes in memory.
2993
2994 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
2995
2996         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
2997
2998 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
2999
3000         PR target/45250
3001         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
3002         (cfa_base_offset): New variable.
3003         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
3004         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
3005         is NULL.
3006         (vt_init_cfa_base): Initialize cfa_base_offset.
3007
3008 2010-11-01  Alan Modra  <amodra@gmail.com>
3009
3010         PR target/46030
3011         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
3012         and savres_strategy.
3013         (stack_info): New file scope var.
3014         (rs6000_init_machine_status): Init stack_info.
3015         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
3016         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
3017         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
3018         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
3019         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
3020         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
3021         (rs6000_savres_strategy): Rewrite.
3022         (rs6000_stack_info): Use "stack_info" in place of local "info".
3023         Return cached stack info when reload_completed unless ENABLE_CHECKING
3024         in which case confirm newly calculated stack info matches old info.
3025         Delay calculation of lr_save_p, set it for out of line gp save/restore
3026         as well as fp.  Call rs6000_savres_strategy from here..
3027         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
3028         (rs6000_output_function_prologue): Use info->savres_strategy to
3029         determine whether fp save/restore externs need to be emitted.
3030
3031 2010-10-31  Jason Merrill  <jason@redhat.com>
3032
3033         * tree.h (EXPR_LOC_OR_HERE): New macro.
3034         * builtins.c (c_strlen): Use it.
3035         * c-decl.c (build_enumerator): Likewise.
3036         * gimplify.c (internal_get_tmp_var): Likewise.
3037         (shortcut_cond_expr): Likewise.
3038         (gimplify_one_sizepos): Likewise.
3039
3040 2010-10-31  Richard Henderson  <rth@redhat.com>
3041
3042         * config/i386/cygming.h (TARGET_SEH): New.
3043         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
3044         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
3045         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
3046         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
3047         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
3048         (ASM_DECLARE_FUNCTION_SIZE): New.
3049         * config/i386/i386-protos.h: Update.
3050         * config/i386/i386.c (ix86_option_override_internal): Enable
3051         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
3052         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
3053         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
3054         (ix86_compute_frame_layout): For SEH, disable
3055         use_fast_prologue_epilogue, move frame pointer to the end of
3056         the frame.  Initialize hfp_save_offset.
3057         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
3058         at end of prologue for SEH.
3059         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
3060         emit blockage at beginning of epilogue.
3061         (ix86_expand_binary_operator): After reload, emit LEA if needed.
3062         (ix86_output_call_insn): New.
3063         * config/i386/i386.h (TARGET_SEH): New.
3064         (struct machine_function): Add member seh.
3065         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
3066         * config/i386/winnt.c (struct seh_frame_state): New.
3067         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
3068         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
3069         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
3070         i386_pe_start_function, i386_pe_end_function): New.
3071
3072         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
3073         as CFA_STORE in rules 12 and 13.
3074
3075 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
3076
3077         PR tree-optimization/46142
3078         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
3079         accommodate third function argument.
3080
3081 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3082
3083         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
3084
3085 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3086
3087         * fold-const.c (build_zero_vector): Use build_vector_from_val.
3088         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3089         (get_initial_def_for_reduction): Likewise.
3090         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3091         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
3092         * tree.c (build_one_cst): Likewise.
3093         (build_vector_from_val): Use types_compatible_p for assert.
3094
3095 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3096
3097         * emit-rtl.c (mark_used_flags): New function.
3098         (set_used_flags, reset_used_flags): Call it.
3099
3100 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
3101
3102         PR middle-end/44569
3103         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
3104         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
3105
3106 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3107
3108         PR target/46195
3109         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
3110         (ix86_compat_aligned_value_p): This.
3111         (ix86_old_function_arg_boundary): Renamed to ...
3112         (ix86_compat_function_arg_boundary): This.  Updated.
3113         (ix86_contains_aligned_value_p): New.
3114         (ix86_function_arg_boundary): Align long double parameters on
3115         stack to 4byte in 32bit.
3116
3117 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
3118
3119         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
3120         * c-parser.c (c_parser_objc_at_property_declaration): Removed
3121         parsing of RID_COPIES and RID_IVAR.  Updated call to
3122         objc_add_property_declaration.
3123         * c-typecheck.c (build_component_ref): Call
3124         objc_maybe_build_component_ref instead of objc_build_setter_call.
3125         Use objc_is_property_ref to improve Objective-C checks.
3126         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
3127         of objc_build_getter_call.
3128
3129 2010-10-29  Paul Koning  <ni1d@arrl.net>
3130
3131         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3132         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
3133         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
3134         (REG_OK_STRICT): Move description.
3135
3136 2010-10-29  Paul Koning  <ni1d@arrl.net>
3137
3138         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
3139
3140 2010-10-29  Paul Koning  <ni1d@arrl.net>
3141
3142         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
3143
3144 2010-10-29  Paul Koning  <ni1d@arrl.net>
3145
3146         PR/41822
3147         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
3148
3149 2010-10-29  Richard Henderson  <rth@redhat.com>
3150
3151         PR rtl-opt/46226
3152         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
3153         for asm goto.
3154
3155 2010-10-29  Paul Koning  <ni1d@arrl.net>
3156
3157         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
3158         register to register move.
3159
3160 2010-10-29  Paul Koning  <ni1d@arrl.net>
3161
3162         * config/pdp11/pdp11.c (print_operand_address): Correct handling
3163         of integer constant addresses, delete vax-only logic.
3164
3165 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3166
3167         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
3168         a conditional expression.
3169
3170 2010-10-29  Paul Koning  <ni1d@arrl.net>
3171
3172         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
3173         instruction encoding.
3174
3175 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3176             Andrew Pinski  <pinskia@gmail.com>
3177
3178         * tree.h (build_vector_from_val): Declare.
3179         * tree.c (build_vector_from_val): New function.
3180         * c-typeck.c (build_binary_op): Handle vector shifting.
3181         * doc/extend.texi: Description of the vector shifting operation.
3182
3183 2010-10-29  Paul Koning  <pkoning@equallogic.com>
3184
3185         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
3186         pdp11_secondary_memory_needed): Declare.
3187         * config/pdp11/predicates.md (float_operand): New predicate.
3188         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
3189         (cbranchdf4, movdf): Change predicate.
3190         (movsf): Handle FPU register case.
3191         (truncdfsf2, extendsfdf2): Add FPU register case.
3192         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
3193         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
3194         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3195         (pdp11_register_move_cost): Update cost matrix.
3196         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
3197         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
3198         pdp11_secondary_memory_needed): New function.
3199         (pdp11_return_in_memory): Add other float types.
3200         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
3201         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
3202         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
3203         REGISTER_MOVE_COST): Delete.
3204         (BASE_RETURN_VALUE_REG): Add other float types.
3205
3206 2010-10-29  Nick Clifton  <nickc@redhat.com>
3207
3208         * doc/invoke.texi: Document -mam34 and -mtune options.
3209         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
3210         (mn10300_tune_cpu): New variable.
3211         (mn10300_handle_option): Handle -mam34 and -mtune options.
3212         (mn10300_option_override): Convert tune string into tune cpu variable.
3213         (mn10300_legitimate_constant_p): Delete unused local variable.
3214         (is_load_insn): New function.
3215         (is_store_insn): New function.
3216         (mn10300_adjust_schedule_cost): New function.
3217         (TARGET_SCHED_ADJUST_COST): Define.
3218         * config/mn10300/mn10300.opt (mam34): New option.
3219         (mtune): New option.
3220         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
3221         (enum processor_type): Add AM34.
3222         (TARGET_AM34): Define.
3223         * config/mn10300/mn10300.md (attr cpu): Add am34.
3224         Add pipeline description.
3225         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
3226         Remove unneeded alternatives.  Add timing attribute.
3227         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
3228         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
3229         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
3230         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
3231         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
3232         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
3233         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
3234         float_conditional_branch, jump, indirect_jump, tablejump,
3235         call_internal, call_value_internal, zero_extendqisi2_am33,
3236         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
3237         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
3238         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
3239         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
3240         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
3241         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
3242         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
3243         return_internal_regs, store_movm, return, call_next_insn):
3244         Add timing attribute.
3245         (am33_subsi3): Add missing clobber of CC_REG.
3246         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
3247         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
3248         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
3249         extendqisi2): Fix predicates.
3250         (call_internal, call_internal_value): Separate alternatives.
3251         * config/mn10300/t-mn10300: Add AM34 multilib.
3252
3253 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
3254
3255         * config/sh/sh.c (sh_promote_function_mode): Use
3256         default_promote_function_mode if !sh_promote_prototypes.
3257
3258 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
3259
3260         * recog.c (split_all_insns): Remove dead code.
3261
3262 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3263
3264         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3265
3266 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3267
3268         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3269         (FUNCTION_ARG_ADVANCE): Delete.
3270         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
3271         functions.
3272         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
3273         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3274         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3275
3276 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3277
3278         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
3279         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3280         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3281         Take a const_tree and a bool.
3282         (mcore_function_arg_advance): New function.
3283         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3284
3285 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3286
3287         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
3288         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3289         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3290         Take a const_tree and a bool.
3291         (mcore_function_arg_advance): New function.
3292         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3293
3294 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3295
3296         * config/h8300/h8300-protos.h (function_arg): Delete.
3297         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3298         * config/h8300/h8300.c (function_arg): Rename to...
3299         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
3300         a bool.
3301         (h8300_function_arg_advance): New function.
3302         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3303
3304 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3305
3306         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
3307         to...
3308         * config/arc/arc.c (arc_function_arg): ...here and...
3309         (arc_function_arg_advance): ...here.  New functions.
3310         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3311
3312 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3313
3314         * config/crx/crx-protos.h (crx_function_arg): Delete.
3315         (crx_function_arg_advance): Delete.
3316         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3317         * config/crx/crx.c (crx_function_arg): Make static.  Take a
3318         const_tree and a bool.
3319         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
3320         (enough_regs_for_param): Take a const_tree.
3321         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3322
3323 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3324
3325         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
3326         (m68hc11_function_arg_advance): Delete.
3327         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
3328         (FUNCTION_ARG_ADVANCE): Delete.
3329         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
3330         Take a const_tree and a bool.
3331         (m68hc11_function_arg_advance): Likewise.
3332         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3333
3334 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3335
3336         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
3337         (xstormy16_function_arg_advance): Delete.
3338         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
3339         (FUNCTION_ARG_ADVANCE): Delete.
3340         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
3341         Take a const_tree and a bool.
3342         (xstormy16_function_arg_advance): Likewise.  Return void, updating
3343         the CUM parameter instead.
3344         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3345
3346 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3347
3348         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
3349         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3350         (MOXIE_FUNCTION_ARG_SIZE): Move to...
3351         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
3352         (moxie_function_arg): Make static.  Take a const_tree and a bool.
3353         (moxie_function_arg_advance): New function.
3354         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3355
3356 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3357
3358         * config/mn10300/mn10300-protos.h (function_arg): Delete.
3359         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
3360         (FUNCTION_ARG_ADVANCE): Delete.
3361         * config/mn10300/mn10300.c (function_arg): Rename to...
3362         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
3363         and a bool.
3364         (mn10300_function_arg_advance): New function.
3365         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3366
3367 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3368
3369         * config/iq2000/iq2000-protos.h (function_arg): Delete.
3370         (function_arg_advance): Delete.
3371         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3372         * config/iq2000/iq2000.c (function_arg): Rename to...
3373         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
3374         a bool.
3375         (function_arg_advance): Rename to...
3376         (iq2000_function_arg_advance): ...this.  Make static.  Take a
3377         const_tree and a bool.
3378         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
3379         iq2000_function_arg.
3380         (iq2000_pass_by_reference): Call iq2000_function_arg).
3381         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3382
3383 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3384
3385         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
3386         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3387         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
3388         const_tree.
3389         (fr30_function_arg): New function.
3390         (fr30_function_arg_advance): New function.
3391         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3392
3393 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3394
3395         * config/frv/frv-protos.h (frv_function_arg): Delete.
3396         (frv_function_arg_advance): Delete.
3397         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3398         * config/frv/frv.c (frv_function_arg): Rename to...
3399         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
3400         (frv_function_arg, frv_function_incoming_arg): New functions.
3401         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
3402         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3403         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3404
3405 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
3406
3407         PR target/46153
3408         * config/i386/sse.md (sse_movhlps_exp): Use destination
3409         returned from ix86_fixup_binary_operands to expand insn.
3410         (sse_movlhps_exp): Ditto.
3411         (sse_loadhps_exp): Ditto.
3412         (sse_loadlps_exp): Ditto.
3413         (sse2_loadhpd_exp): Ditto.
3414         (sse2_loadlpd_exp): Ditto.
3415
3416 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
3417
3418         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
3419         constants in thumb2.
3420
3421 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3422
3423         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
3424         arithmetics in masking operations.
3425         (contains_muldiv): Likewise.
3426         (try_combine): Likewise.
3427         (find_split_point): Likewise.
3428         (combine_simplify_rtx): Likewise.
3429         (simplify_if_then_else): Likewise.
3430         (simplify_set): Likewise.
3431         (expand_compound_operation): Likewise.
3432         (expand_field_assignment): Likewise.
3433         (make_extraction): Likewise.
3434         (extract_left_shift): Likewise.
3435         (make_compound_operation): Likewise.
3436         (force_to_mode): Likewise.
3437         (make_field_assignment): Likewise.
3438         (reg_nonzero_bits_for_combine): Likewise.
3439         (simplify_shift_const_1): Likewise.
3440         (simplify_comparison): Likewise.
3441
3442 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
3443
3444         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
3445         (ia64_function_arg_advance): Delete.
3446         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3447         (FUNCTION_ARG_ADVANCE): Delete.
3448         * config/ia64/ia64.c (ia64_function_arg): Rename to...
3449         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
3450         bool arguments.
3451         (ia64_function_arg, ia64_function_incoming_arg): New functions.
3452         (ia64_function_arg_advance): Make static.  Take a const_tree and
3453         a bool.
3454         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3455         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3456
3457 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
3458
3459         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
3460         (TARGET_GET_RAW_ARG_MODE): New.
3461         * doc/tm.texi: Regenerate.
3462         * target.def (get_raw_result_mode): New.
3463         (get_raw_arg_mode): New.
3464         * targhooks.c (default_get_reg_raw_mode): New.
3465         * targhooks.h (default_get_reg_raw_mode): New.
3466         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
3467         (apply_result_size): Ditto.
3468         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
3469         (TARGET_GET_RAW_RESULT_MODE): Define.
3470         (TARGET_GET_RAW_ARG_MODE): Ditto.
3471
3472 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3473
3474         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
3475         for newer Solaris 10 release.
3476         (sparc_fallback_frame_state): Likewise.
3477
3478 2010-10-27  Jason Merrill  <jason@redhat.com>
3479
3480         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
3481         variables sooner.
3482
3483 2010-10-27  Jie Zhang  <jie@codesourcery.com>
3484             Maxim Kuvyrkov  <maxim@codesourcery.com>
3485
3486         * haifa-sched.c (ISSUE_POINTS): Remove.
3487         (max_issue): Don't issue more than issue_rate instructions.
3488
3489 2010-10-27  Ian Lance Taylor  <iant@google.com>
3490
3491         PR target/46197
3492         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
3493         (split_stack_return): Replace UNSPEC_STACK_CHECK with
3494         UNSPECV_SPLIT_STACK_RETURN.
3495
3496 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
3497
3498         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
3499
3500         * config/i386/i386.c (block_info): New.
3501         (BLOCK_INFO): Likewise.
3502         (call_avx256_state): Likewise.
3503         (check_avx256_stores): Likewise.
3504         (move_or_delete_vzeroupper_2): Likewise.
3505         (move_or_delete_vzeroupper_1): Likewise.
3506         (move_or_delete_vzeroupper): Likewise.
3507         (use_avx256_p): Likewise.
3508         (function_pass_avx256_p): Likewise.
3509         (flag_opts): Add -mvzeroupper.
3510         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
3511         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
3512         is disabled.
3513         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
3514         generate vzeroupper.
3515         (init_cumulative_args): Add an int to indicate caller.  Set
3516         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
3517         based on return type.
3518         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
3519         caller_pass_avx256_p based on argument type.
3520         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
3521         is used, but not returned by caller.
3522         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
3523         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
3524         is used.
3525         (ix86_minimum_alignment): Likewise.
3526         (ix86_expand_special_args_builtin): Set target to
3527         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
3528         (ix86_reorg): Run the vzeroupper optimization if needed.
3529
3530         * config/i386/i386.h (ix86_args): Add caller.
3531         (INIT_CUMULATIVE_ARGS): Updated.
3532         (machine_function): Add use_vzeroupper_p, use_avx256_p,
3533         caller_pass_avx256_p, caller_return_avx256_p,
3534         callee_pass_avx256_p and callee_return_avx256_p.
3535
3536         * config/i386/i386.opt (-mvzeroupper): New.
3537
3538         * config/i386/predicates.md (vzeroupper_operation): Removed.
3539
3540         * config/i386/sse.md (avx_vzeroupper): Removed.
3541         (*avx_vzeroupper): Removed.
3542         (avx_vzeroupper): New.
3543
3544         * doc/invoke.texi: Document -mvzeroupper.
3545
3546 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3547
3548         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
3549         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
3550         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
3551
3552 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3553             Olivier Hainque  <hainque@adacore.com>
3554
3555         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
3556         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
3557         fs->signal_frame instead.
3558
3559 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3560
3561         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
3562         parsing of RID_COPIES and RID_IVAR.
3563
3564 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3565
3566         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
3567         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
3568         Do not use objc_set_property_attr, but use local variables
3569         instead.  Detect repeated usage of setter, getter and ivar
3570         attributes.  Improved error processing when a setter name does not
3571         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
3572         that the token is a keyword.  Updated call to
3573         objc_add_property_declaration.
3574
3575 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3576
3577         * c-parser.c (c_parser_objc_at_property): Renamed to
3578         c_parser_objc_at_property_declaration.  Updated calls to
3579         objc_add_property_variable, now objc_add_property_declaration.
3580         Code rewritten to be much more robust in recovering from syntax
3581         errors.  Added comments.
3582         (c_parser_objc_property_attrlist): Removed.
3583         (c_parser_external_declaration): Updated calls to
3584         c_parser_objc_at_property, now
3585         c_parser_objc_at_property_declaration.
3586         (c_parser_objc_methodprotolist): Same change.
3587
3588 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3589
3590         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
3591
3592 2010-10-26  Jan Hubicka  <jh@suse.cz>
3593
3594         * ipa.c (process_references): Enqueue all referenced nodes;
3595         mark as reachable only non-external nodes.
3596         (cgraph_remove_unreachable_nodes): All referenced nodes should
3597         be enqueued; remove bogues node->needed check.
3598
3599 2010-10-26  Jan Hubicka  <jh@suse.cz>
3600
3601         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
3602         to represent OMP.
3603
3604 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3605
3606         * config/i386/i386.md (split_stack_return): Replace
3607         unspec_volatile with unspec.
3608
3609 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
3610
3611         * doc/install.texi: Fix typo in --with-sysroot description.
3612
3613 2010-10-26  Jan Hubicka  <jh@suse.cz>
3614
3615         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
3616         Use info provided by linker plugin.
3617
3618 2010-10-26  Jason Merrill  <jason@redhat.com>
3619
3620         * varasm.c (constructor_static_from_elts_p): Don't require a
3621         CONSTRUCTOR to have elements to be suitable for static
3622         initialization.  Allow ARRAY_TYPE as well.
3623
3624 2010-10-26  Jan Hubicka  <jh@suse.cz>
3625
3626         PR middle-end/45736
3627         * cgraph.c (cgraph_set_readonly_flag): Rename to...
3628         (cgraph_set_const_flags) ... this one; get also looping argument;
3629         clear constructor/destructor flags.
3630         (cgraph_set_pure_flag): Likewise.
3631         (cgraph_set_looping_const_or_pure_flag): Remove.
3632         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
3633         to optimize away static ctors/dtors; it does not work on inline clones;
3634         external functions can always be rmeoved.
3635         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
3636         inline clones; in LTO external functions always can go.
3637         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
3638         (cgraph_mark_address_taken_node): Assert that we are not taking
3639         address of inline clone.
3640         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
3641         external functions.
3642         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
3643         address taken.
3644         (ipcp_initialize_node_lattices): Only local functions can be
3645         handled without cloning.
3646         * cgraph.h (cgraph_set_readonly_flag,
3647         cgraph_set_looping_const_or_pure_flag): Remove.
3648         (cgraph_set_const_flag): Declare.
3649         (cgraph_set_pure_flag): Update.
3650         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
3651         flags setting code.
3652         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
3653         look at inline clones; fix handling of external definitions.
3654         (cgraph_postorder): Do not look at inline clones in the first pass.
3655         (function_and_variable_visibility): Drop constructors/destructor
3656         flags at pure and const functions.
3657         * tree-profile.c (tree_profiling): Update.
3658         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
3659         address taken; external functions do not account to whole program size.
3660         (cgraph_decide_inlining): Likewise; do not try to inline
3661         functions already inlined.
3662
3663 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3664
3665         * doc/invoke.texi: Improve documentation of
3666         -fstrict-volatile-bitfields.
3667
3668 2010-10-26  Ira Rosen  <irar@il.ibm.com>
3669
3670         PR tree-optimization/46167
3671         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
3672         is basic block for the statement.
3673
3674 2010-10-26  Paul Koning  <ni1d@arrl.net>
3675
3676         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
3677         current definition of struct_real_format.
3678
3679 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3680
3681         PR target/44948
3682         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
3683         (ix86_function_arg_boundary): Always align parameters on stack
3684         in 64bit and align parameters with alignment >= 16byte on stack
3685         in 32bit.  Warn alignment change.
3686
3687 2010-10-26  Ian Lance Taylor  <iant@google.com>
3688
3689         PR middle-end/45687
3690         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
3691         offset.
3692
3693 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3694
3695         Implement opaque-enum-specifiesr for C++0x
3696         * tree.h (ENUM_IS_OPAQUE): New.
3697         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
3698
3699 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3700
3701         * stor-layout.c (layout_decl): Use the field's type to
3702         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
3703         * config/arm/arm.c (arm_override_options): Default to
3704         -fstrict-volatile-bitfields.
3705
3706 2010-10-25  Paul Koning  <ni1d@arrl.net>
3707
3708         * config/pdp11/pdp11.md: Add define_constants for register
3709         numbers, branch offset limits.
3710         * config/pdp11/pdp11.c: Use named constants instead of numbers.
3711         * config/pdp11.pdp11.h: Ditto.
3712
3713 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3714
3715         * configure.ac: Use $cpu_type instead of $target to define the nop.
3716         * configure: Regenerate.
3717
3718 2010-10-25  Jie Zhang  <jie@codesourcery.com>
3719
3720         * combine.c (try_combine): If insns need to be kept around, check that
3721         they can be copied in the merged instruction.
3722
3723 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3724
3725         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
3726         has been modified.
3727         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
3728         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
3729         it has been modified.
3730
3731 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3732
3733         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
3734
3735 2010-10-24  Paul Koning  <ni1d@arrl.net>
3736
3737         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
3738         * config/pdp11/pdp11.c (output_jump): Ditto.
3739
3740 2010-10-24  Ian Lance Taylor  <iant@google.com>
3741
3742         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
3743
3744 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3745
3746         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
3747         least one insn with a locus corresponding to an edge's goto_locus,
3748         disregard non-fallthru edges to the exit block and merge the blocks
3749         created for the same goto_locus.
3750
3751 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
3752
3753         * gcc.c (n_switches_alloc_debug_check): New.
3754         (set_option_handlers): New.
3755         (process_command): Use set_option_handlers.
3756         (do_self_spec): Pass spec-generated options through option handlers.
3757         (main): Also save and restore n_switches_alloc when swapping
3758         switch arrays.
3759
3760 2010-10-23  Richard Henderson  <rth@redhat.com>
3761
3762         PR target/46144
3763         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
3764         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
3765         Honor matching operands when splitting to XOR.
3766
3767 2010-10-23  Ian Lance Taylor  <iant@google.com>
3768
3769         * tree-vrp.c (extract_range_from_binary_expr): If
3770         flag_non_call_exceptions don't eliminate division by zero.
3771         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3772
3773 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
3774
3775         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3776         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
3777         __ORDER_PDP_ENDIAN__.
3778         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3779         (struct DWstruct): Define based on __BYTE_ORDER__.
3780         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3781         (struct INTstruct): Define based on __BYTE_ORDER__.
3782         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3783         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
3784         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
3785         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3786         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3787         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3788         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3789         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3790         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3791         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3792         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3793         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3794         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3795         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3796         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3797         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3798         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3799         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3800         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3801         * doc/tm.texi: Regenerate.
3802         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
3803         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
3804
3805 2010-10-23  Jie Zhang  <jie@codesourcery.com>
3806
3807         PR rtl-optimization/37360
3808         * config/mips/mips.c (cached_can_issue_more): New local variable.
3809         (mips_sched_reorder_1): New.
3810         (mips_sched_reorder): Use mips_sched_reorder_1.
3811         (mips_sched_reorder2): New.
3812         (mips_variable_issue): Set cached_can_issue_more.
3813         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
3814         instead of mips_sched_reorder.
3815
3816         Revert:
3817         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3818         PR rtl-optimization/37360
3819         * haifa-sched.c (max_issue): Do not assert that we never issue more
3820         insns than issue_rate.  Add comment.
3821
3822 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3823
3824         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
3825         location info of the expression.
3826
3827 2010-10-22  DJ Delorie  <dj@redhat.com>
3828
3829         * doc/extend.texi (Named Address Spaces): Document the M32C named
3830         address space.
3831
3832         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
3833         __far address space.
3834         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
3835         "__far" address space for R8C and M16C processor variants.
3836         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
3837         (far_addr_space_p): New.
3838         (encode_pattern_1): Add sign and zero extend support.
3839         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
3840         (m32c_extra_constraint_p2): Add SF constraint.
3841         (m32c_legitimate_address_p): Support __far addresses.
3842         (m32c_addr_space_pointer_mode): New.
3843         (m32c_addr_space_address_mode): New.
3844         (m32c_addr_space_legitimate_address_p): New.
3845         (m32c_addr_space_legitimize_address): New.
3846         (m32c_addr_space_subset_p): New.
3847         (m32c_addr_space_convert): New.
3848         (conversions): Add __far operand patterns.
3849         (m32c_prepare_move): Force constants into registers for __far moves.
3850         (m32c_split_move): __far moves are always split.
3851         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
3852         * config/m32c/mov.md (mov<mode>_far_op1): New.
3853         (mov<mode>_far_op2): New.
3854         (movqi_op): Add __far (SF) support.
3855         (movhi_op): Likewise.
3856         (movsi_splittable): Split A1A0 also.
3857
3858 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3859             Andrew Pinski  <pinskia@gmail.com>
3860
3861         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
3862         * doc/extend.texi: New paragraph
3863
3864 2010-10-22  Paul Koning  <ni1d@arrl.net>
3865
3866         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
3867
3868 2010-10-22  DJ Delorie  <dj@redhat.com>
3869
3870         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
3871
3872 2010-10-22  Paul Koning  <ni1d@arrl.net>
3873
3874         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
3875
3876 2010-10-22  Richard Henderson  <rth@redhat.com>
3877
3878         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
3879         cases for __builtin_fma and __builtin_fmaf.
3880
3881 2010-10-22  Richard Henderson  <rth@redhat.com>
3882
3883         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
3884         NEG+USE for vectors as well.
3885         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
3886         and splitter.
3887
3888 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
3889
3890         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
3891         SWITCH_CURTAILS_COMPILATION): Remove.
3892         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
3893         * doc/tm.texi: Regenerate.
3894         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
3895
3896 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3897
3898         * config/i386/bdver1.md: New file.
3899         * config/i386/i386.md (include "bdver1.md"): Invoke the
3900         pipeline description for bdver1.
3901         (x86_sahf_1): Add "bdver1_decode" attribute.
3902         (*cmpfp_i_mixed): Likewise.
3903         (*cmpfp_i_sse): Likewise.
3904         (*cmpfp_i_i387): Likewise.
3905         (*cmpfp_iu_mixed): Likewise.
3906         (*cmpfp_iu_sse): Likewise.
3907         (*cmpfp_iu_387): Likewise.
3908         (*swap<mode>,*swap<mode>_1): Likewise.
3909         (fixuns_trunc<mode>hi2): Likewise.
3910         (fix_trunc<mode>si_sse): Likewise.
3911         (x86_fnstcw_1): Likewise.
3912         (x86_fldcw_1): Likewise.
3913         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
3914         (*floatsi<mode>2_vector_mixed): Likewise.
3915         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
3916         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
3917         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
3918         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
3919         (*floatsi<mode>2_vector_sse): Likewise.
3920         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
3921         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
3922         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
3923         (*mul<mode>3_1): Likewise.
3924         (*mulsi3_1_zext): Likewise.
3925         (*mulhi3_1): Likewise.
3926         (*mulqi3_1): Likewise.
3927         (*<u>mul<mode><dwi>3_1): Likewise.
3928         (*<u>mulqihi3_1): Likewise.
3929         (*<s>muldi3_highpart_1): Likewise.
3930         (*<s>mulsi3_highpart_1): Likewise.
3931         (*<s>mulsi3_highpart_zext): Likewise.
3932         (x86_64_shld): Likewise.
3933         (x86_shld): Likewise.
3934         (x86_64_shrd): Likewise.
3935         (x86_shrd): Likewise.
3936         (sqrtxf2): Likewise.
3937         (sqrt_extend<mode>xf2_i387): Likewise.
3938         (*sqrt<mode>2_sse): Likewise.
3939         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
3940         (sse_cvtsi2ssq): Likewise.
3941         (sse_cvtss2si): Likewise.
3942         (sse_cvtss2si_2): Likewise.
3943         (sse_cvtss2siq): Likewise.
3944         (sse_cvtss2siq_2): Likewise.
3945         (sse_cvttss2si): Likewise.
3946         (sse_cvttss2siq): Likewise.
3947         (sse2_cvtpi2pd): Likewise.
3948         (sse2_cvttpd2pi): Likewise.
3949         (sse2_cvtsi2sd): Likewise.
3950         (sse2_cvtsi2sdq): Likewise.
3951         (sse2_cvtsd2si): Likewise.
3952         (sse2_cvtsd2si_2): Likewise.
3953         (sse2_cvtsd2siq): Likewise.
3954         (sse2_cvtsd2siq_2): Likewise.
3955         (sse2_cvttsd2si): Likewise.
3956         (sse2_cvttsd2siq): Likewise.
3957         (*sse2_cvtpd2dq): Likewise.
3958         (*sse2_cvttpd2dq): Likewise.
3959         (sse2_cvtsd2ss): Likewise.
3960         (sse2_cvtss2sd): Likewise.
3961         (*sse2_cvtpd2ps): Likewise.
3962         (sse2_cvtps2pd): Likewise.
3963
3964 2010-10-22  Richard Guenther  <rguenther@suse.de>
3965
3966         PR middle-end/46137
3967         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
3968         remove the virtual operands if they are not needed.
3969
3970 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
3971
3972         * config/i386/i386.c (processor_costs bdver1_cost): Update
3973         insn costs and architectural parameters for bdver1.
3974
3975 2010-10-22  Richard Guenther  <rguenther@suse.de>
3976
3977         * gimple.h (gimple_register_canonical_type): Declare.
3978         * gimple.c (gimple_canonical_types): New global hashtable.
3979         (struct gimple_type_leader_entry_s): New type.
3980         (gimple_type_leader): New global cache.
3981         (gimple_lookup_type_leader): New function.
3982         (gtc_visit): Query the proper cache.
3983         (gimple_types_compatible_p): Likewise.
3984         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
3985         (gimple_canonical_type_eq): New function.
3986         (gimple_register_canonical_type): Likewise.
3987         (print_gimple_types_stats): Adjust for gimple_canonical_types.
3988         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
3989         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
3990         gimple_types_compatible_p for LTO.
3991
3992 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
3993
3994         PR target/46098
3995         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
3996         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
3997         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
3998         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
3999         (<sse>_movu<ssemodesuffix>): New expander.
4000         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4001         (avx_movdqu<avxmodesuffix>): New expander.
4002         (*sse2_movdqu): Rename from sse2_movdqu.
4003         (sse2_movdqu): New expander.
4004
4005 2010-10-22  Richard Guenther  <rguenther@suse.de>
4006
4007         PR tree-optimization/45720
4008         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
4009         Handle negative step.
4010         (vect_enhance_data_refs_alignment): Likewise.
4011         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
4012         (vect_create_cond_for_align_checks): Likewise.
4013         (vect_create_cond_for_alias_checks): Likewise.
4014
4015 2010-10-22  Ira Rosen  <irar@il.ibm.com>
4016
4017         PR tree-optimization/46126
4018         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
4019         vectorizable_shift in case of basic block vectorization.
4020
4021 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4022
4023         * target.h (enum opt_levels, struct default_options): New.
4024         * target.def (handle_ofast): Remove hook.
4025         (target_option.optimization): Change to
4026         target_option.optimization_table.
4027         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
4028         TARGET_OPTION_OPTIMIZATION_TABLE.
4029         (CAN_DEBUG_WITHOUT_FP): Remove.
4030         * doc/tm.texi: Regenerate.
4031         * opts.c (maybe_default_option, maybe_default_options,
4032         default_options_table): New.
4033         (default_options_optimization): Take extra parameters.  Don't
4034         assert that global_options and global_options_set are in use.  Use
4035         maybe_default_options.
4036         (decode_options): Pass extra parameters to
4037         default_options_optimization.
4038         * common.opt (falign-loops): Use value 0 with Var.
4039         (frerun-cse-after-loop, ftree-ter): Remove Init.
4040         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
4041         TARGET_OPTION_OPTIMIZATION): Remove.
4042         * targhooks.c (empty_optimization_table): New.
4043         * targhooks.h (empty_optimization_table): Declare.
4044         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
4045         * config/alpha/alpha.c (alpha_option_optimization_table,
4046         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4047         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
4048         * config/arm/arm.c (arm_option_optimization: Change to
4049         arm_option_optimization_table.
4050         (TARGET_OPTION_OPTIMIZATION): Change to
4051         TARGET_OPTION_OPTIMIZATION_TABLE.
4052         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
4053         * config/avr/avr.c (avr_option_optimization_table,
4054         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4055         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
4056         * config/cris/cris.c (cris_option_optimization): Change to
4057         cris_option_optimization_table.
4058         (TARGET_OPTION_OPTIMIZATION): Change to
4059         TARGET_OPTION_OPTIMIZATION_TABLE.
4060         * config/crx/crx.c (crx_option_optimization): Change to
4061         crx_option_optimization_table.
4062         (TARGET_OPTION_OPTIMIZATION): Change to
4063         TARGET_OPTION_OPTIMIZATION_TABLE.
4064         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4065         * config/fr30/fr30.c (fr30_option_optimization_table,
4066         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4067         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
4068         * config/frv/frv.c (frv_option_optimization_table,
4069         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4070         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
4071         * config/h8300/h8300.c (h8300_option_optimization): Change to
4072         h8300_option_optimization_table.
4073         (TARGET_OPTION_OPTIMIZATION): Change to
4074         TARGET_OPTION_OPTIMIZATION_TABLE.
4075         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4076         * config/i386/i386.c (ix86_option_optimization): Change to
4077         ix86_option_optimization_table.
4078         (TARGET_OPTION_OPTIMIZATION): Change to
4079         TARGET_OPTION_OPTIMIZATION_TABLE.
4080         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
4081         as initializer.
4082         * config/ia64/ia64.c (ia64_option_optimization): Change to
4083         ia64_option_optimization_table.
4084         (TARGET_OPTION_OPTIMIZATION): Change to
4085         TARGET_OPTION_OPTIMIZATION_TABLE.
4086         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
4087         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
4088         initializer.
4089         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4090         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4091         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
4092         * config/lm32/lm32.c (lm32_option_optimization_table,
4093         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4094         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
4095         * config/m32r/m32r.c (m32r_option_optimization): Change to
4096         m32r_option_optimization_table.
4097         (TARGET_OPTION_OPTIMIZATION): Change to
4098         TARGET_OPTION_OPTIMIZATION_TABLE.
4099         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
4100         CAN_DEBUG_WITHOUT_FP): Remove.
4101         * config/mcore/mcore.c (mcore_option_optimization): Change to
4102         mcore_option_optimization_table.
4103         (TARGET_OPTION_OPTIMIZATION): Change to
4104         TARGET_OPTION_OPTIMIZATION_TABLE.
4105         * config/mep/mep.c (mep_option_optimization): Change to
4106         mep_option_optimization_table.
4107         (TARGET_OPTION_OPTIMIZATION): Change to
4108         TARGET_OPTION_OPTIMIZATION_TABLE.
4109         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
4110         * config/microblaze/microblaze.c
4111         (microblaze_option_optimization_table,
4112         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4113         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
4114         * config/mips/mips.c (mips_option_optimization_table,
4115         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4116         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
4117         * config/mmix/mmix.c (mmix_option_optimization): Change to
4118         mmix_option_optimization_table.
4119         (TARGET_OPTION_OPTIMIZATION): Change to
4120         TARGET_OPTION_OPTIMIZATION_TABLE.
4121         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
4122         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
4123         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4124         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4125         * config/pa/pa.c (pa_option_optimization_table,
4126         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4127         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
4128         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
4129         pdp11_option_optimization_table.
4130         (TARGET_OPTION_OPTIMIZATION): Change to
4131         TARGET_OPTION_OPTIMIZATION_TABLE.
4132         * config/picochip/picochip.c (picochip_option_optimization_table,
4133         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4134         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
4135         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
4136         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4137         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
4138         * config/rx/rx.c (rx_option_optimization_table,
4139         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4140         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4141         * config/s390/s390.c (s390_option_optimization): Change to
4142         s390_option_optimization_table.
4143         (s390_option_override): Update comment.
4144         (TARGET_OPTION_OPTIMIZATION): Change to
4145         TARGET_OPTION_OPTIMIZATION_TABLE.
4146         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
4147         * config/score/score.c (score_option_optimization_table,
4148         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4149         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
4150         * config/sh/sh.c (sh_option_optimization): Change to
4151         sh_option_optimization_table.
4152         (TARGET_OPTION_OPTIMIZATION): Change to
4153         TARGET_OPTION_OPTIMIZATION_TABLE.
4154         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
4155         (sh_option_override, expand_block_move, multcosts, find_barrier,
4156         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
4157         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
4158         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
4159         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
4160         instead of TARGET_SMALLCODE.
4161         * config/sh/sh.opt (mspace): Make into an alias for -Os.
4162         * config/sparc/sparc.c (sparc_option_optimization_table,
4163         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4164         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
4165         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
4166         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4167         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
4168         * config/v850/v850.c (v850_option_optimization): Change to
4169         v850_option_optimization_table.
4170         (TARGET_OPTION_OPTIMIZATION): Change to
4171         TARGET_OPTION_OPTIMIZATION_TABLE.
4172         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
4173         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
4174         xtensa_option_optimization_table.
4175         (TARGET_OPTION_OPTIMIZATION): Change to
4176         TARGET_OPTION_OPTIMIZATION_TABLE.
4177         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
4178
4179 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
4180
4181         Based on the CFString implementation in FSF apple/trunk branch.
4182
4183         * target.def (objc_construct_string): New Hook.
4184         * doc/tm.texi (objc_construct_string): Document.
4185         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
4186         * config/t-darwin: Amend build rules for darwin.o.
4187         * config/darwin.opt: Add cfstrings flags.
4188         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
4189         (darwin_objc_construct_string): New.
4190         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
4191         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
4192         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
4193         (darwin_fold_builtin): Likewise.
4194         (darwin_build_constant_cfstring): Likewise.
4195         (darwin_objc_construct_string): Likewise.
4196         (darwin_cfstring_p): Likewise.
4197         (darwin_enter_string_into_cfstring_table): Likewise.
4198         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
4199         * config/darwin.c (darwin_running_cxx): New var.
4200         (machopic_select_section): Return cfstring_constant_object_section.
4201         (darwin_override_options): Set darwin_running_cxx.
4202         (add_builtin_field_decl): New.
4203         (darwin_init_cfstring_builtins): New.
4204         (darwin_build_constant_cfstring): New.
4205         (darwin_fold_builtin): New.
4206         (cfstring_hash): New.
4207         (cfstring_eq): New.
4208         (darwin_enter_string_into_cfstring_table): New.
4209         * config/darwin-sections.def (cfstring_constant_object_section): New.
4210         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
4211         (TARGET_OBJC_CONSTRUCT_STRING): Define.
4212
4213 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4214
4215         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
4216         TYPE_STUB_DECL instead of TREE_CHAIN.
4217         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
4218         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
4219         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
4220         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
4221         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
4222         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
4223         Likewise.
4224         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
4225
4226 2010-10-22  Jie Zhang  <jie@codesourcery.com>
4227
4228         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
4229         (copy_blkmode_from_reg): Likewise.
4230         (read_complex_part): Likewise.
4231         (expand_expr_real_1): Calculate packedp and pass it to
4232         extract_bit_field.
4233         * expr.h (extract_bit_field): Update declaration.
4234         * calls.c (store_unaligned_arguments_into_pseudos): Update call
4235         to extract_bit_field.
4236         * expmed.c (extract_fixed_bit_field): Update calls to
4237         extract_fixed_bit_field.
4238         (store_split_bit_field): Likewise.
4239         (extract_bit_field_1): Add new argument packedp.
4240         (extract_bit_field): Add new argument packedp.
4241         (extract_fixed_bit_field): Add new argument packedp and let
4242         packed attribute override volatile.
4243         * stmt.c (expand_return): Update call to extract_bit_field.
4244
4245 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4246
4247         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
4248
4249 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4250
4251         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
4252         of gcc_checking_assert.
4253         * sel-sched.c (code_motion_process_successors): Likewise.
4254
4255 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4256
4257         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
4258         when stopping because of a different locus on edge or insn.
4259         (try_optimize_cfg): Add comment.
4260         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
4261         block is a forwarder block, propagate locus on the edge.
4262         (cfg_layout_merge_blocks): Likewise.
4263
4264 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
4265
4266         PR target/45946
4267         * config/i386/i386.md (*pushti2): New insn pattern.
4268         (pushti2 splitter): New insn splitter.
4269         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
4270         DWI mode iterator.
4271
4272 2010-10-21  Paul Koning  <ni1d@arrl.net>
4273
4274         * config/pdp11/pdp11-protos.md (arith_operand,
4275         const_immediate_operand, expand_shift_operand,
4276         immediate15_operand): Delete
4277         * config/pdp11/pdp11.c: Ditto.
4278         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
4279         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4280         EXTRA_CONSTRAINT): Delete.
4281         * config/pdp11/pdp11.md (various): Use standard constraints
4282         instead of removed ones.
4283         * config/pdp11/constraints.md: New file.
4284         * config/pdp11/predicates.md: New file.
4285
4286 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
4287
4288         PR c/45834
4289         * alias.c (true_dependence_1): Remove obsolete check for QImode.
4290         (may_alias_p): Ditto.
4291
4292 2010-10-21  Martin Jambor  <mjambor@suse.cz>
4293
4294         PR tree-optimization/45875
4295         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
4296
4297 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4298
4299         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
4300         variables.
4301         (create_new_def_for): Likewise.
4302
4303 2010-10-21  Nick Clifton  <nickc@redhat.com>
4304
4305         * config/mn10300/mn10300.c: Fold code to 80-character width.
4306         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4307         MEM, CONST_INT and CONST_DOUBLE.
4308         (targetm): Move initialization to end of file.
4309         (print_operand): Rename to mn10300_print_operand.
4310         (print_operand_address): Rename to mn10300_print_operand_address.
4311         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
4312         (expand_prologue): Rename to mn10300_expand_prologue.
4313         (expand_epilogue): Rename to mn10300_expand_epilogue.
4314         (initial_offset): Rename to mn10300_initial_offset.
4315         (function_arg): Rename to mn10300_function_arg.
4316         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
4317         (symbolic_operand): Rename to mn10300_symbolic_operand.
4318         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
4319         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
4320         * config/mn10300/mn10300-protos.h: Update prototypes.
4321         * config/mn10300/mn10300.h: Fold code to 80-character width.
4322         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4323         MEM, CONST_INT and CONST_DOUBLE.
4324         (CPP_SPEC): Move to...
4325         (TARGET_CPU_CPP_BUILTINS): ... here.
4326         * config/mn10300/mn10300.md: Fold code to 80-character width.
4327         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4328         MEM, CONST_INT and CONST_DOUBLE.
4329
4330 2010-10-21  Ira Rosen  <irar@il.ibm.com>
4331
4332         PR tree-optimization/46049
4333         PR tree-optimization/46052
4334         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
4335         (vect_get_slp_defs): Add arguments.
4336         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
4337         operands to vect_get_slp_defs.
4338         (vectorizable_reduction): Fix comment, pass scalar operands to
4339         vect_get_slp_defs.
4340         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
4341         type to determine number of units in the created vector.
4342         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
4343         (vectorizable_conversion): Fix comment.
4344         (vectorizable_shift): New function.
4345         (vectorizable_operation): Move code that handles shifts to
4346         vectorizable_shift.
4347         (vectorizable_type_demotion): Fix comment, pass scalar operands to
4348         vect_get_slp_defs.
4349         (vectorizable_type_promotion, vectorizable_store): Likewise.
4350         (vectorizable_condition): Fix comment.
4351         (vect_analyze_stmt): Call vectorizable_shift.
4352         (vect_transform_stmt): Likewise.
4353         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
4354         Use it as the operand to create vectors for, except reduction
4355         initial definition and store.  Use operands type.
4356         (vect_get_slp_defs): Add new arguments.  Pass them to
4357          vect_get_constant_vectors.
4358
4359 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4360
4361         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
4362         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
4363         * cfghooks.c (fixup_reorder_chain): Likewise.
4364         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4365         * cgraph.c (cgraph_add_thunk): Likewise.
4366         (cgraph_create_edge_1): Likewise.
4367         (cgraph_create_virtual_clone): Likewise.
4368         * ddg.c (add_cross_iteration_register_deps): Likewise.
4369         * dwarf2out.c (modified_type_die): Likewise.
4370         * emit-rtl.c (set_mem_alias_set): Likewise.
4371         * ggc-zone.c (zone_allocate_marks): Likewise.
4372         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
4373         * gimple.c (iterative_hash_gimple_type): Likewise.
4374         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
4375         (create_single_exit_edge): Likewise.
4376         * haifa-sched.c (choose_ready): Likewise.
4377         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4378         * passes.c (execute_todo): Likewise.
4379         * sched-ebb.c (begin_schedule_ready): Likewise.
4380         * sel-sched.c (code_motion_process_successors): Likewise.
4381         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
4382         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
4383         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
4384         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
4385         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
4386         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
4387         (ssa_conflicts_add): Likewise.
4388         * tree-ssa-copy.c (replace_exp): Likewise.
4389         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
4390         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
4391         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
4392         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
4393         (compute_antic): Likewise.
4394         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
4395         (add_dependence): Likewise.
4396         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
4397         * tree-vrp.c (supports_overflow_infinity): Likewise.
4398         (make_overflow_infinity, negative_overflow_infinity): Likewise.
4399         (avoid_overflow_infinity, register_new_assert_for): Likewise.
4400         (process_assert_insertions_for): Likewise.
4401         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
4402         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
4403         (intersect_loc_chains, variable_merge_over_cur): Likewise.
4404
4405 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4406
4407         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
4408         * reload1.c (has_nonexceptional_receiver): Likewise.
4409         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
4410         (create_new_def_for): Likewise.
4411         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
4412         (merge_phi_nodes): Likewise.
4413         (has_abnormal_incoming_edge_p): Delete.
4414
4415 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
4416
4417         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
4418
4419 2010-10-21  Richard Guenther  <rguenther@suse.de>
4420             Michael Matz  <matz@suse.de>
4421
4422         PR tree-optimization/45764
4423         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4424         Adjust initial misalignment for negative DR_STEP.
4425         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
4426         do not have the same alignment over the whole iteration domain.
4427
4428 2010-10-21  Richard Guenther  <rguenther@suse.de>
4429
4430         PR tree-optimization/46111
4431         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
4432
4433 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4434
4435         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
4436
4437 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4438
4439         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
4440         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
4441
4442 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4443
4444         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
4445         signal_frame.
4446         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
4447
4448 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4449
4450         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
4451         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
4452
4453 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4454
4455         * basic-block.h (find_fallthru_edge): Define.
4456         * cfgcleanup.c (merge_blocks_move): Use it.
4457         (try_crossjump_bb): Likewise.
4458         * cfglayout.c (fixup_reorder_chains): Likewise.
4459         (fixup_fallthru_exit_predecessor): Likewise.
4460         * cfgrtl.c (rtl_split_edge): Likewise.
4461         (rtl_verify_flow_info): Likewise.
4462         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4463         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
4464         * ifcvt.c (block_fallthru): Likewise.
4465         * reload1.c (fixup_abnormal_edges): Likewise.
4466         * sched-ebb.c (being_schedule_ready): Likewise.
4467         (schedule_ebb): Likwise.
4468         * sched-rgn.c (find_single_block_region): Likewise.
4469         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
4470         * tree-complex.c (expand_complex_move): Likewise.
4471         * sched-int.h (find_fallthru_edge): Rename to...
4472         (find_fallthru_edge_from): ...this.
4473         * haifa-sched.c (find_fallthru_edge): Rename to...
4474         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
4475         (init_before_recovery): Call find_fallthru_edge_from.
4476         * sel-sched-ir.c (merge_fences): Likewise.
4477         * sel-sched.c (in_fallthru_bb_p): Likewise.
4478         (move_cond_jump): Likewise.
4479
4480 2010-10-20  Paul Koning  <ni1d@arrl.net>
4481
4482         * config/pdp11/pdp11.md (various): Fix conditions on a number of
4483         insn to check for target 11/40 or higher.
4484
4485 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4486
4487         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
4488         bool instead of a tree.
4489         (c_parser_objc_method_decl): Added bool argument.  Updated call to
4490         objc_build_method_signature.
4491         (c_parser_objc_method_definition): Do not call
4492         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
4493         c_parser_objc_method_decl and objc_start_method_definition.
4494         (c_parser_objc_methodproto): Do not call objc_set_method_type.
4495         Updated calls to c_parser_objc_method_type,
4496         c_parser_objc_method_decl and objc_add_method_declaration.
4497
4498 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
4499
4500         PR tree-optimization/45919
4501         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
4502         array members.
4503
4504         PR tree-optimization/46066
4505         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
4506         instead of gsi_last_bb.
4507
4508 2010-10-20  DJ Delorie  <dj@redhat.com>
4509
4510         * config/m32c/m32c.c (m32c_option_override): Always disable
4511         function-cse in 16-bit mode.  Indirect calls are always worse than
4512         direct calls as there is no 16-bit indirect call opcode.
4513         (m32c_override_options_after_change): New, likewise.
4514
4515 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4516
4517         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
4518         emitting the conditional move in the inner mode of the SUBREG.
4519
4520 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
4521
4522         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
4523         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
4524         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4525         (ia64_preferred_reload_class): Make static.  Change rclass argument
4526         and result types from enum reg_class to reg_class_t.
4527
4528 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
4529
4530         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
4531         call for single operand expression.
4532
4533 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4534
4535         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
4536         if there is a call statement to pure or const function in the block.
4537
4538 2010-10-20  Paul Koning  <pkoning@equallogic.com>
4539
4540         Fix several build errors for pdp11 target.
4541         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
4542         (cbranchdf4): Conditional on TARGET_FPU.
4543         (movdf): Ditto; correct alternatives check.
4544         (movmemhi): Fix predicate and constraint.
4545         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
4546
4547 2010-10-20  Richard Guenther  <rguenther@suse.de>
4548
4549         PR lto/45667
4550         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
4551         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
4552         (verify_gimple_assign_single): Disable ADDR_EXPR type check
4553         when in LTO.
4554
4555 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
4556
4557         PR fortran/42169
4558         * ira-emit.c (store_can_be_removed_p): Return false instead of
4559         gcc_unreachable.
4560
4561 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
4562
4563         * fold-const.c (fold_binary_loc): New transformation.
4564
4565 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
4566
4567         PR target/46085
4568         * config/i386/sse.md (reduc_splus_v8sf): Updated.
4569         (reduc_splus_v4df): Likewise.
4570
4571 2010-10-20  Richard Guenther  <rguenther@suse.de>
4572
4573         PR tree-optimization/45860
4574         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
4575         conditional store replacement for non-register type stores.
4576
4577 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4578
4579         * stor-layout.c (skip_simple_constant_arithmetic): New function.
4580         (self_referential_size): Use it instead of skip_simple_arithmetic.
4581
4582 2010-10-20  Olivier Hainque  <hainque@adacore.com>
4583
4584         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
4585         If the current function calls eh_return, claim live all registers
4586         that we need to check for liveness otherwise.
4587
4588 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4589
4590         * c-decl.c (c_write_global_declarations): Call
4591         objc_write_global_declarations when compiling Objective-C.
4592         * c-lang.c (finish_file): Removed.
4593
4594 2010-10-19  DJ Delorie  <dj@redhat.com>
4595
4596         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
4597         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
4598         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4599         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4600         * doc/tm.texi: Regenerate.
4601         * targhooks.h (default_label_align_after_barrier_max_skip,
4602         default_loop_align_max_skip, default_label_align_max_skip,
4603         default_jump_align_max_skip): Declare.
4604         * target.def (label_align_after_barrier_max_skip): New.
4605         (loop_align_max_skip): New.
4606         (label_align_max_skip): New.
4607         (jump_align_max_skip): New.
4608         * system.h (poison): Add those macros to the list.
4609         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
4610         (LOOP_ALIGN_MAX_SKIP): Remove.
4611         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
4612         (JUMP_ALIGN_MAX_SKIP): Remove.
4613         (default_label_align_after_barrier_max_skip): New.
4614         (default_loop_align_max_skip): New.
4615         (default_label_align_max_skip): New.
4616         (default_jump_align_max_skip): New.
4617         (compute_alignments): Use the new hooks.
4618         (shorten_branches): Likewise.
4619
4620 2010-10-19  Richard Henderson  <rth@redhat.com>
4621
4622         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
4623         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
4624         (fma4i_fmadd_<mode>): New.
4625         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
4626         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
4627         standard fma patterns.
4628         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
4629         enable for FMA.
4630         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4631         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4632         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
4633
4634 2010-10-19  Paul Koning  <pkoning@equallogic.com>
4635
4636         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
4637         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
4638
4639 2010-10-19  Richard Henderson  <rth@redhat.com>
4640
4641         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
4642         (fmadf4, *fmsdf4, *nfmadf4): New.
4643         (fmaxf4, *fmsxf4, *nfmaxf4): New.
4644
4645 2010-10-19  Michael Eager  <eager@eagercon.com>
4646
4647         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
4648         Use sjlj unwind info for exceptions.
4649
4650 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
4651
4652         PR fortran/43414
4653         * dwarf2out.c (add_calling_convention_attribute): Flag main
4654         Fortran subroutine with DW_AT_main_subprogram.
4655
4656 2010-10-19  Nick Clifton  <nickc@redhat.com>
4657
4658         * config/rx/rx.c (rx_function_value): Small integer types are
4659         promoted to SImode.
4660         (rx_promote_function_mode): New function.
4661         (TARGET_PROMOTE_FUNCTION_MODE): Define.
4662
4663 2010-10-19  Nick Clifton  <nickc@redhat.com>
4664
4665         * config/mep/mep.c (mep_print_operand): Use
4666         targetm.strip_name_encoding.
4667         (mep_output_aligned_common): Likewise.
4668
4669 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
4670
4671         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
4672
4673 2010-10-18  Richard Henderson  <rth@redhat.com>
4674
4675         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
4676         (fma (neg a) (neg b) c) and (fma a (neg b) c).
4677
4678 2010-10-18  Richard Henderson  <rth@redhat.com>
4679
4680         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
4681         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
4682         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
4683         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
4684         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
4685         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
4686         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
4687         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
4688         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
4689         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
4690         (bdesc_multi_arg): Remove the corresponding builtins.
4691         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
4692         (UNSPEC_FMA4_FMSUBADD): Remove.
4693         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
4694         * config/i386/sse.md (FMA4MODEF4): Remove.
4695         (FMAMODE): Add.
4696         (fma<mode>4): New expander.
4697         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
4698         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
4699         (*fma4i_fmsub_<mode>): Similarly.
4700         (*fma4i_fnmadd_<mode>): Similarly.
4701         (*fma4i_fnmsub_<mode>): Similarly.
4702         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
4703         with the first operand.
4704         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
4705         of explicit arithmetic.  Macroize with AVXMODEF2P.
4706         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
4707         (xop_frcz<mode>2): Macroize with FMAMODE.
4708         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
4709         the first operand.
4710         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
4711         extra negations.
4712         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
4713         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
4714         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
4715         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
4716         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
4717         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
4718         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
4719         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
4720
4721 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
4722
4723         PR rtl-optimization/45966
4724         * combine.c (try_combine): If added_sets_2, deal with the case
4725         where i0 feeds i1 and i1 feeds i2.
4726
4727 2010-10-18  Jan Hubicka  <jh@suse.cz>
4728
4729         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
4730         preserve flags before trying to guess on visibility.
4731         (varpool_externally_visible_p): New function.
4732         (function_and_variable_visibility): Use it.
4733
4734 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4735
4736         Implemented parsing @synthesize and @dynamic for Objective-C.
4737         * c-parser.c (c_parser_external_declaration): Recognize
4738         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
4739         (c_parser_objc_at_synthesize_declaration): New.
4740         (c_parser_objc_at_dynamic_declaration): New.
4741
4742 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4743
4744         * c-parser.c (c_parser_objc_class_declaration): After finding an
4745         error, parse the whole declaration then reset parser->error.
4746
4747 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4748
4749         PR target/46041
4750         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
4751         * builtins.c (mode_has_fma): Ditto.
4752
4753 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
4754
4755         PR target/36898
4756         PR middle-end/43760
4757         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
4758
4759 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
4760
4761         * config/i386/i386.c (ix86_option_override_internal): Define and
4762         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
4763         default.
4764         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4765         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
4766
4767 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4768
4769         Merge from 'apple/trunk' branch on FSF servers.
4770         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
4771         following Objective-C change:
4772
4773         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
4774
4775         Radar 4301047
4776         * c-parse.in (objc_quals): Build objc qualifier list same way
4777         as gcc-3.3
4778
4779 2010-10-18  Jan Hubicka  <jh@suse.cz>
4780
4781         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
4782         function_and_variable_visibility): Revert accidental commit.
4783
4784 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4785
4786         Merge from 'apple/trunk' branch on FSF servers.
4787         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
4788         the following Objective-C change:
4789
4790         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
4791
4792         Radar 4204796
4793         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
4794         'volatilized' type used in a typeof operator.
4795
4796 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
4797
4798         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
4799         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
4800         rewrite modelled on gimple_purge_dead_eh_edges.
4801         (gimple_purge_all_dead_abnormal_call_edges): New function.
4802         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
4803         directly instead of through gimple_purge_dead_abnormal_call_edges.
4804         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
4805         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
4806         removed AB side-effects from one of its statements.
4807         (init_pre): Initialize need_ab_cleanup.
4808         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
4809         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
4810
4811 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4812
4813         PR c/46015
4814         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
4815         on computed goto argument.
4816
4817 2010-10-18  Richard Guenther  <rguenther@suse.de>
4818
4819         PR tree-optimization/45967
4820         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
4821         (could_have_pointers): Likewise.
4822         (handle_rhs_call, handle_const_call, handle_pure_call,
4823         find_func_aliases, intra_create_variable_infos): Remove calls to them.
4824         (struct fieldoff): Add must_have_pointers field.
4825         (type_must_have_pointers): New function.
4826         (field_must_have_pointers): Likewise.
4827         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
4828         Adjust field merging.
4829         (create_function_info_for): May-have-pointers of varinfo is
4830         almost always true.
4831         (create_variable_info_for_1): Likewise.
4832
4833 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
4834
4835         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
4836         of operands to vec_concat.
4837
4838 2010-10-18  Richard Guenther  <rguenther@suse.de>
4839
4840         PR lto/44950
4841         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
4842         also clear references to entries of it.
4843
4844 2010-10-18  Andi Kleen  <ak@linux.intel.com>
4845
4846         PR other/43448
4847         * gccbug.in: Remove.
4848         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
4849         (doc, distclean, install-common): Remove reference to gccbug.
4850         * configure: Regenerate.
4851         * configure.ac (all_outputs): Remove gccbug.
4852         * doc/configfiles.texi: Remove references to gccbug.
4853         * doc/sourcebuild.texi: Dito.
4854
4855 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4856
4857         PR middle-end/46019
4858         * fold-const.c (fold_binary_loc): If integer_pow2p has
4859         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
4860
4861 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4862             Jeremie Salvucci  <jeremie.salvucci@free.fr>
4863
4864         * gengtype.c (verbosity_level): Add variable.
4865         (set_gc_used): Count variables for verbosity.
4866         (close_output_files): Backing up files, counting written ones
4867         verbosily.
4868         (write_types): Count emitted functions for verbosity. Added
4869         debug messages.
4870         (write_enum_defn): Count structures for verbosity. Added debug
4871         messages.
4872         (gengtype_long_options): Add "verbose" & "backupdir".
4873         (print_usage): Ditto.
4874         (main): Verbose display of parsed files.
4875
4876         * gengtype.h (verbosity_level): Add declaration.
4877
4878 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
4879
4880         * gengtype.c (parse_program_options): Add allocation of
4881         plugin_files, and correct test on nb_plugin_files.
4882
4883 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4884
4885         Merge from 'apple/trunk' branch on FSF servers.
4886
4887         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
4888
4889         Radar 4133425
4890         * c-decl.c (undeclared_variable): Issue diagnostic on
4891         private 'ivar' access.
4892
4893 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4894
4895         PR target/46051
4896         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
4897         generated sequence to match *avx_vperm2f128<mode>_nozero.
4898         (vec_interleave_lowv4df): Ditto.
4899         (vec_interleave_highv8sf): Ditto.
4900         (vec_interleave_lowv8sf): Ditto.
4901
4902 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
4903
4904         * libgcov.c (create_file_directory): Enable it for win32 case.
4905         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
4906         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
4907         (GCOV_PREFIX_SKIP): Likewise.
4908
4909 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4910
4911         * doc/objc.texi (GNU Objective-C runtime API): New section.
4912         (Modern GNU Objective-C runtime API): New section.
4913         (Traditional GNU Objective-C runtime API): New section.
4914         (Executing code before main): Mention that this section is
4915         specific to the GNU Objective-C runtime.
4916         (Garbage Collection): Same.
4917
4918 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
4919
4920         * c-parser.c (c_parser_for_statement): Move initialization of
4921         cond and incr before if.
4922
4923 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
4924
4925         * target.def (preferred_output_reload_class): New hook.
4926         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
4927         * doc/tm.texi: Regenerate.
4928         * targhooks.c (default_preferred_output_reload_class): New function.
4929         * targhooks.h (default_preferred_output_reload_class): Declare.
4930         * reload.c (find_dummy_reload): Change rclass argument type from
4931         enum reg_class to reg_class_t. Change this_alternative array type
4932         from enum reg_class to reg_class_t.
4933         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4934         (push_reload): Change preferred_class variable type to reg_class_t.
4935         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
4936         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
4937         argument type from enum reg_class to reg_class_t. Use
4938         HARD_REGISTER_NUM_P predicate.
4939         * recog.h (reg_fits_class_p): Update prototype.
4940
4941         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4942         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
4943         Remove.
4944         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
4945         static. Change regclass argument and result types from enum reg_class
4946         to reg_class_t.
4947         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4948
4949 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
4950
4951         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
4952         visibility enum, and handle @package.
4953
4954 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4955
4956         * doc/objc.texi (What you can and what you cannot do in +load):
4957         Document that sending messages to constant string objects in +load
4958         is not guaranteed to work.
4959
4960 2010-10-16  Jan Hubicka  <jh@suse.cz>
4961
4962         PR middle-end/44206
4963         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
4964         existence of refrences before removing the function.
4965
4966 2010-10-16  Jan Hubicka  <jh@suse.cz>
4967
4968         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
4969         only_called_at_startup and only_called_at_exit.
4970         (cgraph_propagate_frequency): Compute only_called_at_startup and
4971         only_called_at_exit.
4972         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
4973         only_called_at_exit.
4974         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
4975         flags.
4976         * predict.c (compute_function_frequency): Initialize the new flags.
4977
4978 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
4979
4980         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
4981         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
4982         on the bounds of its domain.
4983         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
4984
4985 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
4986
4987         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
4988         * config/avr/avr-protos.h (preferred_reload_class): Remove.
4989         * config/avr/avr.c (preferred_reload_class): Remove.
4990         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
4991         * config/pa/pa.c (emit_move_sequence): Update comment
4992         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
4993         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
4994         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
4995         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
4996         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
4997         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
4998         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
4999         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
5000         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
5001         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
5002         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
5003         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
5004         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
5005
5006 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5007
5008         * opts.c (set_fast_math_flags,
5009         set_unsafe_math_optimizations_flags): Make static.
5010         * toplev.h (set_fast_math_flags,
5011         set_unsafe_math_optimizations_flags): Remove prototypes.
5012
5013 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5014
5015         * config/arm/arm.c (arm_option_optimization): Set
5016         flag_section_anchors to 1 not 2.
5017         * config/i386/i386.c (ix86_option_override_internal): Check
5018         global_options_set.x_flag_zee and
5019         global_options_set.x_flag_omit_frame_pointer.
5020         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
5021         flag_zee to 2.
5022         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
5023         global_options_set.x_flag_omit_frame_pointer.
5024         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
5025         opts->x_flag_section_anchors to 1 not 2.
5026         * config/sh/sh.c (sh_option_optimization): Don't set
5027         flag_schedule_insns to 2.
5028         (sh_option_override): Check
5029         global_options_set.x_flag_schedule_insns.
5030         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
5031
5032 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
5033
5034         * configure.ac: Make sure inhibit_libc remains false for mingw targets
5035         as cross.
5036         * configure: Regenerated.
5037
5038 2010-10-15  Xinliang David Li  <davidxl@google.com>
5039
5040         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
5041         function.
5042         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
5043         into a recursive function.
5044
5045 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
5046
5047         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
5048         (*movdfcc_1): ditto.
5049
5050 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5051
5052         * target.def (target_option.init_struct): New hook.
5053         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
5054         * doc/tm.texi: Regenerate.
5055         * hooks.c (hook_void_gcc_optionsp): New.
5056         * hooks.h (hook_void_gcc_optionsp): Declare.
5057         * langhooks-def.h (lhd_init_options_struct): Remove.
5058         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
5059         * langhooks.c (lhd_init_options_struct): Remove.
5060         * opts.c (init_options_struct): Also call
5061         targetm.target_option.init_struct.
5062         * config/i386/i386.c (ix86_option_init_struct,
5063         TARGET_OPTION_INIT_STRUCT): New.
5064         (ix86_option_optimization): Move some settings to
5065         ix86_option_init_struct.
5066         * config/pdp11/pdp11.c (pdp11_option_init_struct,
5067         TARGET_OPTION_INIT_STRUCT): New.
5068         (pdp11_option_optimization): Move some settings to
5069         pdp11_option_init_struct.
5070         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
5071         rs6000_option_init_struct.  Use options structure pointer.
5072         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5073         * config/s390/s390.c (s390_option_init_struct,
5074         TARGET_OPTION_INIT_STRUCT): New.
5075         (s390_option_optimization): Don't set
5076         flag_asynchronous_unwind_tables here.
5077         * config/sh/sh.c (sh_option_init_struct,
5078         TARGET_OPTION_INIT_STRUCT): New.
5079         (sh_option_optimization): Don't set flag_finite_math_only here.
5080         * config/spu/spu.c (spu_option_optimization): Replace by
5081         spu_option_optimization.  Use options structure pointer.
5082         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5083
5084 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5085
5086         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
5087
5088         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
5089         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
5090         (Standard names): Document fma.
5091
5092         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
5093         __FP_FAST_FMAF, __FP_FAST_FMAL.
5094
5095         * builitns.c (expand_builtin_mathfn_ternary): New function for
5096         expanding ternary math functions, like fma.
5097         (expand_builtin): Call it for the fma builtins.
5098
5099         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
5100         ops at present.
5101
5102         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
5103         vectorizable functions to support vectorizing fma.
5104
5105         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
5106         Handle fma builtins.
5107
5108         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
5109         (UNSPEC_VSX_MSUB): Ditto.
5110         (UNSPEC_VSX_NMADD): Ditto.
5111         (UNSPEC_VSX_NMSUB): Ditto.
5112         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
5113         of UNSPEC. Renumber combiner patterns.
5114         (vsx_fmsub<mode>4*): Ditto.
5115         (vsx_fnmadd<mode>4*): Ditto.
5116         (vsx_fnmsub<mode>4*): Ditto.
5117
5118         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
5119         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
5120         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
5121         (altivec_vmaddfp_1): Ditto.
5122         (altivec_vmaddfp_2): Ditto.
5123         (atlivec_mulv4sf3): Ditto.
5124         (altivec_vnmsubfp): Ditto.
5125         (altivec_vnmsubfp_1): Ditto.
5126         (altivec_vnmsubfp_2): Ditto.
5127         (altivec_vnmsubfp_3): Delete.
5128
5129         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
5130         (fmasf4_fpr): Ditto.
5131         (fmssf4_fpr): Ditto.
5132         (fnmasf4_fpr): Ditto.
5133         (fnmssf4_fpr): Ditto.
5134         (fmadf4): Ditto.
5135         (fmadf4_fpr): Ditto.
5136         (fmsdf4_fpr): Ditto.
5137         (fnmadf4_fpr): Ditto.
5138         (fnmsdf4_fpr): Ditto.
5139
5140         * optabs.h (OTI_fma): Add fma optab.
5141         (fma_optab): Ditto.
5142
5143         * genopinit.c (optabs): Set fma optab.
5144
5145         * rtl.def (FMA): Add FMA rtl.
5146
5147         * tree.h (mode_has_fma): New function to return if MODE supports a
5148         fast multiply and add instruction.
5149         * builtins.c (mode_has_fma): Ditto.
5150
5151 2010-10-15  Jan Hubicka  <jh@suse.cz>
5152
5153         * lto-streamer-out.c (write_symbol): Use pointer set of seen
5154         objects instead of bitmap.
5155         (produce_symtab): Likewise; output defined symbols first.
5156
5157 2010-10-15  Jie Zhang  <jie@codesourcery.com>
5158
5159         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
5160         Option Summary and Index.
5161
5162 2010-10-15  Richard Guenther  <rguenther@suse.de>
5163
5164         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
5165         for automatic variables again.
5166
5167 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5168
5169         * doc/extend.texi (Variable Length): Don't refer to VLAs not
5170         conforming to C99.
5171
5172 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5173
5174         * config/rx/rx.c (rx_option_optimization): Change to
5175         rx_override_options_after_change.  Don't change
5176         flag_lto_compression_level.  Don't check for changes to whether
5177         FPU instructions can be used.  Check and set only
5178         flag_finite_math_only, not other fast-math flags.
5179         (rx_option_override): Call rx_override_options_after_change.
5180         (TARGET_OPTION_OPTIMIZATION): Remove.
5181         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
5182
5183 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5184
5185         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
5186         disable section anchors for lang_hooks.name[4] != 'O'.
5187
5188 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5189
5190         * config/frv/frv.c (frv_option_optimization,
5191         TARGET_OPTION_OPTIMIZATION): Remove.
5192         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
5193
5194 2010-10-15  Michael Matz  <matz@suse.de>
5195
5196         * cgraphunit.c (clone_of_p): Define unconditionally.
5197
5198 2010-10-15  Richard Guenther  <rguenther@suse.de>
5199
5200         PR lto/45957
5201         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
5202
5203 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
5204
5205         * ifcvt.c (find_active_insn_before): New function.
5206         (find_active_insn_after): New function.
5207         (cond_exec_process_if_block): Use new functions to replace
5208         prev_active_insn() and next_active_insn().
5209
5210 2010-10-14  Yao Qi  <yao@codesourcery.com>
5211
5212         PR target/45447
5213         * config/arm/arm.c (arm_build_builtin_va_list): Assign
5214         va_list_name to TYPE_STUB_DECL (va_list_type).
5215
5216 2010-10-14  Jan Hubicka  <jh@suse.cz>
5217
5218         PR middle-end/45621
5219         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
5220         redirected to clone, be happy.
5221         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
5222         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
5223         former_clone_of unconditionally.
5224
5225 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
5226
5227         Merge from FSF apple 'trunk' branch.
5228         2006 Fariborz Jahanian  <fjahanian@apple.com>
5229
5230         Radars 4436866, 4505126, 4506903, 4517826
5231         * c-parser.c (c_parser, objc_property_attr_context) New flag.
5232         (c_lex_one_token): Handle property attributes.
5233         (c_parser_external_declaration): Handle @property.
5234         (c_parser_declaration_or_fndef): Warn on invalid attributes before
5235         @alias, @class, @end and @property objc keywords.
5236         (c_parser_objc_methodprotolist): Handle @property.
5237         (c_parser_objc_property_attrlist): New.
5238         (c_parser_objc_at_property): New.
5239         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
5240         (build_modify_expr): Likewise.
5241
5242 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5243
5244         PR tree-optimization/46008
5245         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
5246
5247 2010-10-14  Richard Guenther  <rguenther@suse.de>
5248
5249         PR tree-optimization/44913
5250         * tree-data-ref.c (disjoint_objects_p): Remove.
5251         (dr_may_alias_p): Simplify.  Only hand the base object to
5252         the alias-oracle.
5253         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5254         some more trees, bail out instead of asserting.
5255         (ptr_derefs_may_alias_p): Likewise.  Export.
5256         (refs_may_alias_p_1): Handle STRING_CSTs.
5257         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
5258
5259 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5260
5261         PR c/45969
5262         * c-typeck.c (build_binary_op): Don't try to compute a semantic
5263         type with excess precision for boolean operations.
5264
5265 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
5266             Basile Starynkevitch  <basile@starynkevitch.net>
5267
5268         * gengtype.c:  Include getopt.h and version.h.
5269
5270         (lang_bitmap, struct outf, outf_p)
5271         (get_output_file_with_visibility, oprintf): Definitions moved to
5272         gengtype.h
5273         (output_files, header_file, srcdir, srcdir_len, this_file)
5274         (do_dump): No more static variables.
5275         (do_debug): New.
5276         (dbgprint_count_type_at): Added new function.
5277         (gengtype_long_options): New.
5278         (print_usage, print_version, parse_program_options): New.
5279         (main): Call parse_program_options, and removed old option
5280         handling code.  Added some debug output.
5281
5282         * gengtype.h:  Updated copyright year.
5283         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
5284         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
5285         Moved from gengtype.c to here.
5286         (do_debug, read_state_filename, write_state_filename): New variables.
5287         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
5288
5289         * Makefile.in:
5290         (REVISION): Always defined.
5291         (version.o): Removed ifdef REVISION_c.
5292         (s-gtype): Pass arguments to build/gengtype program.
5293         (build/version.o): Added building rule.
5294         (build/gengtype$(build_exeext)): Added build/version.o.
5295
5296 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
5297
5298         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
5299         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
5300         __strong macros.
5301
5302 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
5303
5304         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
5305         may_trap_or_fault_p instead of may_trap_p predicate.
5306         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
5307         (substitute_placeholder_in_expr): Likewise.
5308         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
5309         flag on MEM_REF nodes.
5310         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
5311         flags on INDIRECT_REF nodes.
5312
5313 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
5314
5315         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
5316         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
5317         (arm*-*-eabi*) <tm_file>: Likewise.
5318         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
5319         (frv-*-*linux*) <tm_file>: Likewise.
5320         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
5321         and associated helper macros.
5322         * config/frv/frv-abi.h: Delete.
5323
5324 2010-10-14  Richard Guenther  <rguenther@suse.de>
5325
5326         PR lto/44561
5327         * tree.def (NULLPTR_TYPE): New tree code.
5328         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
5329         * dwarf2out.c (is_base_type): Likewise.
5330         (gen_type_die_with_usage): Likewise.
5331         * sdbout.c (plain_type_1): Likewise.
5332         * tree.c (build_int_cst_wide): Likewise.
5333         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
5334
5335 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5336
5337         * params.c (params_finished): New.
5338         (add_params): Assert !params_finished.
5339         (finish_params): New.
5340         (set_param_value_internal): Take params and params_set
5341         parameters.  Assert params_finished.
5342         (set_param_value, maybe_set_param_value): Take params and
5343         params_set parameters.  Update calls to set_param_value_internal.
5344         (set_default_param_value): Assert !params_finished.  Don't use
5345         set_param_value_internal.
5346         (default_param_value, init_param_values): New.
5347         * params.h (struct param_info): Change value to default_value.
5348         Remove set.
5349         (set_param_value, maybe_set_param_value): Add params and
5350         params_set parameters.
5351         (PARAM_VALUE): Get parameters from global_options.
5352         (PARAM_SET_P): Remove.
5353         (finish_params, default_param_value, init_param_values): New.
5354         * common.opt (param_values): New Variable.
5355         * config/arm/arm.c (arm_option_override): Pass extra arguments to
5356         maybe_set_param_value.
5357         * config/i386/i386.c (ix86_option_override_internal): Pass extra
5358         arguments to maybe_set_param_value.
5359         * config/picochip/picochip.c (picochip_option_override): Pass
5360         extra arguments to maybe_set_param_value.
5361         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
5362         extra arguments to maybe_set_param_value.
5363         * config/s390/s390.c (s390_option_override): Use
5364         maybe_set_param_value instead of set_param_value.  Pass extra
5365         arguments to maybe_set_param_value.
5366         * config/sparc/sparc.c (sparc_option_override): Pass extra
5367         arguments to maybe_set_param_value.
5368         * config/spu/spu.c (spu_option_override): Pass extra arguments to
5369         maybe_set_param_value.
5370         * opts.c (handle_param): Take opts and opts_set parameters.
5371         Update call to set_param_value.
5372         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
5373         initial_loop_invariant_max_bbs_in_loop): Remove.
5374         (init_options_once): Don't set them.
5375         (init_options_struct): Initialize parameters structures.
5376         (default_options_optimization): Use default_param_value when
5377         restoring defaults.  Update calls to maybe_set_param_value.
5378         (finish_options): Update calls to maybe_set_param_value.
5379         (common_handle_option): Update calls to handle_param and
5380         set_param_value.
5381         * toplev.c (DEFPARAM): Update definition for changes to param_info.
5382         (general_init): Call finish_params.
5383
5384 2010-10-14  Nick Clifton  <nickc@redhat.com>
5385
5386         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
5387         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
5388         (FIRST_PSEUDO_REGISTER): Increase by one.
5389         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
5390         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
5391         (MODES_TIEABLE): Call mn10300_modes_tieable.
5392         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
5393         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
5394         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
5395         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
5396         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
5397         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
5398         (mn10300_cc_status_mdep): Delete.
5399         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
5400         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
5401         the combine-stack-adjust pass.
5402         (print_operand): Use the mode of the comparison operation to
5403         select the comparison suffix.
5404         (notice_update_cc): Delete.
5405         (mn10300_secondary_reload_class): Remove test for stack pointer
5406         based arithmetic.
5407         (output_tst): Rename to mn10300_output_cmp.
5408         (impossible_plus_operand): Move into predicates.md.
5409         (mn10300_legitimize_address): Make static.
5410         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
5411         constant pic operands.
5412         (mn10300_legitimate_constant_p): New function.
5413         (mn10300_case_values_threshold): Make static.
5414         (mn10300_hard_regno_mode_ok): New function.
5415         (mn10300_modes_tieable): New function.
5416         (mn10300_select_cc_mode): New function.
5417         * config/mn10300/predicates.md (impossible_plus_operand): Define.
5418         * config/mn10300/mn10300-protos.h: Tidy.
5419         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
5420         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
5421         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
5422         with clobbers or sets of CC_REG.
5423         (CC_REG): Define.
5424         (mov*): Remove use of CLR instruction.
5425         (cbranch_si4_<code>): New pattern/split.
5426         (integer_conditional_branch): New pattern.
5427         (cbranch_sf4_<code>): New pattern/split.
5428         (float_conditional_branch): New pattern.
5429         (casesi): Use addsi3 pattern instead of movsi pattern to add and
5430         move a value at the same time.
5431         (cc0 peepholes): Remove.
5432
5433 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5434
5435         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
5436         on RTX_FRAME_RELATED_P insns and the insn to which
5437         NOTE_INSN_EPILOGUE_BEG is attached.
5438         * sched-vis.c (print_value): Allow NULL value.
5439
5440 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5441
5442         PR rtl-optimization/45570
5443         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
5444         assert that we are pipelining outer loops.  Allow returning
5445         zero predecessors.
5446
5447 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5448
5449         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
5450         (tidy_control_flow): Tidy vertical space.
5451         (sel_remove_bb): New variable idx.  Use it to remember the basic
5452         block index before deleting the block.
5453         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
5454         (sel_merge_blocks): ... here.
5455         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
5456
5457 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5458
5459         * cse.c (is_dead_reg): Change into inline function that is not
5460         called through for_each_rtx.
5461         (set_live_p): Adjust caller.
5462         (insn_live_p): Don't reset DEBUG_INSNs here.
5463         (struct dead_debug_insn_data): New data.
5464         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
5465         (delete_trivially_dead_insns): If there is just one setter for the
5466         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
5467         and add DEBUG_INSN for it right before the removed setter and
5468         use the DEBUG_EXPR instead of the dead pseudo.
5469
5470 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
5471
5472         * et-forest.c (et_nca): Return NULL immediately when
5473         the dominance forest has disjoint components.
5474
5475 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
5476
5477         * ira.c (setup_class_hard_regs): Fix typo in indexing
5478         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
5479
5480 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
5481
5482         * graph.c (inbb): New variable.
5483         (start_bb): Set inbb to 1 if output is inside of a building block.
5484         (end_bb): Check if output is inside of a building block.
5485
5486 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5487
5488         PR rtl-optimization/45912
5489         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
5490         regno of registers instead of their index to compute the alignment.
5491
5492 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
5493
5494         * config/i386/i386.c (ix86_build_const_vector): Check vector
5495         mode instead of scalar mode.
5496         (ix86_build_signbit_mask): Likewise.
5497         (ix86_expand_fp_absneg_operator): Updated.
5498         (ix86_expand_copysign): Likewise.
5499         (ix86_expand_int_vcond): Likewise.
5500         (ix86_emit_swdivsf): Likewise.
5501         (ix86_sse_copysign_to_positive): Likewise.
5502         (ix86_expand_sse_fabs): Likewise.
5503         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
5504         * config/i386/sse.md (copysign<mode>3): Likewise.
5505         (sse2_cvtudq2ps): Likewise.
5506         (vec_unpacku_float_hi_v4si): Likewise.
5507         (vec_unpacku_float_lo_v4si): Likewise.
5508
5509         * config/i386/i386.c (ix86_builtins): Add
5510         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
5511         (bdesc_args): Likewise.
5512         (ix86_builtin_vectorized_function): Support
5513         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
5514         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
5515         and IX86_BUILTIN_CVTPS2DQ256.
5516         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
5517
5518         * config/i386/sse.md (STORENT_MODE): New.
5519         (VEC_FLOAT_MODE): Likewise.
5520         (VEC_EXTRACT_MODE): Likewise.
5521         (*avx_cvtdq2pd256_2): Likewise.
5522         (vec_pack_trunc_v4df): Likewise.
5523         (vec_interleave_highv8sf): Likewise.
5524         (vec_interleave_lowv8sf): Likewise.
5525         (storent<mode>): Macroized.
5526         (<code><mode>2: absneg): Likewise.
5527         (copysign<mode>3): Likewise.
5528         (vec_extract<mode>): Likewise.
5529
5530         PR target/44180
5531         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
5532         for V8SFmode.
5533
5534 2010-10-13  Richard Guenther  <rguenther@suse.de>
5535             H.J. Lu  <hongjiu.lu@intel.com>
5536
5537         * config/i386/sse.md (reduc_splus_v8sf): Add.
5538         (reduc_splus_v4df): Likewise.
5539         (vec_unpacks_hi_v8sf): Likewise.
5540         (vec_unpacks_lo_v8sf): Likewise.
5541         (*avx_cvtps2pd256_2): Likewise.
5542         (vec_unpacks_float_hi_v8si): Likewise.
5543         (vec_unpacks_float_lo_v8si): Likewise.
5544         (vec_interleave_highv4df): Likewise.
5545         (vec_interleave_lowv4df): Likewise.
5546
5547 2010-10-13  Richard Guenther  <rguenther@suse.de>
5548
5549         PR objc/45878
5550         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
5551         alone if there are no virtual methods.
5552
5553 2010-10-13  Richard Henderson  <rth@redhat.com>
5554
5555         * expr.c (build_personality_function): Take parameter LANG instead
5556         of parameter NAME.  Build the name based on the lang prefix and the
5557         unwind method in use.
5558         * tree.c (lhd_gcc_personality): Update call to
5559         build_personality_function.
5560
5561 2010-10-13  Richard Guenther  <rguenther@suse.de>
5562
5563         PR objc/45878
5564         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
5565
5566 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5567
5568         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
5569         Canonicalize input operands of ASM_OPERANDS insns.
5570
5571 2010-10-13  Richard Guenther  <rguenther@suse.de>
5572
5573         PR tree-optimization/45788
5574         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
5575         EH update until fixup-cfg.
5576
5577 2010-10-13  Julian Brown  <julian@codesourcery.com>
5578
5579         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
5580         from CORE_REGS and GENERAL_REGS classes.
5581         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
5582         final constraint for register preferencing.
5583
5584 2010-10-13  Richard Guenther  <rguenther@suse.de>
5585
5586         PR tree-optimization/45970
5587         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
5588         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
5589         (stmt_kills_ref_p): Likewise.
5590         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
5591
5592 2010-10-13  Richard Guenther  <rguenther@suse.de>
5593
5594         PR tree-optimization/45982
5595         * tree-ssa-structalias.c (make_constraints_to): New function.
5596         (make_constraint_to): Implement in terms of make_constraints_to.
5597         (find_func_aliases): Properly make return values of pure/const
5598         functions escape if they assign to sth that is not a pointer.
5599
5600 2010-10-13  Richard Guenther  <rguenther@suse.de>
5601
5602         PR middle-end/45874
5603         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5604         Fixup the CFG when EH was fixed up.
5605
5606 2010-10-13  Ira Rosen  <irar@il.ibm.com>
5607
5608         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
5609         Use operand's type for POINTER_PLUS_EXPR.
5610
5611 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
5612
5613         * c-parser.c (c_parser_for_statement): Initialize incr.
5614
5615 2010-10-12  Xinliang David Li  <davidxl@google.com>
5616
5617         PR tree-optimization/45972
5618         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
5619         with too many arguments.
5620
5621 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5622
5623         PR fortran/45636
5624         * tree-ssa-forwprop.c: Include expr.h.
5625         (constant_pointer_difference, simplify_builtin_call): New functions.
5626         (tree_ssa_forward_propagate_single_use_vars): Call
5627         simplify_builtin_call on builtin calls.
5628
5629 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
5630
5631         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
5632         (*adddi3_extend_sp32): Likewise.
5633         (*subdi3_insn_sp32): Likewise.
5634         (*subdi3_extend_sp32): Likewise.
5635         (*negdi2_sp32): Use negative test for consistency.
5636
5637 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5638
5639         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
5640         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5641         * config/fixed-bit.h: Likewise.
5642         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5643         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5644         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
5645         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
5646         (DF_SIZE): Likewise.
5647         * doc/tm.texi: Regenerate.
5648
5649 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5650
5651         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
5652         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
5653         (*isel_reversed_unsigned_<mode>): New.
5654         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
5655         as valid comparisons and adjust operands and output appropriately.
5656         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
5657
5658 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
5659
5660         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
5661         DATA_ALIGNMENT and add COND parameter. Update comments above.
5662         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
5663         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
5664
5665 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
5666
5667         PR bootstrap/45958
5668         * exec-tool.in: Support '-plugin' as the second option to the linker.
5669
5670 2010-10-12  Richard Henderson  <rth@redhat.com>
5671
5672         PR middle-end/45962
5673         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
5674         (expand_stack_vars): Assert large base allocated when used.
5675
5676 2010-10-12  Richard Guenther  <rguenther@suse.de>
5677
5678         * tree-ssa-structalias.c (get_constraint_for_1): Constants
5679         only point to nonlocal, not anything.
5680
5681 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5682
5683         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
5684         unwind info for exceptions.
5685
5686 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5687
5688         PR testsuite/45851
5689         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
5690         Document optional target selector.
5691
5692 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
5693
5694         * flag-types.h: New.
5695         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
5696         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
5697         options.h.
5698         (OPTIONS_H): Define.
5699         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
5700         of options.h.
5701         * configure.ac (tm_include_list): Include options.h not flags.h.
5702         * configure: Regenerate.
5703         * flags.h: Include flag-types.h.  Include options.h at top of file
5704         again.
5705         (enum debug_info_type, enum debug_info_level, enum
5706         debug_info_usage, enum symbol_visibility, struct visibility_flags,
5707         enum ira_algorithm, enum ira_region, enum excess_precision, enum
5708         graph_dump_types, enum stack_check_type,
5709         enum warn_strict_overflow_code): Move to flag-types.h
5710         * opth-gen.awk: Include flag-types.h in options.h.
5711
5712 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5713
5714         * expr.c (store_expr): Share code for STRING_CST and
5715         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
5716         check if target is a MEM.
5717
5718         * rtl.h: Include hashtab.h.
5719         (iterative_hash_rtx): New prototype.
5720         * rtl.c (iterative_hash_rtx): New function.
5721         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
5722         (output_loc_list): Return immediately if emitted is set, set it.
5723         (hash_loc_operands, hash_locs, hash_loc_list,
5724         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
5725         optimize_location_lists_1, optimize_location_lists): New function.
5726         (dwarf2out_finish): Call optimize_location_lists.
5727         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
5728
5729 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5730
5731         PR testsuite/45974
5732         Revert:
5733         * Makefile.in ($(lang_checks_parallel))
5734         ($(lang_checks_parallelized)): Use single quotes for
5735         $(RUNTESTFLAGS), to allow passing quoted content.
5736
5737 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5738
5739         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
5740         actual_oldval.  Use __builtin_expect.
5741         (SUBWORD_VAL_CAS): Likewise.
5742
5743 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5744
5745         * recog.c (nonmemory_operand): Call immediate_operand for
5746         CONSTANT_P operands.
5747
5748 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
5749
5750         * config/i386/i386.md (movmem<mode>): Macroize expander from
5751         movmem{si,di} using SWI48 mode iterator.
5752         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
5753         *strmovsi_rex_1 using P mode iterator.
5754         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
5755         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
5756         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
5757         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
5758         (setmem<mode>): Macroize expander from setmem{si,di} using
5759         SWI48 mode iterator.
5760         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
5761         *strsetsi_rex_1 using P mode iterator.
5762         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
5763         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
5764         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
5765         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
5766         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
5767         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
5768         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
5769         mode iterator.
5770         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
5771         *strlenqi_rex_1 using P mode iterator.
5772
5773 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
5774
5775         PR bootstrap/45445
5776         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
5777         static functions.
5778         (mark_ref_live, mark_ref_dead): Use them.
5779         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
5780         Save the original reg, and use the new functions.
5781         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
5782         changed.
5783         (check_and_make_def_conflict): Save the original reg.
5784
5785 2010-10-11  Martin Jambor  <mjambor@suse.cz>
5786
5787         PR middle-end/45699
5788         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
5789         thunks.
5790
5791 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5792
5793         * Makefile.in ($(lang_checks_parallel))
5794         ($(lang_checks_parallelized)): Use single quotes for
5795         $(RUNTESTFLAGS), to allow passing quoted content.
5796
5797         PR bootstrap/35855
5798         * opt-functions.awk (BEGIN): New section.
5799         (lower, upper, digit, alnum): New variables.
5800         (static_var, opt_sanitized_name): Use alnum instead of character
5801         classes, for non-C locale.
5802         * optc-gen.awk: Likewise.
5803         * opth-gen.awk: Likewise.
5804
5805 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
5806
5807         * target.def (preferred_reload_class): New hook.
5808         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
5809         * doc/tm.texi: Regenerate.
5810         * targhooks.c (default_preferred_reload_class): New function.
5811         * targhooks.h (default_preferred_reload_class): Declare.
5812         * reload.c (find_dummy_reload): Change preferred_class variable type
5813         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
5814         target hook.
5815         (find_reloads): Change goal_alternative array type from int to
5816         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
5817         (push_reload, find_reloads_address_part): Use
5818         TARGET_PREFERRED_RELOAD_CLASS target hook.
5819         * reload1.c (emit_input_reload_insns): Ditto.
5820         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
5821         hook. Change rclass argument and secondary_class variable types from
5822         'enum reg_class' to reg_class_t.
5823
5824         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
5825         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
5826         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
5827         Change regclass argument and result types from enum reg_class to
5828         reg_class_t.
5829         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5830
5831 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
5832
5833         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
5834         in masking operations.
5835         (simplify_const_unary_operation): Likewise.
5836         (simplify_binary_operation_1): Likewise.
5837         (simplify_const_binary_operation): Likewise.
5838         (simplify_const_relational_operation): Likewise.
5839         (simplify_ternary_operation): Likewise.
5840         (simplify_immed_subreg): Likewise.
5841
5842 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5843
5844         PR middle-end/45862
5845         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
5846         (TARGET_SUPPORTS_WEAK): New.
5847         * doc/tm.texi: Regenerate.
5848         * defaults.h (SUPPORTS_WEAK): Update comment.
5849         (TARGET_SUPPORTS_WEAK): New.
5850         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
5851         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
5852         SUPPORTS_WEAK.
5853         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
5854         make_decl_one_only): Likewise.
5855         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
5856         TARGET_SUPPORTS_WEAK.
5857         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
5858         instead of SUPPORTS_WEAK.
5859
5860 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5861
5862         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
5863
5864 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5865
5866         * vec.h (VEC_qsort): Define.
5867         * dbxout.c (output_used_types): Use it.
5868         * df-scan.c (df_sort_and_compress_refs): Likewise.
5869         (df_sort_and_compress_mws): Likewise.
5870         * genautomata.c (uniq_sort_alt_states): Likewise.
5871         (evaluate_equiv_classes): Likewise.
5872         (output_trans_table): Likewise.
5873         (output_state): Likewise.
5874         * gimplify.c (compare_case_labels): Likewise.
5875         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
5876         * ipa.c (build_cdtor_fns): Likewise.
5877         * lto.c (lto_wpa_write_files): Likewise.
5878         * sel-sched.c (fill_vec_av_set): Likewise.
5879         * tree-predcom.c (determine_roots_comp): Likewise.
5880         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
5881         (splice_param_accesses): Likewise.
5882         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
5883         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
5884         (reassociate_bb): Likewise.
5885         * tree-ssa-sccvn.c (sort_scc): Likewise.
5886         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
5887
5888 2010-10-11  Ian Lance Taylor  <iant@google.com>
5889
5890         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
5891         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
5892         TREE_THIS_NOTRAP when appropriate.
5893         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
5894         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
5895         newly created MEM_REF.
5896
5897 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5898
5899         Nathan Froyds patch to hooks FUNCTION_ARG etc.
5900         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
5901         (picochip_incoming_function_arg): Delete.
5902         (picochip_arg_advance): Delete.
5903         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
5904         (FUNCTION_INCOMING_ARG): Delete.
5905         (FUNCTION_ARG_ADVANCE): Delete.
5906         * config/picochip/picochip.c (picochip_function_arg): Take a
5907         const_tree and a bool.
5908         (picochip_incoming_function_arg): Likewise.
5909         (picochip_arg_advance): Likewise.
5910         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
5911         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5912
5913 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5914
5915         PR middle-end/45955
5916         * ipa.c (build_cdtor): Delete endless loop.
5917
5918 2010-10-07  Andi Kleen  <ak@linux.intel.com>
5919
5920         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
5921         checksum-options.
5922         (checksum-options): Add.
5923         (cc1-dummy): Remove.
5924         (cc1-checksum): Change to run checksum over object files
5925         and options only.
5926         * dummy-checksum.c: Remove.
5927         * genchecksum.c: Update copyright.
5928         (usage): Allow multiple arguments.
5929         (BLOCKSIZE): Add.
5930         (dosum): Change for incremental checksum. Remove C output.
5931         (main): Iterate over all argument files. Add C output.
5932
5933 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
5934
5935         * params.c (set_param_value_internal): New.
5936         (set_param_value): Use set_param_value_internal.
5937         (maybe_set_param_value, set_default_param_value): New.
5938         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
5939         (maybe_set_param_value, set_default_param_value): Declare.
5940         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
5941         * config/i386/i386.c (ix86_option_override_internal): Use
5942         maybe_set_param_value.
5943         * config/ia64/ia64.c (ia64_option_default_params,
5944         TARGET_OPTION_DEFAULT_PARAMS): New.
5945         (ia64_option_optimization): Move some code to
5946         ia64_option_default_params.
5947         * config/picochip/picochip.c (picochip_option_override): Use
5948         maybe_set_param_value.
5949         * config/rs6000/rs6000.c (rs6000_option_default_params,
5950         TARGET_OPTION_DEFAULT_PARAMS): New.
5951         (rs6000_option_override_internal): Use maybe_set_param_value.
5952         (rs6000_option_optimization): Move some code to
5953         rs6000_option_default_params.
5954         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
5955         * config/sh/sh.c (sh_option_default_params,
5956         TARGET_OPTION_DEFAULT_PARAMS): New.
5957         (sh_option_optimization): Move some code to sh_option_default_params.
5958         * config/sparc/sparc.c (sparc_option_override): Use
5959         maybe_set_param_value.
5960         * config/spu/spu.c (spu_option_default_params,
5961         TARGET_OPTION_DEFAULT_PARAMS): New.
5962         (spu_option_optimization): Move some code to spu_option_default_params.
5963         (spu_option_override): Use maybe_set_param_value.
5964         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
5965         * doc/tm.texi: Regenerate.
5966         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
5967         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
5968         compiler_params.
5969         (default_options_optimization): Use maybe_set_param_value.
5970         (finish_options): Use maybe_set_param_value.
5971         * target.def (target_option.default_params): New hook.
5972         * toplev.c (general_init): Call targetm.target_option.default_params.
5973
5974 2010-10-11  Ira Rosen  <irar@il.ibm.com>
5975
5976         PR tree-optimization/45902
5977         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
5978         vector type for constants, unless it's a pointer.
5979
5980 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5981
5982         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
5983
5984 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR target/45870
5987         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
5988         (ix86_delegitimize_address): Use it.
5989
5990 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
5991
5992         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
5993
5994 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
5995
5996         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
5997         to cum struct in the call to function_arg_advance.
5998         (alpha_function_arg_advance): Mark named as unused.
5999
6000 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
6001
6002         * config/mips/mips.c (mips_handle_option): Make "value" with
6003         ATTRIBUTE_UNUSED.
6004
6005 2010-10-09  Richard Henderson  <rth@redhat.com>
6006
6007         PR rtl-opt/33721
6008         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
6009         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
6010         required_align, tidy the code a bit.  Emit split_stack code in the
6011         right place.  Mark the return value with the alignment properly.
6012         * expr.h (allocate_dynamic_stack_space): Update decl.
6013         * builtins.c (expand_builtin_apply): Update call to
6014         allocate_dynamic_stack_space.
6015         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
6016         * calls.c (initialize_argument_information): Update call to
6017         allocate_dynamic_stack_space.
6018         (expand_call): Likewise.
6019
6020         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
6021         Don't update_stack_alignment here.
6022         (alloc_stack_frame_space): Make ALIGN unsigned.
6023         (stack_var_cmp): Sort by alignment too.
6024         (partition_stack_vars): Don't merge large and small alignment vars.
6025         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
6026         Take care when BASE is not virtual_stack_vars_rtx.
6027         (expand_stack_vars): Allocate dynamic stack space for large
6028         alignment variables.
6029         (expand_one_stack_var): Update all to expand_one_stack_var_at.
6030         (defer_stack_allocation): True for large alignment vars.
6031         (update_stack_alignment): Merge into ...
6032         (expand_one_var): ... here.
6033         (gimple_expand_cfg): Place code from expand_stack_vars.
6034
6035 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6036
6037         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6038         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
6039         (pdp11_function_arg_advance): New function.
6040         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6041
6042 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6043
6044         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
6045         * libgcc2.c: Likewise.
6046
6047 2010-10-09  Richard Guenther  <rguenther@suse.de>
6048
6049         PR lto/45956
6050         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
6051         Properly check if a decl is an automatic var.
6052
6053 2010-10-09  Richard Guenther  <rguenther@suse.de>
6054
6055         PR lto/45947
6056         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
6057
6058 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6059
6060         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
6061         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6062         * config/mmix/mmix.c (mmix_function_arg): Rename to...
6063         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
6064         bool arguments.
6065         (mmix_function_arg): New function.
6066         (mmix_function_incoming_arg): New function.
6067         (mmix_function_arg_advance): New function.
6068         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6069         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6070
6071 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6072
6073         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6074         * config/vax/vax.c (vax_function_arg): New function.
6075         (vax_function_arg_advance): New function.
6076         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6077
6078 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6079
6080         * config/pa/pa-protos.h (function_arg): Delete.
6081         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6082         * config/pa/pa.c (function_arg): Rename to...
6083         (pa_function_arg): ...this.  Make static.  Take a const_tree and
6084         a bool.
6085         (pa_function_arg_advance): New function.
6086         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6087
6088 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6089
6090         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6091         * config/m68k/m68k.c (m68k_function_arg): New function.
6092         (m68k_function_arg_advance): New function.
6093         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6094
6095 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6096
6097         * config/avr/avr-protos.h (function_arg): Delete.
6098         (function_arg_advance): Delete.
6099         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6100         * config/avr/avr.c (function_arg): Rename to...
6101         (avr_function_arg): ...this.  Make static.  Take a const_tree and
6102         a bool.
6103         (function_arg_advance): Rename to...
6104         (avr_function_arg_advance): ...this.  Make static.  Take a
6105         const_tree and a bool.
6106         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6107
6108 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6109
6110         * config/alpha/alpha-protos.h (function_arg): Delete.
6111         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6112         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
6113         * config/alpha/alpha.c (function_arg): Rename to...
6114         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
6115         a bool.  Delete TARGET_ABI_UNICOSMK code.
6116         (alpha_function_arg_advance): New function.
6117         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6118
6119 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6120
6121         * config/mep/mep-protos.h (mep_function_arg): Delete.
6122         (mep_function_arg_advance): Delete.
6123         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6124         * config/mep/mep.c (mep_function_arg): Make static.  Take a
6125         const_tree and a bool.
6126         (mep_function_arg_advance): Likewise.
6127         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6128
6129 2010-10-09  Richard Guenther  <rguenther@suse.de>
6130
6131         PR tree-optimization/45945
6132         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
6133
6134 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
6135
6136         PR tree-optimization/45612
6137         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
6138         Test LABEL_DECLs as well.  Fix formatting issues.
6139         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
6140         whose label is present in NON_SSA_VARS.
6141         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
6142         as well.  Fix formatting issues.
6143         (visit_bb): Fix typos and formatting issue.
6144
6145 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6146
6147         PR tree-optimization/45950
6148         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
6149         before initializing vno->op.
6150
6151 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
6152
6153         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
6154         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
6155
6156 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
6157
6158         PR target/45913
6159         * config/i386/i386.c (ix86_binary_operator_ok): Support
6160         "andhi/andsi/anddi" as a zero-extending move.
6161
6162 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6163
6164         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
6165         into a temporary array.
6166
6167 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
6168
6169         PR tree-optimization/45903
6170         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
6171         of {A,L}SHIFTRT of MEM.
6172
6173 2010-10-08  Richard Guenther  <rguenther@suse.de>
6174
6175         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6176         Re-construct BLOCK_VARS.
6177         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
6178         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6179         * tree.c (free_lang_data_in_block): Remove.
6180         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
6181         Do not touch the BLOCK tree.
6182         * expr.c (expand_expr_real_1): Allow externals.
6183
6184 2010-10-08  Richard Guenther  <rguenther@suse.de>
6185
6186         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
6187         Do not output BLOCK_SUBBLOCKS.
6188         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
6189         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
6190         Re-construct BLOCK_SUBBLOCKS of parent block.
6191         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
6192         for BINFO_BASE_ACCESSES.
6193
6194 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
6195
6196         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
6197         (TREE_H): Include $(FLAGS_H) instead of options.h.
6198         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
6199         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
6200         * common.opt (flag_complex_method, flag_evaluation_order,
6201         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
6202         Variable declarations.
6203         * configure.ac (tm_include_list): Include flags.h instead of options.h.
6204         * configure: Regenerate.
6205         * flags.h: Condition out contents for target libraries.  Include
6206         options.h at end of file.
6207         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
6208         flag_evaluation_order, flag_warn_unused_result): Remove.
6209         * gcc.c (main): Intialize global_options with global_options_init.
6210         * langhooks-def.h (lhd_init_options_struct): Declare.
6211         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
6212         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
6213         * langhooks.c (lhd_init_options_struct): New.
6214         * langhooks.h (struct lang_hooks): Add init_options_struct.
6215         Update comment on init_options.
6216         * optc-gen.awk: Generate initializer for global_options_init, not
6217         global_options.
6218         * opth-gen.awk: Condition out structure declarations for target
6219         libraries.  Declare global_options_init.
6220         * opts-common.c: Include flags.h instead of options.h.
6221         * opts.c (flag_warn_unused_result): Remove.
6222         (read_cmdline_options): Take gcc_options parameters.  Pass them to
6223         read_cmdline_option.
6224         (initial_lang_mask, initial_min_crossjump_insns,
6225         initial_max_fields_for_field_sensitive,
6226         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
6227         (init_options_once): New.  Split out of decode_options.
6228         (init_options_struct): New.  Split out of decode_options.
6229         (decode_cmdline_options_to_array_default_mask): New.
6230         (default_options_optimization): New.  Split out of decode_options.
6231         (decode_options): Move most code to other functions.  Update call
6232         to read_cmdline_options.
6233         (finish_options): New.  Split out of decode_options.
6234         * opts.h (decode_options): Add gcc_options parameters.
6235         (init_options_once, init_options_struct,
6236         decode_cmdline_options_to_array_default_mask): New.
6237         * toplev.c (flag_complex_method, flag_ira_algorithm,
6238         flag_ira_region, flag_evaluation_order): Remove.
6239         (general_init): Use global_options_init for initial flag values
6240         for global_dc.
6241         (toplev_main): Call init_options_once, init_options_struct,
6242         lang_hooks.init_options_struct,
6243         decode_cmdline_options_to_array_default_mask and
6244         lang_hooks.init_option before decode_options.  Update arguments to
6245         decode_options.
6246         * tree.h: Include flags.h instead of options.h.
6247
6248 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6249
6250         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6251
6252 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6253
6254         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
6255         Delete.
6256         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
6257         (FUNCTION_INCOMING_ARG): Delete.
6258         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
6259         (function_arg_slotno): Likewise.  Take bool arguments.
6260         (sparc_arg_partial_bytes): Update call to it.
6261         (function_arg): Rename to...
6262         (sparc_function_arg_1): ...this.  Take bool arguments.
6263         (sparc_function_arg, sparc_function_incoming_arg): New functions.
6264         (function_arg_advance): Rename to...
6265         (sparc_function_arg_advance): ...this.  Take bool argument.
6266         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
6267         (TARGET_FUNCTION_INCOMING_ARG): Define.
6268
6269 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6270
6271         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
6272         Delete.
6273         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6274         * config/bfin/bfin.c (function_arg_advance): Rename to...
6275         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
6276         and bool arguments.
6277         (function_arg): Rename to...
6278         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
6279         arguments.
6280         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6281
6282 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6283
6284         * config/score/score-protos.h (score_function_arg): Delete.
6285         (score_function_arg_advance): Delete.
6286         * config/score/score3.h (score3_function_arg_advance): Take a
6287         const_tree and a bool.
6288         (score3_function_arg): Likewise.
6289         * config/score/score7.h (score7_function_arg_advance): Likewise.
6290         (score7_function_arg): Likewise.
6291         * config/score/score3.c (score3_classify_arg): Likewise.
6292         (score3_function_arg_advance, score3_function_arg): Likewise.
6293         * config/score/score7.c (score7_classify_arg): Likewise.
6294         (score7_function_arg_advance, score7_function_arg): Likewise.
6295         * config/score/score.c (score_function_arg_advance): Likewise.
6296         (score_function_arg): Likewise.  De-const-ify `cum' argument.
6297         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6298
6299 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6300
6301         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
6302         (s390_function_arg): Delete.
6303         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6304         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
6305         (s390_function_arg_integer): Likewise.
6306         (s390_function_arg_advance): Make static.  Take a const_tree and
6307         a bool.
6308         (s390_function_arg): Likewise.
6309         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6310
6311 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6312
6313         * config/spu/spu-protos.h (spu_function_arg): Delete.
6314         * config/spu/spu.h (FUNCTION_ARG): Delete.
6315         (FUNCTION_ARG_ADVANCE): Move code to ...
6316         * config/spu/spu.c (spu_function_arg_advance): New function.
6317         (spu_function_arg): Make static.  Take a const_tree and a bool.
6318         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
6319         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6320
6321 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6322
6323         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6324
6325 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6326
6327         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
6328         (init_vn_nary_op_from_op): New function.
6329         (init_vn_nary_op_from_stmt): New function.
6330         (vn_nary_op_lookup_1): New function.
6331         (sizeof_vn_nary_op): New function.
6332         (alloc_vn_nary_op_noinit): New function.
6333         (alloc_vn_nary_op): New function.
6334         (vn_nary_op_insert_into): New function.
6335         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
6336         (vn_nary_op_lookup): Likewise.
6337         (vn_nary_op_lookup_stmt): Likewise.
6338         (vn_nary_op_insert_pieces): Likewise.
6339         (vn_nary_op_insert): Likewise.
6340         (vn_nary_op_insert_stmt): Likewise.
6341         (copy_nary): Likewise.
6342         (set_value_id_for_result): New function.
6343         (set_hashtable_value_ids): Call it.
6344
6345 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6346
6347         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6348         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
6349
6350 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6351
6352         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
6353         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6354
6355 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6356
6357         PR debug/45656
6358         * cse.c (cse_extended_basic_block): Preserve cc0 info across
6359         debug isnsn.  Skip them when searching for cc0 setter.
6360         (set_live_p): Skip debug insns when searching for cc0 user.
6361
6362 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6363
6364         PR debug/45673
6365         PR debug/45604
6366         PR debug/45419
6367         PR debug/45408
6368         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
6369         type of MEM_REFs to INTEGER_CSTs.
6370
6371 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6372
6373         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
6374         m68hc11_print_operand_address.
6375
6376 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6377
6378         * builtins.c (rewrite_call_expr): Move code to...
6379         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
6380         (rewrite_call_expr_array): New function.
6381         (fold_builtin_sprintf_chk_1): New function.
6382         (fold_builtin_sprintf_chk): Call it.
6383         (gimple_fold_builtin_sprintf_chk): Likewise.
6384         (fold_builtin_snprintf_chk_1): New function.
6385         (fold_builtin_snprintf_chk): Call it.
6386         (gimple_fold_builtin_snprintf_chk): Likewise.
6387         (gimple_rewrite_call_expr): Delete.
6388
6389 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6390
6391         * config.host: Update copyright year.
6392
6393 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6394
6395         * config.host (host_lto_plugin_soname): New shell variable.
6396         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
6397         * config.in: Regenerate.
6398         * configure: Regenerate.
6399         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
6400         LTO plugin shared library.
6401
6402 2010-10-07  Richard Henderson  <rth@redhat.com>
6403
6404         * target.h (enum unwind_info_type): Move ...
6405         * coretypes.h: ... here.
6406
6407 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
6408
6409         * doc/objc.texi (Fast enumeration protocol): Mention that
6410         'unsigned int' can also be used instead of 'unsigned long' in
6411         countByEnumeratingWithState:objects:count:.
6412
6413 2010-10-07  Martin Jambor  <mjambor@suse.cz>
6414
6415         * tree-sra.c (struct access): New field grp_assignment_write.
6416         (dump_access): Dump grp_assignment_write.
6417         (build_accesses_from_assign): Set grp_assignment_write.
6418         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
6419         (mark_read_status): Renamed to mark_rw_status, individual values
6420         renamed too.
6421         (analyze_access_subtree): Changed type of mark_write to
6422         mark_read_status.  Fixed propagating of mark_read and
6423         mark_write.  Changed benefit estimate.  Updated comment.
6424
6425 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6426
6427         PR Tree-Vect/45847
6428         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
6429         check for vectype_out returned by get_vectype_for_scalar_type().
6430
6431 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6432
6433         PR target/45805
6434         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
6435         constraint, add register specifier in instruction template.
6436         (neon_vec_pack_trunc_<mode>): Likewise.
6437         (neon_vec_<US>mult_<mode>): Add register specifier to
6438         instruction template.
6439
6440 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6441
6442         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
6443         cygwin2.o.
6444         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
6445         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
6446         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
6447         (cygwin2.o): Likewise.
6448         * config/i386/cygwin1.c: Delete file.
6449         * config/i386/cygwin2.c: Likewise.
6450         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
6451         make all {%!mno-cygwin} ones unconditional.
6452         (STARTFILE_SPEC): Likewise.
6453         (REAL_LIBGCC_SPEC): Likewise.
6454         (LIB_SPEC): Likewise.
6455         (CXX_WRAP_SPEC): Likewise.
6456         (LINK_SPEC): Likewise.
6457         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
6458         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
6459         (cygwin_gplusplus_include_dir): Delete now-unused array.
6460         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
6461         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
6462         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
6463         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
6464         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
6465         (cygwin_local_include_dir): Delete now-unused array.
6466         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
6467         (cygwin_cross_include_dir): Delete now-unused array.
6468         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
6469         (cygwin_tool_include_dir): Delete now-unused array.
6470         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
6471         (cygwin_standard_include_dir): Delete now-unused array.
6472         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
6473         (GEN_CVT_ARRAY): Delete now-unused macro definition.
6474         (cvt_to_mingw): Delete now-unused array.
6475         (mingw_scan): Remove prototype of deleted function.
6476         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
6477         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
6478         * doc/invoke.texi (-mcygwin): Don't document removed option.
6479         (-mno-cygwin): Likewise.
6480
6481 2010-10-07  Richard Guenther  <rguenther@suse.de>
6482
6483         * machmode.h (mode_for_vector): Declare.
6484         * stor-layout.c (mode_for_vector): New function, split out from ...
6485         (layout_type): ... here.
6486         * tree-vectorizer.h (current_vector_size): Declare.
6487         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
6488         mask vector type is available.
6489         (get_vectype_for_scalar_type): Rename to ...
6490         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
6491         size argument.
6492         (get_vectype_for_scalar_type): New wrapper around
6493         get_vectype_for_scalar_type_and_size using current_vector_size.
6494         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
6495         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
6496         of vect_analyze_loop here.
6497         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
6498         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
6499         to autodetect.
6500         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
6501         V8SF to V8SI conversion builtin.
6502
6503 2010-10-07  Richard Guenther  <rguenther@suse.de>
6504
6505         * target.def (autovectorize_vector_sizes): New target hook.
6506         * targhooks.c (default_autovectorize_vector_sizes): New function.
6507         * targhooks.h (default_autovectorize_vector_sizes): Declare.
6508         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
6509         Document.
6510         * doc/tm.texi: Update.
6511         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
6512         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6513
6514 2010-10-07  Richard Guenther  <rguenther@suse.de>
6515
6516         * target.def (units_per_simd_word): Rename to ...
6517         (preferred_simd_mode): ... this.  Return mode instead of size.
6518         * targhooks.c (default_units_per_simd_word): Rename to ...
6519         (default_preferred_simd_mode): ... this.  Return word_mode.
6520         * targhooks.h (default_preferred_simd_mode): Declare.
6521         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
6522         (arm_preferred_simd_mode): ... this.  Re-implement.
6523         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
6524         (ix86_preferred_simd_mode): ... this.  Re-implement.
6525         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
6526         (sparc_preferred_simd_mode): ... this.  Re-implement.
6527         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
6528         (mips_preferred_simd_mode): ... this.  Re-implement.
6529         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
6530         (rs6000_preferred_simd_mode): ... this.  Re-implement.
6531         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
6532         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
6533         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
6534         * doc/tm.texi: Update.
6535
6536 2010-10-07  Richard Guenther  <rguenther@suse.de>
6537
6538         PR middle-end/45869
6539         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
6540         of pointers.
6541
6542 2010-10-07  Alan Modra  <amodra@gmail.com>
6543
6544         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
6545         rather than sign extension by hand.
6546
6547 2010-10-07  Jan Hubicka  <jh@suse.cz>
6548
6549         PR middle-end/45926
6550         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
6551
6552 2010-10-07  Richard Guenther  <rguenther@suse.de>
6553
6554         PR bootstrap/45914
6555         * configure.ac: Fix typo.
6556         * configure: Regenerated.
6557
6558 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6559
6560         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
6561         define_builtin_std where it's unnecessary.
6562         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
6563
6564 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
6565
6566         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
6567         * doc/tm.texi.in: Regenerate.
6568         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
6569         * targhooks.c (default_class_likely_spilled_p): Don't use the
6570         CLASS_LIKELY_SPILLED_P macro.
6571
6572         * config/arm/arm.md: Update comment.
6573
6574 2010-10-06  Jan Hubicka  <jh@suse.cz>
6575
6576         * ipa.c (cgraph_remove_unreachable_nodes): External references can
6577         always be removed.
6578         (cgraph_externally_visible_p): We can not bring local comdats that
6579         are known to linker; fix handling of internal visibility.
6580         (function_and_variable_visibility): Likewise.
6581
6582 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
6583
6584         PR rtl-optimization/45394
6585         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
6586         (struct rtx_subst_pair): Remove AFTER field.
6587         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
6588         (propagate_for_debug): Remove MOVE parameter and adjust.
6589         (try_combine): In the special case where I2 is a PARALLEL, combine only
6590         destinations of SETs and set I2SRC to the I2 source.
6591         Adjust calls to propagate_for_debug throughout.
6592         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
6593         insns.
6594
6595 2010-10-06  Olivier Hainque  <hainque@adacore.com>
6596
6597         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
6598         switch on insn codes as sequence of ifs.
6599
6600 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6601
6602         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
6603         be UI_NONE for picochip.
6604         (picochip_option_override): Do not disable exception flags.
6605         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
6606         Declare.
6607
6608 2010-10-06  Richard Guenther  <rguenther@suse.de>
6609
6610         * Makefile.in (regmove.o): Depend on $(TARGET_H).
6611
6612 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
6613
6614         Implemented fast enumeration for Objective-C.
6615         * c-parser.c (objc_could_be_foreach_context): New.
6616         (c_lex_one_token): Recognize RID_IN keyword in a potential
6617         Objective-C foreach context.
6618         (c_parser_declaration_or_fndef): Added parameter.  Accept
6619         Objective-C RID_IN keyword as terminating a declaration; in that
6620         case, return the declaration in the new parameter.
6621         (c_parser_extenral_declaration): Updated calls to
6622         c_parser_declaration_or_fndef.
6623         (c_parser_declaration_or_fndef): Same change.
6624         (c_parser_compound_statement_nostart): Same change.
6625         (c_parser_label): Same change.
6626         (c_parser_objc_methodprotolist): Same change.
6627         (c_parser_omp_for_loop): Same change.
6628         (c_parser_for_statement): Detect and parse Objective-C foreach
6629         statements.
6630         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
6631         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
6632         fast enumeration parsing code to turn off the c99 error but still
6633         perform checks on the loop declarations.
6634         * c-tree.h (check_for_loop_decls): Updated declaration.
6635         * doc/objc.texi: Document fast enumeration.
6636
6637 2010-10-06  Nick Clifton  <nickc@redhat.com>
6638
6639         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
6640         (MDR_REGNUM): Define.
6641         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
6642         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
6643         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
6644         (REGISTER_NAMES): Add MDR.
6645         (DWARF2_DEBUGGING_INFO): Define to 1.
6646         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6647         (F): New function.  Sets RTX_FRAME_RELATED_P.
6648         (mn10300_gen_multiple_store): Use F.
6649         (expand_prologue): Use F.  Use gen_movsf() to push floating
6650         point registers.
6651         (expand_epilogue): Use gen_movsf() to pop floating point registers.
6652         (mn10300_option_override): Disable combine stack adjust pass.
6653
6654 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
6655
6656         PR target/45901
6657         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
6658         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
6659
6660 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
6661
6662         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
6663         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
6664         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
6665         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
6666         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
6667         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
6668         BUILT_IN_TOUPPER): Mark as leaf.
6669
6670         PR middle-end/45838
6671         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
6672         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
6673         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
6674         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
6675         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
6676         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
6677         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
6678
6679 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
6680
6681         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
6682         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6683         (m68hc11_class_likely_spilled_p): New function.
6684
6685 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
6686
6687         * c-parser.c (c_parser_objc_method_definition): Updated comment.
6688
6689 2010-10-05  Jan Hubicka  <jh@suse.cz>
6690
6691         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
6692         Document.
6693         * opts.c (decode_options): Handle lto partitions.
6694         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
6695         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
6696
6697 2010-10-05  Jan Hubicka  <jh@suse.cz>
6698
6699         * cgraphunit.c (assemble_function): Output thunks and aliases before
6700         the function itself.
6701
6702 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
6703
6704         * config/picochip/picochip.c (picochip_option_override): Disable
6705         exception flags for picochip.
6706
6707 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
6708
6709         * opts-common.c (handle_option, handle_generated_option,
6710         read_cmdline_option, set_option): Add diagnostic_context
6711         parameter.  Update calls among these functions.
6712         (set_option): Don't use global_dc.
6713         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
6714         (decode_options): Pass global_dc to enable_warning_as_error.
6715         (common_handle_option): Pass global_dc to enable_warning_as_error.
6716         (enable_warning_as_error): Add diagnostic_context parameter.
6717         Document parameters.  Don't use global_dc.  Pass
6718         diagnostic_context parameter to handle_generated_option.
6719         * opts.h (set_option, handle_option, handle_generated_option,
6720         read_cmdline_option, enable_warning_as_error): Add
6721         diagnostic_context parameter.
6722         * Makefile.in (lto-opts.o): Update dependencies.
6723         * coretypes.h (struct diagnostic_context, diagnostic_context):
6724         Declare here.
6725         * diagnostic.h (diagnostic_context): Don't declare typedef here.
6726         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
6727         * langhooks-def.h (struct diagnostic_context): Don't declare here.
6728         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
6729         using diagnostic_context typedef.
6730         * langhooks.c (lhd_initialize_diagnostics): Declare using
6731         diagnostic_context typedef.
6732         * langhooks.h (struct diagnostic_context): Don't declare here.
6733         (initialize_diagnostics, print_error_function): Declare using
6734         diagnostic_context typedef.
6735         * lto-opts.c: Include diagnostic.h.
6736         (lto_reissue_options): Pass global_dc to set_option.  Pass
6737         DK_UNSPECIFIED not 0.
6738         * plugin.c (plugins_internal_error_function): Declare using
6739         diagnostic_context typedef.
6740         * plugin.h (struct diagnostic_context): Don't declare here.
6741         (plugins_internal_error_function): Declare using
6742         diagnostic_context typedef.
6743
6744 2010-10-05  Olivier Hainque  <hainque@adacore.com>
6745             Nicolas Roche  <roche@adacore.com>
6746
6747         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
6748         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
6749
6750 2010-10-05  Ira Rosen  <irar@il.ibm.com>
6751
6752         PR tree-optimization/45752
6753         * tree-vect-slp.c (vect_get_mask_element): Remove static
6754         variables, make them function arguments.
6755         (vect_transform_slp_perm_load): Pass new arguments to
6756         vect_get_mask_element.
6757
6758 2010-10-05  Richard Guenther  <rguenther@suse.de>
6759
6760         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
6761         (gimple_mod_pow2): Likewise.
6762         (gimple_mod_subtract): Likewise.
6763         (gimple_ic): Likewise.
6764         (gimple_stringop_fixed_value): Likewise.
6765         * tree-profile.c (tree_init_edge_profiler): Mark profile
6766         functions nothrow and leaf.
6767         (add_abnormal_goto_call_edges): Remove.
6768         (tree_gen_edge_profiler): Work on SSA form.
6769         (tree_gen_ic_profiler): Likewise.  Simplify.
6770         (do_tree_profiling): Update SSA form.
6771         (pass_tree_profile): Remove.
6772         (do_tree_profiling): Likewise.
6773         (gate_tree_profile_ipa): New function.
6774         (pass_ipa_tree_profile): New.
6775         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
6776         state of instrumented functions.
6777         * passes.c (init_optimization_passes): Remove early non-SSA
6778         inlining.  Move profiling after early optimizations.
6779         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
6780         (pass_ipa_early_inline): Likewise.
6781         * tree-pass.h (pass_ipa_early_inline): Remove.
6782         (pass_tree_profile): Likewise.
6783         (pass_ipa_tree_profile): Declare.
6784
6785 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6786             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
6787
6788         * config/s390/s390.c (z196_cost): New.
6789         (s390_handle_arch_option): Add -march=z196.
6790         (s390_option_override): Use the new cost function and use the z10
6791         defaults also for z196.
6792         (legitimate_reload_constant_p): Adjust comment.
6793         (legitimate_reload_fp_constant_p): New function.
6794         (s390_preferred_reload_class): Distingiush between FP and Int constants.
6795         (preferred_la_operand_p): Avoid la with index on z196.
6796         (s390_adjust_priority): Trigger also for z196.
6797         (s390_issue_rate): Issue rate for z196 is 3.
6798         (s390_z10_fix_long_loop_prediction): Rename to ...
6799         (s390_fix_long_loop_prediction): ... this.
6800         (s390_reorg): Apply the z10 adjustments also for z196.
6801         (s390_loop_unroll_adjust): Do this also for z196.
6802         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
6803         (enum processor_flags): Add PF_Z196.
6804         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
6805         (TARGET_CPU_Z196, TARGET_Z196): New macros.
6806         * config.gcc: Enable z196 for --with-arch.
6807         * config/s390/2817.md: New file.
6808         * config/s390/2084.md: New type for multiply and add.
6809         * config/s390/2097.md: Likewise.
6810         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
6811         (UNSPECV_ATOMIC_OP): New constants.
6812         (fmadddf, fmaddsf): New values for type attribute.
6813         (z196prop): New insn attribute.
6814         (cpu, cpu_facility): Add z196.
6815         (ATOMIC_Z196): New code iterator.
6816         (noxa): New code attribute.
6817         (gk): New mode attribute.
6818         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
6819         Support load zero for fp constants.
6820         (fixuns_truncdddi2, fixuns_trunctddi2)
6821         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
6822         for z196.
6823         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
6824         (popcounthi2, popcountqi2): New expander.
6825         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
6826         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
6827         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
6828         insn definition.
6829         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
6830         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
6831         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
6832         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
6833         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
6834         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
6835         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
6836         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
6837         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
6838         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
6839         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
6840         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
6841         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
6842         Support new z196 instructions.
6843
6844 2010-10-05  Richard Guenther  <rguenther@suse.de>
6845
6846         PR middle-end/45877
6847         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
6848         case where gimplification optimizes away the stmt.
6849
6850 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6851
6852         PR debug/45849
6853         * var-tracking.c (strip_pointer_flags): New function.
6854         (emit_note_insn_var_location): If rtx_equal_p check failed,
6855         retry on locations simplified with simplify_replace_fn_rtx
6856         and strip_pointer_flags as its callback.
6857
6858 2010-10-04  Jan Hubicka  <jh@suse.cz>
6859
6860         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
6861         (can_refer_decl_in_current_unit_p): ... this one; reverse return
6862         value; handle comdats too.
6863         (canonicalize_constructor_val): Use it; handle function_decls
6864         correctly.
6865         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6866         * gimple.c (get_base_address): Accept all kinds of decls.
6867
6868 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6869
6870         * flags.h (g_switch_value, g_switch_set): Remove.
6871         * opts.c (g_switch_value, g_switch_set): Remove.
6872         * config/g.opt (G): Add Var(g_switch_value).
6873         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
6874         (alpha_option_override): Check global_options_set.x_g_switch_value
6875         instead of g_switch_set.
6876         (alpha_in_small_data_p): Remove cast in comparison with
6877         g_switch_value.
6878         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
6879         g_switch_value to unsigned HOST_WIDE_INT.
6880         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
6881         with g_switch_value.
6882         (frv_handle_option): Don't handle -G here.
6883         (frv_option_override): Check global_options_set.x_g_switch_value
6884         instead of g_switch_set.  Don't modify g_switch_set.
6885         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
6886         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
6887         g_switch_value to unsigned HOST_WIDE_INT.
6888         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
6889         (ia64_option_override): Check global_options_set.x_g_switch_value
6890         instead of g_switch_set.
6891         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
6892         Remove.
6893         (lm32_in_small_data_p): Remove cast in comparison with
6894         g_switch_value.
6895         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
6896         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
6897         HOST_WIDE_INT.
6898         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
6899         (m32r_init): Check global_options_set.x_g_switch_value instead of
6900         g_switch_set.
6901         (m32r_in_small_data_p): Remove cast in comparison with
6902         g_switch_value.
6903         (m32r_file_start): Format g_switch_value with %d.
6904         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
6905         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
6906         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
6907         handle -G here.
6908         (microblaze_option_override): Check
6909         global_options_set.x_g_switch_value instead of g_switch_set.
6910         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
6911         (mips_option_override): Check global_options_set.x_g_switch_value
6912         instead of g_switch_set.
6913         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
6914         (rs6000_file_start): Format g_switch_value with %d.
6915         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
6916         comparisons with g_switch_value.
6917         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
6918         global_options_set.x_g_switch_value instead of g_switch_set.
6919         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
6920         global_options_set.x_g_switch_value instead of g_switch_set.
6921         * config/score/score.c (score_handle_option): Don't handle -G here.
6922         * config/score/score3.c (score3_option_override): Check
6923         global_options_set.x_g_switch_value instead of g_switch_set.
6924         * config/score/score7.c (score7_option_override): Check
6925         global_options_set.x_g_switch_value instead of g_switch_set.
6926
6927 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
6928
6929         * common.opt (fira-coalesce): Remove.
6930
6931         * doc/invoke.texi (flag_ira_coalesce): Remove.
6932
6933         * ira-color.c (allocno_coalesced_p): Move before
6934         copy_freq_compare_func.
6935         processed_coalesced_allocno_bitmap): Ditto.
6936         (update_conflict_hard_regno_costs): Don't use
6937         ALLOCNO_FIRST_COALESCED_ALLOCNO.
6938         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
6939         (assign_hard_reg): Assume no coalesced allocnos.
6940         (get_coalesced_allocnos_attributes): Remove.
6941         (bucket_allocno_compare_func): Assume no coalesced allocnos.
6942         (push_allocno_to_stack): Ditto.
6943         (remove_allocno_from_bucket_and_push): Use
6944         ira_print_expanded_allocno instead of print_coalesced_allocno.
6945         (push_allocnos_to_stack): Assume uncoalesced allocnos.
6946         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
6947         all_conflicting_hard_regs.
6948         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
6949         (setup_allocno_left_conflicts_size): Ditto.
6950         (put_allocno_into_bucket): Ditto.
6951         (copy_freq_compare_func): Remove.
6952         (copy_freq_compare_func, merge_allocnos): Move before
6953         coalesced_pseudo_reg_freq_compare.
6954         coalesced_allocno_conflict_p): Ditto.
6955         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
6956         parameter.  Assume it true.
6957         (color_allocnos): Assume uncoalesced allocnos.  Use
6958         ira_print_expanded_allocno instead of print_coalesced_allocno.
6959         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
6960         parameter.
6961
6962         * ira.c: Remove comment about coalescing.
6963
6964 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
6965
6966         * config/mips/mips.h (target_flags_explicit): Declare for
6967         GENERATOR_FILE.
6968
6969 2010-10-04  Andi Kleen  <ak@linux.intel.com>
6970
6971         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
6972         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
6973
6974 2010-10-04  Matthias Klose  <doko@ubuntu.com>
6975
6976         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
6977         multilib osdirname if it exists.
6978         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
6979
6980 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
6981
6982         PR middle-end/45876
6983         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
6984         arg0's type or its unsigned counterpart as utype.  Convert
6985         arg1 to utype unconditionally.
6986
6987 2010-10-04  Julian Brown  <julian@codesourcery.com>
6988
6989         * expr.c (expand_assignment): Add assertion to prevent emitting
6990         null rtx for movmisalign pattern.
6991         (expand_expr_real_1): Likewise.
6992         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
6993         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
6994         (arm_vector_alignment_reachable): New.
6995         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
6996         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
6997         (arm_print_operand): Include alignment qualifier in %A.
6998         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
6999         (movmisalign<mode>): New expander.
7000         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
7001         insn patterns.
7002
7003 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7004
7005         * optc-gen.awk: Define global_options_set.  Don't define
7006         target_flags_explicit.
7007         * opth-gen.awk: Declare global_options_set.  Define
7008         target_flags_explicit as macro.
7009         * opts-common.c (handle_option): Take opts_set and generated_p
7010         parameters.
7011         (handle_generated_option, read_cmdline_option, set_option): Take
7012         opts_set parameter.
7013         (set_option): Use opts_set instead of hardcoding target_flags and
7014         target_flags_explicit.
7015         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
7016         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
7017         flag_value_profile_transformations_set, flag_peel_loops_set,
7018         flag_branch_probabilities_set, flag_inline_functions_set,
7019         flag_ipa_cp_set, flag_ipa_cp_clone_set,
7020         flag_predictive_commoning_set, flag_unswitch_loops_set,
7021         flag_gcse_after_reload_set): Remove.
7022         (common_handle_option, lang_handle_option, target_handle_option):
7023         Take opts_set parameter.  Assert that it is &global_options_set.
7024         (common_handle_option): Don't set _set variables.  Check opts_set
7025         instead of such variables.
7026         (enable_warning_as_error): Pass &global_options_set to
7027         handle_generated_option.
7028         * opts.h (cl_option_handler_func.handler, set_option,
7029         handle_option, handle_generated_option, read_cmdline_option): Add
7030         opts_set parameters.
7031         (handle_option): Add generated_p parameter.
7032         * config/i386/i386.c (ix86_function_specific_save,
7033         ix86_function_specific_restore): Updat for renaming of
7034         target_flags_explicit field.
7035         * config/i386/i386.opt (target_flags_explicit): Rename to
7036         ix86_target_flags_explicit.
7037         * config/ia64/ia64.c (ia64_override_options_after_change): Check
7038         global_options_set.x_flag_selective_scheduling and
7039         global_options_set.x_flag_selective_scheduling2, not
7040         sel_sched_switch_set.
7041         * flags.h (sel_sched_switch_set,
7042         flag_speculative_prefetching_set): Remove.
7043         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
7044         that it is &global_options_set.
7045         (process_command): Pass &global_options_set to read_cmdline_option.
7046         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
7047         set_option.
7048         * toplev.c (target_flags_explicit): Remove.
7049
7050 2010-10-04  Jan Hubicka  <jh@suse.cz>
7051
7052         PR middle-end/45871
7053         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
7054         use get_ref_base_and_offset to handle references.
7055         (fold_const_aggregate_ref): Update.
7056
7057 2010-10-04  Martin Jambor  <mjambor@suse.cz>
7058
7059         PR tree-optimization/45572
7060         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
7061         ipa_check_create_node_params.
7062         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
7063
7064 2010-10-04  Yao Qi  <yao@codesourcery.com>
7065
7066         * doc/passes.texi: Clean up.
7067
7068 2010-10-03  Ian Lance Taylor  <iant@google.com>
7069
7070         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
7071         referring to a field using a typedef name.
7072         (find_anonymous_field_with_type): New static function.
7073         (convert_to_anonymous_field): New static function.
7074         (convert_for_assignment): If -fplan9-extensions, permit converting
7075         pointer to struct to pointer to anonymous field.
7076         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
7077         (is_duplicate_field): New static function.
7078         (detect_field_duplicates_hash): If -fplan9-extensions, check for
7079         typedef names duplicating field names.
7080         (detect_field_duplicates): Likewise.
7081         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
7082         (C Dialect Options): Document -fplan9-extensions.
7083         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
7084
7085 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
7086
7087         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
7088         revision 164914.
7089         (vect_create_data_ref_ptr): Likewise.
7090         * tree-vect-stmts.c (vectorizable_store): Likewise.
7091         (perm_mask_for_reverse): Likewise.
7092         (reverse_vec_elements): Likewise.
7093         (vectorizable_load): Likewise.
7094
7095 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7096
7097         * cppbuiltin.c: New file.
7098         * cppbuiltin.h: New file.
7099         * Makefile.in: Take into account cppbuiltin.{h,c}.
7100
7101 2010-10-03  Andi Kleen  <ak@linux.intel.com>
7102
7103         * lto-cgraph.c (input_cgraph): Check for missing sections.
7104
7105 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
7106
7107         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
7108         to nonimmediate_operand.  Force operand 2 to register when allowed.
7109         (*<shiftrt_insn><mode>3_mask): Ditto.
7110         (*<rotate_insn><mode>3_mask): Ditto.
7111
7112 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
7113
7114         PR tree-optimization/45720
7115         PR tree-optimization/45764
7116         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
7117         Don't accept backwards consecutive accesses.
7118         (vect_create_data_ref_ptr): Disallow negative steps.
7119
7120         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
7121         (perm_mask_for_reverse): Removed.
7122         (reverse_vec_elements): Likewise.
7123         (vectorizable_load): Don't handle negative steps.
7124
7125 2010-10-02  Jan Hubicka  <jh@suse.cz>
7126
7127         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
7128         call destination is known.
7129
7130 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7131
7132         PR target/45820
7133         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
7134         earlier.
7135
7136 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7137
7138         * doc/install.texi (Configuration): Document build_configargs,
7139         host_configargs, target_configargs.
7140
7141 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
7142
7143         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
7144         (*<shiftrt_insn><mode>3_mask): Ditto.
7145         (*<rotate_insn><mode>3_mask): Ditto.
7146
7147 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
7148
7149         PR tree-optimization/44716
7150         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
7151         (HOT_TEXT_SECTION_NAME): Define.
7152
7153 2010-10-01  Nick Clifton  <nickc@redhat.com>
7154
7155         * common.opt: Add -fcombine-stack-adjustments.
7156         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
7157         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
7158         flag_combine_stack_adjustments.
7159         * doc/invoke.texi: Document the new option.
7160
7161 2010-10-01  Richard Guenther  <rguenther@suse.de>
7162
7163         PR tree-optimization/45854
7164         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
7165
7166 2010-10-01  Anthony Green  <green@moxielogic.com>
7167
7168         * config.gcc: Fix moxie-*-rtems* configuration.
7169
7170 2010-10-01  Richard Guenther  <rguenther@suse.de>
7171
7172         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
7173         (gen_decl_die): Likewise.
7174
7175 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7176
7177         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
7178         to the function code for SPU MD builtins.
7179         (spu_expand_builtin): Update.
7180         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
7181
7182 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7183
7184         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
7185         sjlj_except_unwind_info.
7186
7187 2010-10-01  Tristan Gingold  <gingold@adacore.com>
7188
7189         * configure.ac: Define the nop insn for avr*-*-*
7190         * configure: Regenerate.
7191
7192 2010-10-01  Alan Modra  <amodra@gmail.com>
7193
7194         PR target/45807
7195         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
7196         extend toc_restore_insn.
7197
7198 2010-09-30  Richard Guenther  <rguenther@suse.de>
7199
7200         PR tree-optimization/43959
7201         * function.c (gimplify_parameters): Use create_tmp_reg instead of
7202         create_tmp_var.
7203
7204 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7205
7206         * config/sh/sh.c (sh_expand_prologue): Set
7207         current_function_static_stack_size.
7208
7209 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7210
7211         * configure.ac: Check for Solaris 8 ld with .hidden support.
7212         * configure: Regenerate.
7213
7214 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7215
7216         PR middle-end/45758
7217         * graphite.c (graphite_initialize): Call scev_reset.
7218
7219 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7220
7221         * sese.h (scev_analyzable_p): Return false for real or floating
7222         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
7223
7224 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7225
7226         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
7227         and ps.
7228         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
7229         domain.
7230         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
7231         Do not allocate ub_expr, it is passed in initialized.
7232
7233 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7234
7235         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
7236         (build_cloog_prog): Dump CLooG input file when
7237         flag_graphite_dump_cloog is set.  This is disabled on trunk.
7238         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
7239
7240 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7241
7242         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
7243         verify_dominators for CDI_POST_DOMINATORS.
7244         * sese.h: Remove comment about CDI_POST_DOMINATORS.
7245         (recompute_all_dominators): Remove call to free_dominance_info
7246         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
7247         for CDI_POST_DOMINATORS.
7248
7249 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7250
7251         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
7252         over pbb_dim_iter_domain.
7253
7254 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7255
7256         * graphite-flattening.c: Fix comments.
7257
7258 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7259
7260         * Makefile.in (OBJS-common): Add graphite-flattening.o.
7261         (graphite-flattening.o): New rule.
7262         * common.opt (floop-flatten): New flag.
7263         * doc/invoke.texi (-floop-flatten): Documented.
7264         * graphite-flattening.c: New.
7265         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
7266         * graphite-poly.h (flatten_all_loops): Declared.
7267         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
7268         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
7269         is set, also set flag_graphite.
7270
7271 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7272
7273         * graphite-poly.c (cloog_checksum): New.
7274         * graphite-poly.h (cloog_checksum): Declared.
7275
7276 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7277
7278         * graphite-poly.c (pbb_number_of_iterations): Removed.
7279         (pbb_number_of_iterations_at_time): Correctly compute the number
7280         of iterations in the transformed loop.
7281         * graphite-poly.h (pbb_number_of_iterations): Removed.
7282
7283 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7284
7285         * graphite-poly.h (lst_update_scattering_seq): Removed.
7286         (lst_update_scattering): Correctly handle outermost loop dewey
7287         renumbering.
7288
7289 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7290
7291         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
7292         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
7293         * graphite-poly.h (lst_niter_for_loop): New.
7294
7295 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7296
7297         * graphite-poly.c (apply_poly_transforms): Do not abort when the
7298         transform read from disk is not legal.  Call fatal_error instead.
7299
7300 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7301
7302         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
7303         (print_scop_header): Removed.  Inlined in the only call place...
7304         (print_scop): ... here.
7305
7306 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7307
7308         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
7309
7310 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7311
7312         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
7313
7314 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7315
7316         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
7317         (dot_deps_stmt): Same.
7318         * graphite-poly.c (dot_lst): Same.
7319
7320 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7321
7322         * graphite-blocking.c (scop_do_strip_mine): Do not call
7323         graphite_legal_transform.
7324         (scop_do_block): Same.
7325
7326 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7327
7328         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
7329         description.
7330
7331 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7332
7333         * tree-scalar-evolution.c (instantiate_array_ref): New.
7334         (instantiate_scev_r): Also handle ARRAY_REFs.
7335
7336 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7337
7338         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7339         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
7340         RESULT_DECL, and FIELD_DECL.  Return false for an
7341         SSA_NAME_IS_DEFAULT_DEF.
7342         (compute_scalar_evolution_in_loop): Do not further analyze the
7343         scalar evolution when no_evolution_in_loop_p returns true.
7344
7345 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7346
7347         * tree-chrec.h (evolution_function_is_affine_p): Do not check
7348         whether CHREC_LEFT is invariant.  A function is affine when
7349         CHREC_RIGHT is invariant.
7350
7351 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7352
7353         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
7354         is_gimple_reg.
7355         (rewrite_degenerate_phi): Same.
7356         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
7357
7358 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7359
7360         * graphite-scop-detection.c (graphite_can_represent_scev,
7361         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
7362         graphite_can_represent_loop): Remove outermost_loop.
7363
7364 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7365
7366         PR middle-end/45229
7367         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
7368         handle GIMPLE_CALLs with no LHS.
7369
7370 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7371
7372         * graphite-poly.c (init_graphite_out_file): New.
7373         (init_graphite_in_file): New.
7374         (apply_poly_transforms): Updated to enable reading and writing of
7375         multiple scop files.
7376
7377 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
7378
7379         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
7380         redundant checks.
7381
7382 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7383
7384         * graphite-clast-to-gimple.c (precision_for_value): Adjust
7385         computation of precision by 1.
7386
7387 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7388
7389         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
7390         (openscop_read_polyhedron_matrix): New.
7391         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
7392         (openscop_read_N_int): Same.
7393         * graphite-poly.c (openscop_read_N_int): New.
7394         (openscop_read_one_int): New.
7395         (openscop_read_N_string): New.
7396         (openscop_read_one_string): New.
7397         (openscop_read_powerset_matrix): New.
7398         (graphite_read_transforms): Remove.
7399         (graphite_read_scatt): New.
7400         (graphite_read_scop_file): New.
7401         (apply_poly_transforms): Updated to call graphite_read_scop_file.
7402
7403 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7404
7405         * graphite-poly.c: Change include order.
7406
7407 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7408
7409         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
7410         (cloog_matrix_nrows): New.
7411
7412 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7413
7414         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
7415         from matrix lines.
7416         * graphite-poly.c (openscop_print_scattering_function_1): Same.
7417         (print_scattering_function_1): Same.
7418         (openscop_print_pbb_domain): Same.
7419         (openscop_print_scop_context): Same.
7420         (print_scop_context): Same.
7421
7422 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
7423
7424         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
7425         (openscop_print_pdr_polyhedron): Print pph.
7426
7427 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7428
7429         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
7430         priority signed types.
7431
7432 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7433
7434         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
7435         the call to lang_hooks.types.type_for_size.  Call
7436         build_nonstandard_integer_type.
7437
7438 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7439
7440         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
7441         (openscop_print_polyhedron_matrix): New.
7442         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
7443         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
7444         (openscop_print_pdr_powerset): New.
7445         (openscop_print_powerset_matrix): New.
7446         (openscop_print_scattering_function_1): New.
7447         (print_scattering_function): Add support for scattering names and
7448         OpenScop format.
7449         (graphite_write_transforms): Remove.
7450         (print_pdr_access_layout): Updated to support OpenScop format.
7451         (print_pdr): Same.
7452         (openscop_print_pbb_domain): New.
7453         (print_pbb_body): Added a parameter to allow indicating that pbb_body
7454         is not provided.
7455         (print_pbb): Updated to call the new print_pbb_body.
7456         (openscop_print_scop_context): New.
7457         (print_scop_header): New.
7458         (print_scop): Updated to call print_scop_header.
7459         * graphite-poly.h: Document OpenScop format.
7460
7461 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
7462
7463         * config/cris/m32c.c (cris_memory_move_cost): New.
7464         (cris_register_move_cost): Make static. Change arguments type from
7465         enum reg_class to reg_class_t.
7466         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7467         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7468         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
7469
7470 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7471
7472         PR target/45843
7473         * config/i386/i386.c (ix86_gimplify_va_arg): Use
7474         INTVAL (XEXP (slot, 1)) as prev_size.
7475
7476 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
7477
7478         PR target/45837
7479         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
7480         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
7481         defined.
7482         * config/rs6000/option-defaults.h (toplevel): Change #if
7483         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
7484         global option changes.
7485
7486 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7487
7488         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
7489
7490         PR tree-optimization/31261
7491         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
7492         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
7493
7494 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7495
7496         PR bootstrap/45796
7497         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
7498         special-casing for generators and turn into ...
7499         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
7500         rule, for better error messages in case of toplevel dependency errors.
7501         (genprog): Add hooks, rename to ...
7502         (genprogerr): ... this, and let genprog also contain check,
7503         checksum, condmd.
7504         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
7505         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
7506         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
7507
7508 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
7509             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7510
7511         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
7512         for GMP, MPFR and MPC.
7513
7514 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7515
7516         * config/sparc/sparc.opt (mimpure-text): Move ...
7517         * config/sol2.opt: ... here.  Correct description.
7518         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
7519         * doc/invoke.texi (Option Summary, SPARC Options): Move
7520         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
7521         (Option Summary, Solaris 2 Options): ... here.
7522         (Submodel Options, Solaris 2 Options): New menu entry.
7523         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
7524         (Solaris 2 Options): ... here.
7525
7526 2010-09-30  Michael Eager  <eager@eagercon.com>
7527
7528         * extend.texi (interrupt_handler): Add MicroBlaze to list.
7529         (save_volatiles): Describe option for MicroBlaze.
7530         * invoke.texi: Add MicroBlaze Options.
7531         * contrib.texi: Add acknowledgment.
7532         * md.texi: Add MicroBlaze d and z constraints.
7533         * install.texi: Add microblaze-*-elf.
7534         * configure.ac: Add microblaze-*-* to target list.
7535         * configure: Regenerate.
7536         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
7537         * config/microblaze/microblaze-protos.h: New.
7538         * config/microblaze/crti.s: New.
7539         * config/microblaze/predicates.md: New.
7540         * config/microblaze/linux.h: New.
7541         * config/microblaze/microblaze.md: New.
7542         * config/microblaze/constraints.md: New.
7543         * config/microblaze/crtn.s: New.
7544         * config/microblaze/microblaze.opt: New.
7545         * config/microblaze/microblaze-c.c: New.
7546         * config/microblaze/t-microblaze: New.
7547         * config/microblaze/microblaze.c: New.
7548         * config/microblaze/microblaze.h: New.
7549
7550 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
7551
7552         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
7553         parse @optional/@required and set the flags as appropriate.
7554
7555 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
7556
7557         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
7558
7559 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
7560
7561         * opt-functions.awk (static_var): Update comment.
7562         (var_ref): Return offsetof expression or -1, not variable address.
7563         * optc-gen.awk: Generate structure field initializers instead of
7564         static variables.  Expect -1 for missing variables instead of null
7565         pointer.  Add gcc_options parameters to generated functions.
7566         * opth-gen.awk: Generate structure fields for static variables.
7567         Add gcc_options parameters to generated functions.
7568         * common.opt (optimize, optimize_size): Add variables.
7569         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
7570         &global_options to cl_target_option_restore.
7571         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
7572         &global_options to cl_optimization_restore, cl_target_option_save
7573         and cl_target_option_restore.
7574         (ix86_set_current_function): Pass &global_options to
7575         cl_target_option_restore.
7576         * config/pdp11/pdp11.h (optimize): Remove.
7577         * config/rs6000/rs6000.h (optimize): Remove.
7578         * config/sh/sh.h (optimize): Remove.
7579         * config/xtensa/xtensa.h (optimize): Remove.
7580         * coretypes.h (struct gcc_options): Declare.
7581         * diagnostic.c (diagnostic_initialize): Initialize
7582         context->option_state.
7583         (diagnostic_report_diagnostic): Pass option_state to
7584         option_enabled hook.
7585         * diagnostic.h (diagnostic_context.option_enabled): Add void *
7586         parameter.
7587         (diagnostic_context.option_state): New field.
7588         * final.c (final_start_function, final, final_scan_insn): Rename
7589         optimize parameter to optimize_p.
7590         * flags.h (optimize, optimize_size): Remove.
7591         * function.c (invoke_set_current_function_hook): Pass
7592         &global_options to cl_optimization_restore.
7593         * gcc.c (driver_handle_option): Take gcc_options parameter.
7594         Assert that it is &global_options.
7595         (process_command): Pass &global_options to read_cmdline_option.
7596         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
7597         option_enabled.
7598         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
7599         &global_options to set_option.
7600         * opts-common.c (handle_option, handle_generated_option,
7601         read_cmdline_option, set_option): Take explicit gcc_options
7602         parameters.  Use option_flag_var.
7603         (option_flag_var): New.
7604         * opts.c (common_handle_option, lang_handle_option,
7605         target_handle_option): Take gcc_options parameter.  Assert that it
7606         is &global_options.
7607         (read_cmdline_options): Pass &global_options to read_cmdline_option.
7608         (print_filtered_help): Use option_flag_var.  Pass &global_options
7609         to option_enabled.
7610         (common_handle_option): Use option_flag_var.
7611         (option_enabled): Take opts parameter.  Use option_flag_var.
7612         (get_option_state): Take gcc_options parameter.  Use
7613         option_flag_var.  Pass gcc_options parameter to option_enabled.
7614         (enable_warning_as_error): Pass &global_options to
7615         handle_generated_option.
7616         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
7617         (cl_option_handler_func.handler): Take gcc_options parameter.
7618         (option_enabled, get_option_state, set_option, handle_option,
7619         handle_generated_option, read_cmdline_option): Take gcc_options
7620         parameters.
7621         * toplev.c (optimize, optimize_size): Remove.
7622         (print_switch_values): Pass &global_options to option_enabled.
7623         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
7624         to get_option_state.
7625         (general_init): Initialize global_dc->option_state.
7626         * tree.c (build_optimization_node): Pass &global_options to
7627         cl_optimization_save.
7628         (build_target_option_node): Pass &global_options to
7629         cl_target_option_save.
7630
7631 2010-09-30  Martin Jambor  <mjambor@suse.cz>
7632
7633         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
7634         zero sized bit-fields.
7635
7636 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7637
7638         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
7639         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
7640         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
7641         (c_parser_objc_class_declaration): Same change.
7642         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
7643         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7644         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
7645         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
7646         and RID_AT_PUBLIC instead of RID_PUBLIC.
7647         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
7648         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7649
7650 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
7651
7652         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
7653         Add links to current providers of packages for Solaris and IRIX.
7654
7655 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7656
7657         Merge from 'apple/trunk' branch on FSF servers.
7658         * c-parser.c: Applied change originally in c-parse.in.
7659
7660         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
7661
7662         Radar 4281748
7663         * c-decl.c (start_decl): Check for redeclaration of class name.
7664         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
7665
7666 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
7667
7668         * config/ia64/ia64.c (ia64_builtin_decl): New.
7669         (TARGET_BUILTIN_DECL): Define.
7670         (ia64_builtins): New.
7671         (ia64_init_builtins): Save decls in ia64_builtins.
7672
7673 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
7674
7675         PR target/40457
7676         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
7677         (move2add_use_add3_insn): Likewise.
7678         (reload_cse_move2add): Likewise.
7679         * rtlanal.c (get_full_rtx_cost): New function.
7680         * rtl.h (struct full_rtx_costs): New.
7681         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
7682         costs_add_n_insns): New inline functions.
7683         (get_full_rtx_cost): Declare.
7684
7685         PR c/45054
7686         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
7687         invariants.  Check for reg_equiv_invariant.
7688         (reload): Assert that spilled_pseudos is empty when returning.
7689
7690 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
7691
7692         * config/i386/mingw32.h (TARGET_64BIT): replaced by
7693         TARGET_64BIT_DEFAULT in #if check.
7694
7695 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
7696
7697         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
7698
7699 2010-09-29  Mike Stump  <mikestump@comcast.net>
7700
7701         * config/darwin.h (flag_mkernel): Remove.
7702         (flag_apple_kext): Likewise.
7703
7704 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7705             Jack Howarth  <howarth@bromo.med.uc.edu>
7706
7707         * config/darwin.opt (undefined): Add.
7708
7709 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
7710
7711         PR testsuite/45664
7712         * configure.ac: Add --enable-indirect-function option.
7713         * config.gcc: Add default_gnu_indirect_function.
7714         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
7715         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
7716         * varasm.c (do_assemble_alias): Adjust for macro name change.
7717         * configure: Rebuilt.
7718         * doc/install.texi: Document --enable-indirect-function.
7719
7720 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7721
7722         * doc/options.texi (Variable, Var, Init): Update documentation
7723         without reference to VarExists.
7724         (VarExists): Remove.
7725         * common.opt, config/i386/i386.opt, config/linux.opt,
7726         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
7727         Don't use VarExists.
7728
7729 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7730
7731         * optc-gen.awk: Generate global_options initializer instead of
7732         individual variables.  Add x_ prefix to names of structure members.
7733         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
7734         names of structure members.
7735         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7736         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
7737         * doc/tm.texi: Regenerate.
7738         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7739         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7740         * c-parser.c (disable_extension_diagnostics,
7741         restore_extension_diagnostics): Update names of cpp_options members.
7742         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7743         * common.opt (fcompare-debug-second): Don't use Var.
7744         * config/alpha/alpha.h (target_flags): Remove.
7745         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7746         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7747         * config/bfin/bfin.h (target_flags): Remove.
7748         * config/cris/cris.h (target_flags): Remove.
7749         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
7750         cl_target_option members.
7751         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
7752         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
7753         ix86_can_inline_p): Update names of cl_target_option members.
7754         * config/i386/i386.h (ix86_isa_flags): Remove.
7755         * config/lm32/lm32.h (target_flags): Remove.
7756         * config/mcore/mcore.h (mcore_stack_increment): Remove.
7757         * config/mcore/mcore.md (addsi3): Remove extern declaration of
7758         flag_omit_frame_pointer.
7759         * config/mep/mep.h (target_flags): Remove.
7760         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7761         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7762         * config/mmix/mmix.h (target_flags): Remove.
7763         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
7764         flag_expensive_optimizations): Remove.
7765         * config/s390/s390.h (flag_pic): Remove.
7766         * config/score/score-conv.h (target_flags): Remove.
7767         * config/sh/sh.h (sh_fixed_range_str): Remove.
7768         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
7769         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7770         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7771         * diagnostic.c (diagnostic_initialize): Update names of
7772         diagnostic_context members.
7773         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
7774         warn_system_headers.
7775         (diagnostic_report_warnings_p): Update for new names.
7776         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7777         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
7778         HARD_FRAME_POINTER_IS_ARG_POINTER.
7779         * flags.h (flag_compare_debug): Declare.
7780         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7781         * opts.c (flag_compare_debug): Define.
7782         (common_handle_option): Update names of diagnostic_context
7783         members.  Handle -fcompare-debug-second.
7784         (fast_math_flags_struct_set_p): Update names of cl_optimization
7785         members.
7786         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7787         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7788         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7789         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7790         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7791         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7792         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
7793         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7794         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7795
7796 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7797
7798         * config/picochip/picochip.c (picochip_output_internal_label):
7799         This function can now be called for debug CFI labels, which can come
7800         in the middle of a vliw instruction.  Postpone until end of vliw.
7801
7802 2010-09-29  Richard Guenther  <rguenther@suse.de>
7803
7804         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
7805         (DECL_FILE_SCOPE_P): Use it.
7806         (TYPE_FILE_SCOPE_P): New macro.
7807
7808 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7809
7810         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
7811         a CPP_NAME which is a reserved word, clearly separate cases for
7812         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
7813
7814 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7815
7816         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
7817         token->value with the canonical spelling.  Do exactly like C and
7818         C++ and leave it as it is.
7819
7820 2010-09-28  Richard Henderson  <rth@redhat.com>
7821
7822         * config/alpha/alpha.c (alpha_builtins): New.
7823         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
7824         (alpha_builtin_function): New.
7825         (alpha_add_builtins, alpha_init_builtins): Use it.
7826
7827 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
7828
7829         * doc/standards.texi (Standards): Expanded the section on
7830         Objective-C and Objective-C++.
7831
7832 2010-09-28  DJ Delorie  <dj@redhat.com>
7833
7834         PR target/45800
7835         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
7836         volatile MEMs.
7837
7838 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7839
7840         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
7841         attributes on methods.
7842          (c_parser_objc_method_definition): Handle attributes.
7843         (c_parser_objc_methodproto): Likewise.
7844         (c_parser_objc_maybe_method_attributes): New.
7845         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
7846         missing definition, similar to that in ObjC++.
7847
7848 2010-09-28  Richard Henderson  <rth@redhat.com>
7849
7850         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
7851         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7852         (CONFIG_SJLJ_EXCEPTIONS): Remove.
7853         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
7854         (STACK_CHECK_PROTECT): Likewise.
7855         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
7856         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
7857         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
7858         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
7859         (dwarf2out_assembly_start): Likewise.
7860         * except.c (init_eh): Use targetm.except_unwind_info.
7861         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
7862         (output_one_function_exception_table): Likewise.
7863         * final.c: Unconditionally include dwarf2out.h.
7864         (final_start_function): Unconditionally call dwarf2out routines.
7865         (final_end_function, final_scan_insn): Likewise.
7866         * function.c (expand_function_end): Use targetm.except_unwind_info.
7867         * opts.c (decode_options): Use targetm.except_unwind_info.
7868         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
7869         * target.def (debug_unwind_info, except_unwind_info): New.
7870         * target.h (enum unwind_info_type): New.
7871         * targhooks.c (default_debug_unwind_info): New.
7872         (default_except_unwind_info): New.
7873         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
7874         * targhooks.h: Declare them.
7875         * tree-tailcall.c: Include "target.h"
7876         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
7877         * Makefile.in (tree-tailcall.o): Update.
7878         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
7879         (lhd_gcc_personality): Likewise.
7880
7881         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
7882         (TARGET_EXCEPT_UNWIND_INFO): New.
7883         (DWARF2_UNWIND_INFO): Update.
7884         (TARGET_DEBUG_UNWIND_INFO): New.
7885         * doc/tm.texi: Rebuild.
7886
7887         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
7888         targetm.except_unwind_info.
7889
7890         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
7891         (arm_except_unwind_info): New.
7892         (arm_compute_func_type): Use it.
7893         (arm_expand_prologue, thumb_pushpop): Likewise.
7894         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
7895         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
7896         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
7897         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
7898         (DWARF2_UNWIND_INFO): Remove.
7899         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
7900         (ARM_EABI_UNWIND_TABLES): Remove.
7901
7902         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
7903         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
7904         (ia64_except_unwind_info): New.
7905         (ia64_output_function_prologue): Use it.
7906         (ia64_add_bundle_selector_before): Likewise.
7907         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
7908         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
7909         (TARGET_UNWIND_INFO): Remove.
7910
7911         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
7912
7913 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7914
7915         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
7916         (c_parser_objc_protocol_definition): Likewise.
7917         (c_parser_external_declaration): Provide dummy attribute arguments.
7918         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
7919         (c_parser_objc_class_definition): Handle attributes.
7920         (c_parser_objc_protocol_definition): Likewise.
7921
7922 2010-09-28  Tobias Burnus  <burnus@net-b.de>
7923
7924         PR fortran/40569
7925         PR fortran/40568
7926         * toplev.h (save_decoded_options, save_decoded_options_count):
7927         New global variables.
7928         * toplev.c (save_decoded_options, save_decoded_options_count):
7929         Export variables.
7930
7931 2010-09-28  Ian Lance Taylor  <iant@google.com>
7932
7933         * config/i386/i386.c (ix86_supports_split_stack): Test
7934         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
7935
7936 2010-09-28  Ian Lance Taylor  <iant@google.com>
7937
7938         PR target/45815
7939         * opts.c (decode_options): Don't test whether the target supports
7940         split stack if flag_split_stack == 0.
7941
7942 2010-09-28  Jan Hubicka  <jh@suse.cz>
7943
7944         * builtin-attrs.def (ATTR_LEAF): New attribute.
7945         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
7946         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
7947         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
7948         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
7949         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
7950         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
7951         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
7952         * sync-builtins.def: Annotate all builtins by leaf.
7953         * omp-builtins.def: Annotate all builtins by leaf.
7954         * builtins.def: Annotate relevant builtins with leaf attribute.
7955         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
7956         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
7957         leaf.
7958
7959 2010-09-28  Jan Hubicka  <jh@suse.cz>
7960
7961         * tree-ssa-ccp.c (fold_ctor_reference): New function.
7962         (fold_const_aggregate_ref): Use it.
7963         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
7964         into external static.
7965
7966 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7967
7968         PR target/44452
7969         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
7970         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
7971         (ix86_solaris_return_in_memory): Remove.
7972         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
7973         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7974         (TARGET_SUBTARGET_DEFAULT): Redefine.
7975         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
7976         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
7977         (TARGET_SUBTARGET_DEFAULT): Redefine.
7978         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
7979         -mvect8-ret-in-mem.
7980         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
7981
7982 2010-09-29  Alan Modra  <amodra@gmail.com>
7983
7984         PR target/45807
7985         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
7986         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
7987         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
7988         Delete.
7989         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
7990         (rs6000_emit_prologue): Don't just create frame save info for r2,
7991         actually save r2.
7992
7993 2010-09-28  Richard Henderson  <rth@redhat.com>
7994
7995         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
7996         when 8 bytes are requested.
7997
7998 2010-09-28  Tristan Gingold  <gingold@adacore.com>
7999
8000         * config/avr/avr.c (expand_prologue): Set
8001         current_function_static_stack_size.
8002
8003 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8004
8005         * config/alpha/alpha.md: Change the initial condition of the
8006         probing loop.
8007
8008 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
8009
8010         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
8011         Split from *avx_<maxmin:code><mode>3.
8012         (*avx_<smaxmin:code><mode>3): Ditto.
8013         * config/i386/i386.md (maxmin): Remove code iterator.
8014
8015 2010-09-27  Ian Lance Taylor  <iant@google.com>
8016
8017         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
8018         requires assembler support for CFI directives.
8019
8020 2010-09-27  Richard Henderson  <rth@redhat.com>
8021
8022         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
8023
8024 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8025
8026         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
8027         that AFTER is not in the range FROM..TO, inclusive.
8028
8029 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8030             Bernd Schmidt  <bernds@codesourcery.com>
8031
8032         PR rtl-optimization/45792
8033         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
8034         If not all insns are to be merged, for each edge, stash the
8035         next candidate after the to-be-merged insns before doing the
8036         merge, and use them for the retry at the new insertion point.
8037         Handle CC0 targets when retrying.
8038
8039 2010-09-27  Ian Lance Taylor  <iant@google.com>
8040
8041         * common.opt (fsplit-stack): New option.
8042         * opts.c (decode_options): Set flag_split_stack to final value.
8043         * target.def (supports_split_stack): New hook.
8044         * gcc.c (STACK_SPLIT_SPEC): Define.
8045         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
8046         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
8047         (Code Gen Options): Document -fsplit-stack.
8048         * doc/extend.texi (Function Attributes): Mention no_split_stack.
8049         (Function Attributes): Document no_split_stack.
8050         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
8051         TARGET_SUPPORTS_SPLIT_STACK.
8052         * doc/tm.texi: Rebuild.
8053         * function.c (thread_prologue_and_epilogue_insns): If
8054         flag_split_stack, add split stack prologue.
8055         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
8056         * varasm.c (saw_no_split_stack): New static variable.
8057         (assemble_start_function): Set saw_no_split_stack if the function
8058         has the no_split_stack attribute.
8059         (file_end_indicate_split_stack): New function.
8060         * output.h (file_end_indicate_split_stack): Declare.
8061         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
8062         and function.
8063         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
8064         routines.
8065         * config/i386/i386.c (ix86_option_override_internal): Don't set
8066         expand_builtin_va_start to NULL if -fsplit-stack.
8067         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
8068         -fsplit-stack.
8069         (ix86_va_start): If -fsplit-stack, get overflow pointer from
8070         scratch register set by prologue.
8071         (ix86_code_end): If -fsplit-stack, call
8072         file_end_indicate_split_stack.
8073         (ix86_supports_split_stack): New static function.
8074         (SPLIT_STACK_AVAILABLE): Define.
8075         (split_stack_prologue_scratch_regno): New static function.
8076         (split_stack_fn): New static variable.
8077         (ix86_expand_split_stack_prologue): New function.
8078         (ix86_live_on_entry): New static function.
8079         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
8080         (output_pic_addr_const): Likewise.
8081         (i386_asm_output_addr_const_extra): Likewise.
8082         (ix86_expand_call): Change return type to rtx.  Return the new
8083         call instruction.
8084         (TARGET_SUPPORTS_SPLIT_STACK): Define.
8085         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8086         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
8087         (split_stack_prologue, split_stack_return): New insns.
8088         (split_stack_space_check): New insn.
8089         * config/i386/i386.h (struct machine_function): Add
8090         split_stack_varargs_pointer field.
8091         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
8092         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8093         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8094         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8095         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
8096         Declare.
8097         (ix86_expand_call): Update declaration.
8098
8099 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8100
8101         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
8102         code.  Added byref, which was missing in the list of codes.
8103         Explain that enumeration values are encoded as the integer type
8104         that the compiler uses to store them.  Explain and make examples
8105         of how 'const' interacts with pointers, and the complication of
8106         the encoding of 'const char *'.
8107         (Legacy type encoding): New subsection, explaining that GCC emits
8108         incorrect type encodings for the NeXT runtime for compatibility
8109         reasons.
8110         (@@encode): New subsection, explaining @encode and particularly
8111         that protocol qualifiers are not recognized inside an @encode()
8112         expression.
8113         (Method signatures): New subsection, explaining how method
8114         signatures are encoded.
8115
8116 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8117
8118         Merge from 'apple/trunk' branch on FSF servers.  Removed small
8119         change in build_conditional_expr that had been added when fixing
8120         PR objc/27377 and which did the same check in a less complete way.
8121
8122         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
8123
8124         Radar 4229905
8125         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
8126         looking for objective-c common pointer types.
8127
8128         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
8129
8130         Radar 4154928
8131         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
8132         use their ObjC common type.
8133
8134 2010-09-27  Richard Guenther  <rguenther@suse.de>
8135
8136         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
8137
8138 2010-09-27  Jie Zhang  <jie@codesourcery.com>
8139
8140         * print-tree.c (print_node): Print in-constant-pool.
8141
8142 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
8143
8144         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
8145         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
8146         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
8147         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
8148
8149 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
8150
8151         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
8152         from pro_epilogue_adjust_stack_<mode>_{1,2}.
8153         (pro_epilogue_adjust_stack_<mode>_add): Rename from
8154         pro_epilogue_adjust_stack_<mode>_3.
8155         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
8156         renamed pro_epilogue_adjust_stack_{si,di}_add.
8157         (ix86_expand_prologue): Use indirect functions.  Update for renamed
8158         pro_epilogue_adjust_stack_{si,di}_sub.
8159
8160 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
8161
8162         * config/i386/i386.md (movmsk_df): New insn.
8163         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
8164         sequence for TARGET_SSE_MATH.
8165
8166 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
8167
8168         * config/mips/mips.c (mips_builtin_decls): Declare.
8169         (mips_init_builtins): Store function declarations in
8170         mips_builtin_decls.
8171         (mips_builtin_decl): New function.
8172         (TARGET_BUILTIN_DECL): Define.
8173
8174 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
8175             Richard Henderson  <rth@redhat.com>
8176
8177         * config/i386/cygwin.asm: Include auto-host.h.
8178         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
8179         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
8180         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
8181         alignment code from the 64-bit path.  Use gas local labels.
8182         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
8183         from _di_2.  Remove the useless constant integer argument.
8184         (pro_epilogue_adjust_stack_<mode>_3): New.
8185         (allocate_stack_worker_probe_<mode>): Macroize from
8186         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
8187         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
8188         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
8189         (__chkstk_ms): New function.
8190         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
8191         * config/i386/t-interix: Likewise.
8192         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
8193         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
8194         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
8195         * configure, config.in: Rebuild.
8196
8197 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
8198
8199         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
8200         statements because of the return slot optimization.
8201
8202 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
8203
8204         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
8205         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
8206         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8207         (class_likely_spilled_p): Rename to...
8208         (avr_class_likely_spilled_p): ...this. Make static. Change argument
8209         type to reg_class_t.
8210
8211 2010-09-24  Jan Hubicka  <jh@suse.cz>
8212
8213         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
8214         (lto_symtab_resolve_symbols): Set it.
8215         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
8216         store resolution field in cgraph/varpool.
8217         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
8218         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
8219         (cgraph_dump_node): Drop used_from_object_file.
8220         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
8221         (cgraph_function_body_availability): Use decl_replaceable_p.
8222         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
8223         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
8224         cgraph_used_from_object_file_p.
8225         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
8226         cgraph_used_from_object_file_p.
8227         (resolution_used_from_other_file_p): New functoin.
8228         (cgraph_used_from_object_file_p): New predicate.
8229         * cgraph.h: Include plugin-api.h
8230         (struct cgraph_local_info): Remove used_from_object_file.
8231         (struct cgraph_node): Add resolution field.
8232         (struct varpool_node): Likewise; remove used_from_object_file;
8233         reove const_value_known.
8234         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
8235         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
8236         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8237         varpool_used_from_object_file_p): Declare.
8238         (varpool_get_node, varpool_extra_name_alias): Update prototype.
8239         * tree.h (DECL_REPLACEABLE_P): Remove.
8240         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
8241         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
8242         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
8243         input_overwrite_node, input_node, input_varpool_node): Stream
8244         resolution.
8245         * expr.c (expand_expr_real_1): Use const_value_known_p
8246         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
8247         const_value_known.
8248         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
8249         (function_and_variable_visibility): Set resolution for local vars
8250         and functions; use varpool_used_from_object_file_p.
8251         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
8252         static functions.
8253         (default_binds_local_p_1): Use resolutoin info.
8254         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
8255         * varpool.c (varpool_get_node): Constify.
8256         (const_value_known_p): Do not use vnode->const_value_known;
8257         use decl_replaceable_p.
8258         (varpool_finalize_decl): Do not set const_value_known.
8259         (cgraph_variable_initializer_availability): Use decl_replaceable_p
8260         (varpool_extra_name_alias): Return new node.
8261         (varpool_used_from_object_file_p): New function.
8262
8263 2010-09-24  Richard Henderson  <rth@redhat.com>
8264
8265         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
8266         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
8267         (do_spill): Use REG_CFA_OFFSET.
8268         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
8269         as appropriate.
8270         (ia64_expand_epilogue): Likewise.
8271         (process_set): Split into ...
8272         (process_cfa_adjust_cfa): this,
8273         (process_cfa_register): this,
8274         (process_cfa_offset): and this new function.
8275         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
8276         instead of REG_FRAME_RELATED_EXPR.
8277
8278 2010-09-24  Olivier Hainque  <hainque@adacore.com>
8279
8280         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
8281
8282 2010-09-24  Jan Hubicka  <jh@suse.cz>
8283
8284         * doc/extend.texi: (attribute leaf): Document.
8285         * tree.c (local_define_builtin): Handle ECF_LEAF.
8286         (build_common_builtin_nodes): Set ECF_LEAF where needed.
8287         * tree.h (ECF_LEAF): New.
8288         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
8289         overwrittable and unavailable functions.
8290         (ipa_init): Put all_module_statics into optimization_summary_obstack.
8291         (copy_global_bitmap): Do not copy all_module_statics.
8292         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
8293         (propagate): Handle overwritable and unavailable leaf functions;
8294         initialize global info for overwritable and unavailable leaf functions;
8295         do not free all module statics.
8296         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
8297         local statics.
8298         * calls.c (flags_from_decl_or_type): Handle leaf.
8299         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
8300         abnormal gotos.
8301
8302 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
8303
8304         * gengtype.c: Reindented.
8305         * gengtype.h: Reindented.
8306         * gengtype-parse.c: Reindented.
8307
8308 2010-09-24  Jan Hubicka  <jh@suse.cz>
8309
8310         PR tree-optimization/45738
8311         PR tree-optimization/45741
8312         * expr.c (string_constant): Allow CONST_DECL too;
8313         check that DECL_INITIAL is set.
8314         * varpool.c (const_value_known_p): Only look into VAR_DECL
8315         and CONST_DECL.
8316
8317 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
8318
8319         * common.opt (undef): New.
8320
8321 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
8322
8323         PR middle-end/45234
8324         * rtl.h (enum global_rtl_index): Add
8325         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
8326         (LAST_VIRTUAL_POINTER_REGISTER): Define.
8327         (virtual_preferred_stack_boundary_rtx,
8328         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
8329         (LAST_VIRTUAL_REGISTER): Increase by one.
8330         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
8331         instead of LAST_VIRTUAL_REGISTER.
8332         * function.c (instantiate_new_reg): Handle
8333         virtual_preferred_stack_boundary_rtx.
8334         * emit-rtl.c (init_virtual_regs): Handle
8335         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8336         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
8337         * explow.c (round_push): If crtl->preferred_stack_boundary
8338         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
8339         virtual_preferred_stack_boundary_rtx alignment instead of
8340         crtl->preferred_stack_boundary alignment.
8341         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
8342         macros.  Never decrease crtl->preferred_stack_boundary,
8343         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
8344         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
8345         stack_pointer_delta in dynamic allocation, even when size
8346         is constant.
8347         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
8348         macro.
8349         * print-rtl.c (print_rtx): Handle
8350         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8351         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
8352         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
8353         * config/frv/frv.c (frv_emit_movsi): Likewise.
8354         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
8355         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
8356         Likewise.
8357
8358         Revert:
8359         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8360
8361         PR middle-end/45234
8362         * calls.c (expand_call): Make sure that all variable sized
8363         adjustments are multiple of preferred stack boundary after
8364         stack alignment.
8365
8366 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
8367             Dominique Dhumieres  <dominiq@lps.ens.fr>
8368
8369         PR bootstrap/45751
8370         * config/darwin-driver.c (darwin_default_min_version):
8371         Adjust size passed to memcpy in two places.
8372
8373 2010-09-24  Richard Guenther  <rguenther@suse.de>
8374
8375         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
8376         Make sure to not call set_type_context with error_mark_node.
8377         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
8378
8379 2010-09-24  Richard Guenther  <rguenther@suse.de>
8380
8381         * Makefile.in (OBJS-onestep): Remove.
8382         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
8383         (libbackend.a): Remove onestep support.
8384         (libbackend.o): Remove.
8385         * configure.ac (--enable-intermodule): Remove.
8386         * configure: Regenerate.
8387
8388 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
8389
8390         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
8391         reaching the end of a block if it occurs at a DEBUG_INSN.
8392
8393 2010-09-09  Tristan Gingold  <gingold@adacore.com>
8394
8395         PR target/44242
8396         * config/vms/vms-crt0-64.c: Removed.
8397         * config/vms/vms-crt0.c: Removed.
8398         * config/vms/vms-psxcrt0-64.c: Removed.
8399         * config/vms/vms-psxcrt0.c: Removed.
8400         * config/vms/vms-ucrt0.c: New file.
8401         * config/vms/t-vms64: Removed.
8402         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
8403         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
8404         * config.gcc (alpha-dec-vms): Use t-vms.
8405
8406 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8407
8408         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
8409         underfull hbox in DVI output.
8410         (-fobjc-class-cxx-cdtors): Same change.
8411         (-fobjc-exceptions): Tidied up documentation.  Explain what the
8412         option does, but moved the (lenghty) description of the exception
8413         syntax into objc.texi.
8414         (-fobjc-gc): Explain that the option is not useful with the GNU
8415         runtime.
8416         (-fzero-link): Explain that the GNU runtime always works in
8417         "zero-link" mode.
8418         * doc/objc.texi: All sections: simplified @node declarations
8419         removing specification of next, previous, up node.
8420         (Objective-C): Updated introduction.
8421         (Garbage Collection): Updated.  The bohem-gc library is now
8422         included in gcc itself.  Mention that this section only applies to
8423         the GNU Objective-C runtime.
8424         (compatibility_alias): Small tidy up.
8425         (Exceptions): New section mostly containing text previously in the
8426         description of the -fobjc-exception command-line option.
8427         (Synchronization): Same.
8428
8429 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
8430
8431         * config/i386/i386.md (ix86_code_end): Move the initialization of
8432         xops array near the consumer.  Use AX_REG and SP_REG instead of
8433         numerical constants.
8434
8435 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8436
8437         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
8438         method [methodname]' for an Objective-C method instead of the less
8439         satisfactory 'too many arguments to function' (with no method name).
8440
8441 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
8442
8443         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
8444         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
8445         (execute_update_addresses_taken): Remove parameter.  Execute the
8446         optimization unconditionally.
8447         * passes.c (execute_function_todo): Call execute_update_addresses_taken
8448         unconditionally if TODO_rebuild_alias is set, else only when optimizing
8449         if TODO_update_address_taken is set.
8450
8451 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
8452
8453         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8454         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
8455         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8456         (arm_output_addr_const_extra): Make static.
8457
8458 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
8459
8460         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
8461         define as unspec_volatile.
8462         ("nops"): Define as unspec_volatile. Use fputs to write to
8463         asm_out_file directly.  Output NOPs on separate lines using while loop.
8464         * config/i386/i386.c (ix86_code_end): Use fputs to write to
8465         asm_out_file directly.  Output NOPs on separate lines using while loop.
8466
8467 2010-09-23  Richard Guenther  <rguenther@suse.de>
8468
8469         PR tree-optimization/45565
8470         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8471         Make sure to adjust the fndecl before replacing the stmt.
8472
8473 2010-09-23  Richard Guenther  <rguenther@suse.de>
8474
8475         PR middle-end/45750
8476         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
8477         gimplifying MEM_REF.
8478
8479 2010-09-23  Alan Modra  <amodra@gmail.com>
8480
8481         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
8482         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
8483
8484 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
8485
8486         PR rtl-optimization/44374
8487         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
8488         * df-core.c (df_set_bb_dirty): Set it.
8489         * ifcvt.c (find_memory): Remove function.
8490         (dead_or_predicable): Use can_move_insns_across.
8491         * df.h (can_move_insns_across): Declare function.
8492         * cfgcleanup.c (block_was_dirty): New static variable.
8493         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
8494         than df_get_bb_dirty.
8495         (try_head_merge_bb): New static function.
8496         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
8497         is set.
8498         * df-problems.c: Include "target.h"
8499         (df_simulate_find_uses): New static function.
8500         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
8501         (find_memory, find_memory_store): New static functions.
8502         (can_move_insns_across): New function.
8503         * Makefile.in (df-problems.o): Update dependencies.
8504
8505 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8506
8507         PR java/44095
8508         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
8509         is specified and the suffix of the file isn't ".c".
8510         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8511
8512 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8513
8514         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
8515         * doc/cppopts.texi: Fix markup of index entry.
8516         * doc/extend.texi (Constructing Calls): Fix markup of
8517         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
8518         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
8519         (Vague Linkage, C++ Attributes): Fix markup of index entries and
8520         keywords.
8521         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
8522         avoid long lines.
8523         (C Dialect Options, C++ Dialect Options, Warning Options)
8524         (Debugging Options, Spec Files, Darwin Options)
8525         (i386 and x86-64 Options, MIPS Options)
8526         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
8527         index entries, avoid abbreviations, allow URLs to wrap, avoid
8528         long lines, avoid overlong pages from long @itemx lists.
8529         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
8530         * doc/standards.texi (Standards): Likewise.
8531         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
8532
8533 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8534
8535         * opts-common.c (prune_options): Make static.  Work with decoded
8536         options.
8537         (decode_cmdline_options_to_array): Call prune_options.  Don't
8538         resize option array here.
8539         * opts.h (prune_options): Remove prototype.
8540         * gcc.c (process_command): Take decoded options; don't call
8541         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
8542         (main): Call decode_cmdline_options_to_array here instead of
8543         prune_options.  Update call to process_command.
8544         * config/darwin-driver.c: Include opts.h.
8545         (darwin_default_min_version): Work with decoded options.  Don't
8546         handle -b or -V here.
8547         * config/darwin.h (darwin_default_min_version): Update prototype.
8548         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
8549         darwin_default_min_version.
8550         * config/i386/cygwin.h (mingw_scan): Update prototype.
8551         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
8552         * config/i386/cygwin1.c: Include opts.h.
8553         (mingw_scan): Work with decoded options.
8554         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
8555         * config/t-darwin (darwin-driver.o): Update dependencies.
8556
8557 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8558
8559         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
8560         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
8561         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
8562         -force-link, -force-link=, -language, -language=,
8563         -library-directory, -library-directory=, -no-canonical-prefixes,
8564         -no-standard-libraries, -no-warnings, -optimize, -output,
8565         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
8566         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
8567         -print-file-name=, -print-libgcc-file-name,
8568         -print-multi-directory, -print-multi-lib,
8569         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
8570         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
8571         -profile, -save-temps, -shared, -specs, -specs=, -static,
8572         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
8573         symbolic): New.
8574         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
8575         * gcc.c (A Short Introduction to Adding a Command-Line Option):
8576         Remove comment.
8577         (cc1_options): Correct specs for passing down --help,
8578         --target-help and --help=*.  Add spec for passing down --version.
8579         (struct option_map, option_map, target_option_translations,
8580         translate_options): Remove.
8581         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
8582         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
8583         OPT_fhelp_ and OPT_ftarget_help.
8584         (process_command): Don't call translate_options.  Call
8585         decode_cmdline_options_to_array before checking for
8586         -no-canonical-prefixes using decoded options.
8587         * opts-common.c (tm.h): Update comment on #include.
8588         (find_opt): Allow abbreviations of long options.
8589         (struct option_map, option_map): New.
8590         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
8591         and -mno handling.
8592         (target_option_translations): New.
8593         (decode_cmdline_options_to_array): Handle
8594         TARGET_OPTION_TRANSLATE_TABLE in driver.
8595         * opts.c (common_handle_option): Don't handle OPT_fhelp,
8596         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
8597
8598 2010-09-22  Richard Guenther  <rguenther@suse.de>
8599
8600         * tree-inline.c (optimize_inline_calls): Schedule cleanups
8601         only if we inlined something.  Block compaction and conditional
8602         folding are done by cfg cleanup.  Schedule update-address-taken.
8603         (tree_function_versioning): Remove redundant call to number_blocks.
8604         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
8605         folding is done by cfg cleanup.
8606         * passes.c (init_optimization_passes): Remove update-address-taken
8607         pass after IPA inlining.
8608
8609 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
8610
8611         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
8612         to update conditions. Fix reg_mode[] check.
8613
8614 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
8615
8616         * config/picochip/picochip.md (movhicc): Use expand to check whether
8617         movhicc is available and split it after reload.
8618
8619 2010-09-22  Richard Guenther  <rguenther@suse.de>
8620
8621         * tree-ssanames.c (release_dead_ssa_names): Do not remove
8622         callee edges here.
8623         * passes.c (init_optimization_passes): Remove early CFG cleanup.
8624         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
8625         (pass_cleanup_cfg): Likewise.
8626         (execute_fixup_cfg): Cleanup.
8627         * tree-pass.h (pass_cleanup_cfg): Remove.
8628
8629 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8630
8631         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
8632         builtins if it is true.
8633         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
8634         parameter.
8635
8636 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8637
8638         * tree-sra.c (struct access): New field grp_no_warning.
8639         (create_access_replacement): Set TREE_NO_WARNING according to
8640          grp_no_warning.
8641         (create_artificial_child_access): Use build_ref_for_model and set
8642         grp_no_warning if build_user_friendly_ref_for_offset fails.
8643         (propagate_subaccesses_across_link): Likewise.
8644
8645 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8646
8647         PR target/35664
8648         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
8649         ('f'): Likewise.
8650
8651 2010-09-22  Tristan Gingold  <gingold@adacore.com>
8652
8653         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
8654
8655 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
8656
8657         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
8658         * config/i386/i386.c (decide_alg): Update for rename.
8659
8660 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
8661
8662         PR rtl-optimization/45739
8663         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
8664         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
8665
8666 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
8667
8668         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
8669         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
8670         Remove.
8671         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
8672         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8673
8674 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8675
8676         PR objc/23710
8677         * c-parser.c (c_parser_objc_method_definition): Check the return
8678         value of objc_start_method_definition and if false is returned,
8679         parse the method definition but emit no code.
8680
8681 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8682
8683         PR objc/25965
8684         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
8685         call objc_get_interface_ivars ().
8686
8687 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
8688
8689         PR target/45694
8690         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
8691         static chain-register is used for 64-bit.
8692
8693 2010-09-21  Richard Guenther  <rguenther@suse.de>
8694
8695         * dwarf2out.c (is_cu_die): New function.
8696         (add_pubtype): Use it.
8697         (gen_subprogram_die): Likewise.
8698         (gen_struct_or_union_type_die): Likewise.
8699         (dwarf2out_finish): Likewise.
8700         (comp_unit_die): Rename to ...
8701         (single_comp_unit_die): ... this.
8702         (comp_unit_die): New function lazily constructing and
8703         returning single_comp_unit_die.
8704         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
8705         base_type_die, subrange_type_die, modified_type_die,
8706         lower_bound_default, add_bound_info, add_prototyped_attribute,
8707         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
8708         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
8709         force_decl_die, gen_namespace_die, dwarf2out_decl,
8710         dwarf2out_start_source_file, dwarf2out_end_source_file,
8711         prune_unused_types, dwarf2out_finish): Use it.
8712         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
8713         the global list of translation-unit decls.
8714         (dwarf2out_init): Do not create single_comp_unit_die here.
8715         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
8716
8717 2010-09-21  Richard Guenther  <rguenther@suse.de>
8718
8719         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
8720         for bool for C++.
8721
8722 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
8723
8724         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
8725         (qhs_extenddi_cstr): Likewise.
8726         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
8727         them for the source operand.
8728
8729 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
8730
8731         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
8732         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
8733         (ix86_split_ashr): Ditto.
8734         (ix86_split_lshr): Ditto.
8735
8736 2010-09-21  Richard Guenther  <rguenther@suse.de>
8737
8738         PR tree-optimization/45580
8739         * tree-ssa-propagate.c (substitute_and_fold): Always replace
8740         regular uses.
8741         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
8742         virtuals fold the call into a regular indirect one.
8743
8744 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8745
8746         PR rtl-optimization/42775
8747         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
8748         scheduling is enabled.
8749
8750 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8751
8752         PR rtl-optimization/45728
8753         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
8754         gen_lowpart_common first and if that fails, force_reg first
8755         before calling gen_lowpart.
8756
8757         PR middle-end/45678
8758         * cfgexpand.c (expand_one_stack_var_at): Use
8759         crtl->max_used_stack_slot_alignment as max_align, instead
8760         of maximum of that and PREFERRED_STACK_BOUNDARY.
8761         Don't call update_stack_alignment.
8762
8763 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8764
8765         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
8766         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
8767         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
8768         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
8769         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
8770         (build_nonstandard_integer_type): Likewise.
8771         (build_range_type_1): New function, built from...
8772         (build_range_type): ...this.  Call build_range_type_1.
8773         (build_nonshared_range_type): New function.
8774         (build_array_type_1): New function, built from...
8775         (build_array_type: ...this.  Call build_array_type_1.
8776         (build_nonshared_array_type): New function.
8777         * tree.h (build_nonshared_range_type): Declare.
8778         (build_nonshared_array_type): Likewise.
8779
8780 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
8781
8782         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
8783         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8784         (arm_class_likely_spilled_p): New function.
8785
8786 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
8787
8788         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
8789         indirect functions.
8790         (ix86_split_ashl): Ditto.
8791         (ix86_split_ashr): Ditto.
8792         (ix86_split_lshr): Ditto.
8793         (ix86_adjust_counter): Ditto.
8794
8795 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8796
8797         * c-family/c-common.h (constant_string_class): Documented with
8798         comment identical to the one already in c-common.c.
8799
8800 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8801
8802         * dwarf2out.c (any_cfis_emitted): New static variable.
8803         (add_fde_cfi): Set it.
8804         (dwarf2out_frame_debug): Clear it before processing,
8805         if it is set afterwards, flush any queued reg saves.
8806
8807         PR debug/45124
8808         * dwarf2out.c (add_accessibility_attribute): Assume
8809         DW_ACCESS_private as the default for dwarf_version > 2
8810         and DW_TAG_class_type parent.
8811         (gen_inheritance_die): Assume DW_ACCESS_public as the default
8812         for dwarf_version > 2 and parent other than DW_TAG_class_type.
8813
8814 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8815
8816         PR target/45726
8817         * arm.md (arm_movt): Only enable on machines with MOVT.
8818
8819 2010-09-20  Jie Zhang  <jie@codesourcery.com>
8820
8821         * config/arm/arm.c (arm_address_offset_is_imm): New.
8822         (arm_early_store_addr_dep): New.
8823         (arm_early_load_addr_dep): New.
8824         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
8825         (arm_early_load_addr_dep): Declare.
8826         (arm_address_offset_is_imm): Declare.
8827         * config/arm/cortex-m4.md: New file.
8828         * config/arm/cortex-m4-fpu.md: New file.
8829         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
8830         (attr generic_sched): Exclude cortexm4.
8831         (attr generic_vfp): Exclude cortexm4.
8832
8833 2010-09-20  Richard Guenther  <rguenther@suse.de>
8834
8835         PR middle-end/45704
8836         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
8837
8838 2010-09-20  Jan Hubicka  <jh@suse.cz>
8839
8840         PR tree-optimize/45605
8841         * cgraph.h (const_value_known_p): Declare.
8842         (varpool_decide_const_value_known): Remove.
8843         * tree-ssa-ccp.c (get_base_constructor): Use it.
8844         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
8845         * expr.c (string_constant): Likewise.
8846         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
8847         * ipa.c (ipa_discover_readonly_nonaddressable_var,
8848         function_and_variable_visibility): Likewise.
8849         * gimplify.c (gimplify_call_expr): Likewise.
8850         * gimple-fold.c (get_symbol_constant_value): Likewise.
8851         * varpool.c (varpool_decide_const_value_known): Replace by...
8852         (const_value_known_p): ... this one; handle other kinds of DECLs
8853         too and work for automatic vars.
8854         (varpool_finalize_decl): Use const_value_known_p.
8855
8856 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8857
8858         PR target/45726
8859         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
8860
8861 2010-09-20  Richard Guenther  <rguenther@suse.de>
8862
8863         PR tree-optimization/45705
8864         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
8865
8866 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8867
8868         PR rtl-optimization/45695
8869         * combine.c (try_combine): When splitting a two set pattern,
8870         make sure the pattern which will be put into i2 doesn't use REGs
8871         or MEMs set by insns in between i2 and i3.
8872
8873 2010-09-19  Jan Hubicka  <jh@suse.cz>
8874
8875         PR lto/44246
8876         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
8877         processing same node twice.
8878
8879 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
8880
8881         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
8882         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8883         (bfin_class_likely_spilled_p): New function
8884
8885 2010-09-19  Ira Rosen  <irar@il.ibm.com>
8886
8887         PR tree-optimization/45714
8888         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
8889         created in vectorizable_call instead of the original statement in
8890         def stmt updates.
8891
8892 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
8893
8894         * config/i386/i386-protos.h (split_double_mode): New prototype.
8895         (split_di, split_ti): Remove prototypes.
8896         * config/i386/i386.c (split_double_mode): New function.
8897         (split_di, split_ti): Remove.
8898         (ix86_expand_branch): Use split_double_mode.
8899         (ix86_split_to_parts): Ditto.
8900         (ix86_split_ashl): Ditto.
8901         (ix86_split_ashr): Ditto.
8902         (ix86_split_lshr): Ditto.
8903         (ix86_force_to_memory): Ditto.
8904         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
8905
8906 2010-09-18  Jan Hubicka  <jh@suse.cz>
8907
8908         PR tree-optimization/45453
8909         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
8910         virtual functions are reachable.
8911         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
8912         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
8913         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
8914         when modifying function.
8915
8916 2010-09-18  Jan Hubicka  <jh@suse.cz>
8917
8918         PR tree-optimization/45605
8919         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
8920         * gimple-fold.c (static_object_in_other_unit_p): New function.
8921         (canonicalize_constructor_val): Use it.
8922         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
8923         returning NULL.
8924         (gimple_fold_obj_type_ref_known_binfo): Use
8925         static_object_in_other_unit_p.
8926
8927 2010-09-18  Richard Guenther  <rguenther@suse.de>
8928
8929         PR tree-optimization/45709
8930         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
8931         insertions until after all PHI nodes of the block are processed.
8932
8933 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
8934
8935         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
8936
8937 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
8938
8939         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
8940
8941 2010-09-18  Richard Guenther  <rguenther@suse.de>
8942
8943         PR tree-optimization/45709
8944         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
8945
8946 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8947
8948         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
8949         (dot_deps_stmt): Same.
8950         * graphite-poly.c (dot_lst): Same.
8951         * graphite-scop-detection.c (dot_all_scops): Same.
8952         (dot_scop): Same.
8953
8954 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
8955
8956         Revert:
8957         2009-12-16  Ben Elliston  <bje@au.ibm.com>
8958
8959         * tree-data-ref.c (dot_rdg_1): Added back.
8960         (dot_rdg): Same.  Added "#if 0" around system call.
8961
8962 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8963             Richard Henderson  <rth@redhat.com>
8964
8965         * config/i386/i386.c (initial_ix86_tune_features): Add
8966         X86_TUNE_PAD_SHORT_FUNCTION.
8967         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
8968         (ix86_count_insn): New.
8969         (ix86_pad_short_function): Likewise.
8970         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
8971
8972         * config/i386/i386.h (ix86_tune_indices): Add
8973         X86_TUNE_PAD_SHORT_FUNCTION.
8974         (TARGET_PAD_SHORT_FUNCTION): New.
8975
8976         * config/i386/i386.md (UNSPEC_NOPS): New.
8977         (nops): Likewise.
8978
8979 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8980
8981         PR middle-end/45234
8982         * calls.c (expand_call): Make sure that all variable sized
8983         adjustments are multiple of preferred stack boundary after
8984         stack alignment.
8985
8986 2010-09-17  DJ Delorie  <dj@redhat.com>
8987
8988         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
8989         passed an invalid value, print an error instead of ICEing.
8990         (valid_psw_flag): New.
8991         (rx_expand_builtin): Call it for setpsw/clrpsw.
8992         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
8993
8994         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
8995         (bitclr_in_memory): Likewise.
8996         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
8997
8998 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8999
9000         PR middle-end/45678
9001         * cfgexpand.c (update_stack_alignment): New.
9002         (get_decl_align_unit): Use it.
9003         (expand_one_stack_var_at): Call update_stack_alignment.
9004
9005 2010-09-17  Richard Guenther  <rguenther@suse.de>
9006
9007         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
9008         Properly copy the read string.
9009
9010 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
9011
9012         * doc/options.texi (Variable): Document.
9013         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
9014         generate target_flags declarations explicitly.  Don't define
9015         VarExists variables for the driver.
9016         * common.opt (target_flags): New Variable record.
9017         (flag_dump_unnumbered, flag_dump_unnumbered_links,
9018         flag_var_tracking, flag_var_tracking_assignments,
9019         flag_var_tracking_assignments_toggle): Don't mark variables with
9020         VarExists.
9021         * config/i386/i386.c (ix86_isa_flags): Don't define here.
9022         * config/i386/i386.opt (ix86_isa_flags): Define here.
9023         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
9024         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
9025         VarExists.
9026         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
9027         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
9028         Only define for generator programs.
9029         * rtlanal.c (target_flags): Remove.
9030         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
9031         flag_var_tracking_assignments_toggle): Remove.
9032
9033 2010-09-17  Michael Matz  <matz@suse.de>
9034
9035         PR tree-optimization/43432
9036         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9037         Accept backwards consecutive accesses.
9038         (vect_create_data_ref_ptr): If step is negative generate
9039         decreasing IVs.
9040         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
9041         (perm_mask_for_reverse, reverse_vec_elements): New functions.
9042         (vectorizable_load): Handle loads with negative steps when easily
9043         possible.
9044
9045 2010-09-03  Jan Hubicka  <jh@suse.cz>
9046
9047         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
9048
9049 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
9050
9051         * config/v850/v850.c (v850_function_value_regno_p): Make static.
9052         Adjust comments. Declare.
9053         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9054         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
9055
9056 2010-09-17  Richard Guenther  <rguenther@suse.de>
9057
9058         * common.opt (combine): Remove.
9059         * gcc.c (default_compilers): Remove specs testing combine.
9060         The C compilers no longer can combine.
9061         (option_map): Remove -combine.
9062         (display_help): Remove -combine.
9063         (driver_handle_option): Remove OPT_combine handling.
9064         (compile_input_file_p): Remove.
9065         (do_spec): Remove code concerning combine.
9066         (main): Likewise.
9067         * doc/invoke.texi: Remove traces of -combine.
9068         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
9069
9070 2010-09-17  Richard Guenther  <rguenther@suse.de>
9071
9072         PR middle-end/45678
9073         * builtins.c (fold_builtin_memory_op): Always properly adjust
9074         alignment of memory accesses.
9075
9076 2010-09-16  Jan Hubicka  <jh@suse.cz>
9077
9078         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
9079         processing clone.
9080
9081 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
9082
9083         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
9084
9085         * config/i386/i386.c (predict_jump): Add prototype.
9086         (flag_opts): Add -m8bit-idiv.
9087         (ix86_split_idivmod): New.
9088
9089         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
9090         Add 2 splitters for SI/DI mode divide.
9091         (divmod<mode>4_1): New pattern.
9092         (udivmod<mode>4_1): Likewise.
9093         (testdi_ccno_1): Likewise.
9094
9095         * config/i386/i386.opt (m8bit-idiv): New.
9096
9097         * doc/invoke.texi: Document -m8bit-idiv.
9098
9099 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
9100
9101         PR bootstrap/45680
9102         * config/i386/i386.c (min_insn_size): Moved out of the
9103         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
9104
9105 2010-09-16  Jan Hubicka  <jh@suse.cz>
9106
9107         * lto-cgraph.c (lto_output_node): Fix handling of clones.
9108         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
9109         unreachable clones with reachable clones.
9110         * tree-inline.c (copy_bb): Fix sanity checking when producing
9111         unreachable clone.
9112
9113 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
9114
9115         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
9116         (TARGET_MEMORY_MOVE_COST): Define.
9117         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
9118
9119 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
9120
9121         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
9122         maybe_tidy_empty_bb.
9123
9124         Revert:
9125         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
9126         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
9127
9128 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
9129
9130         * target.def (target_option.optimization): New hook.
9131         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
9132         TARGET_OPTION_OPTIMIZATION hook.
9133         * doc/tm.texi: Regenerate.
9134         * hooks.c (hook_void_int_int): New.
9135         * hooks.h (hook_void_int_int): Declare.
9136         * opts.c: Don't include tm_p.h.
9137         (decode_options): Use targetm.target_option.optimization instead
9138         of OPTIMIZATION_OPTIONS.
9139         * system.h (OPTIMIZATION_OPTIONS): Poison.
9140         * config/arm/arm-protos.h (arm_optimization_options): Remove.
9141         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
9142         (arm_optimization_options): Rename to arm_option_optimization.
9143         Make static.
9144         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
9145         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
9146         (cris_option_optimization): New.
9147         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
9148         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
9149         (crx_option_optimization): New.
9150         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
9151         * config/frv/frv-protos.h (frv_optimization_options): Remove.
9152         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
9153         (frv_optimization_options): Rename to frv_option_optimization.
9154         Make static.
9155         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
9156         * config/h8300/h8300.c (h8300_option_optimization): New.
9157         (TARGET_OPTION_OPTIMIZATION): Define.
9158         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
9159         * config/i386/i386-protos.h (optimization_options): Remove.
9160         * config/i386/i386.c (optimization_options): Rename to
9161         ix86_option_optimization.  Make static.
9162         (TARGET_OPTION_OPTIMIZATION): Define.
9163         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
9164         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
9165         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
9166         (ia64_optimization_options): Rename to ia64_option_optimization.
9167         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
9168         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
9169         commented-out definition.
9170         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
9171         instead of OPTIMIZATION_OPTIONS.
9172         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
9173         (m32r_option_optimization): New.
9174         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
9175         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
9176         Remove.
9177         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
9178         (mcore_option_optimization): New.
9179         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
9180         * config/mep/mep-protos.h (mep_optimization_options): Remove.
9181         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
9182         (mep_optimization_options): Rename to mep_option_optimization.
9183         Make static.  Take unused level and size parameters.
9184         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
9185         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
9186         (mmix_option_optimization): New.
9187         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
9188         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
9189         (pdp11_option_optimization): New.
9190         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
9191         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
9192         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
9193         (optimization_options): Rename to rs6000_option_optimization.
9194         Make static.
9195         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
9196         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
9197         * config/rx/rx.c (rx_set_optimization_options): Rename to
9198         rx_option_optimization.  Make static.  Take unused level and size
9199         parameters.
9200         (TARGET_OPTION_OPTIMIZATION): Define.
9201         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
9202         * config/s390/s390-protos.h (optimization_options): Remove.
9203         * config/s390/s390.c (optimization_options): Rename to
9204         s390_option_optimization.  Make static.  Don't mark size parameter
9205         unused.
9206         (TARGET_OPTION_OPTIMIZATION): Define.
9207         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
9208         * config/sh/sh-protos.h (sh_optimization_options): Remove.
9209         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
9210         (sh_optimization_options): Rename to sh_option_optimization.  Make
9211         static.  Don't mark parameters unused.
9212         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
9213         * config/spu/spu-protos.h (spu_optimization_options): Remove.
9214         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
9215         (spu_optimization_options): Rename to spu_option_optimization.
9216         Make static.
9217         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
9218         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
9219         (v850_option_optimization): New.
9220         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
9221         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
9222         (xtensa_option_optimization): New.
9223         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
9224
9225 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
9226
9227         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
9228         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
9229         * doc/tm.texi: Regenerate.
9230         * system.h (OVERRIDE_OPTIONS): Poison.
9231         * target.def (override): Default to hook_void_void.
9232         * targhooks.c (default_target_option_override): Remove.
9233         * genmodes.c, machmode.def: Update comments mentioning
9234         OVERRIDE_OPTIONS.
9235         * config/alpha/alpha-modes.def: Update comment mentioning
9236         alpha_override_options.
9237         * config/alpha/alpha-protos.h (override_options): Remove.
9238         * config/alpha/alpha.c (override_options): Rename to
9239         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
9240         (TARGET_OPTION_OVERRIDE): Define.
9241         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
9242         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
9243         of OVERRIDE_OPTIONS.
9244         * config/arc/arc-protos.h (arc_init): Remove.
9245         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
9246         (arc_init): Rename to arc_option_override.  Make static.
9247         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
9248         (OVERRIDE_OPTIONS): Remove.
9249         * config/arm/arm-protos.h (arm_override_options): Remove.
9250         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
9251         (arm_override_options): Rename to arm_option_override.  Make
9252         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9253         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
9254         * config/arm/arm.md: Update comment referring to arm_override_options.
9255         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9256         instead of OVERRIDE_OPTIONS.
9257         * config/avr/avr-protos.h (avr_override_options): Remove.
9258         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
9259         (avr_override_options): Rename to avr_option_override.  Make static.
9260         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
9261         * config/bfin/bfin-protos.h (override_options): Remove (twice).
9262         * config/bfin/bfin.c (override_options): Rename to
9263         bfin_option_override.  Make static.
9264         (TARGET_OPTION_OVERRIDE): Define.
9265         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
9266         * config/cris/cris-protos.h (cris_override_options): Remove.
9267         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
9268         (cris_override_options): Rename to cris_option_override.  Make static.
9269         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
9270         * config/frv/frv-protos.h (frv_override_options): Remove.
9271         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
9272         (frv_override_options): Rename to frv_option_override.  Make static.
9273         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
9274         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
9275         * config/h8300/h8300.c (h8300_init_once): Rename to
9276         h8300_option_override.  Make static.
9277         (TARGET_OPTION_OVERRIDE): Define.
9278         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
9279         * config/i386/i386-protos.h (override_options): Remove.
9280         * config/i386/i386.c (override_options): Rename to
9281         ix86_option_override_internal.  Make static.  Comments referring
9282         to this function and callers changed.
9283         (ix86_option_override): New.
9284         (TARGET_OPTION_OVERRIDE): Define.
9285         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
9286         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
9287         * config/ia64/ia64.c (ia64_file_start): Update comment referring
9288         to ia64_override_options.
9289         * config/iq2000/iq2000-protos.h (override_options): Remove.
9290         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
9291         (override_options): Rename to iq2000_option_override.  Make static.
9292         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
9293         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
9294         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
9295         (lm32_override_options): Rename to lm32_option_override.  Make static.
9296         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
9297         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
9298         (m32r_option_override): New.
9299         (m32r_init): Update comment.
9300         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
9301         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
9302         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
9303         (m68hc11_override_options): Rename to m68hc11_option_override.
9304         Make static.  Return void.
9305         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
9306         * config/m68k/m68k-protos.h (override_options): Remove.
9307         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
9308         (override_options): Rename to m68k_option_override.  Make static.
9309         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
9310         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
9311         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
9312         (mcore_override_options): Rename to mcore_option_override.  Make
9313         static.
9314         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
9315         * config/mep/mep-protos.h (mep_override_options): Remove.
9316         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
9317         (mep_override_options): Rename to mep_option_override.  Make static.
9318         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
9319         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
9320         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
9321         (mmix_override_options): Rename to mmix_option_override.  Make static.
9322         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
9323         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
9324         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
9325         (mn10300_override_options): Rename to mn10300_option_override.
9326         Make static.
9327         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
9328         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
9329         * config/moxie/moxie.c (moxie_override_options): Rename to
9330         moxie_option_override.  Make static.
9331         (TARGET_OPTION_OVERRIDE): Define.
9332         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
9333         * config/picochip/picochip-protos.h (picochip_override_options):
9334         Remove.  Update comment referring to picochip_override_options.
9335         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
9336         (picochip_override_options): Rename to picochip_option_override.
9337         Make static.  Update comment and definition of
9338         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
9339         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
9340         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9341         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9342         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9343         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9344         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9345         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
9346         instead of OVERRIDE_OPTIONS.
9347         * config/rs6000/rs6000-modes.def: Update comment referring to
9348         rs6000_override_options.
9349         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
9350         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
9351         (rs6000_override_options): Rename to
9352         rs6000_option_override_internal.  Make static.  Commented
9353         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
9354         (rs6000_option_override): New.
9355         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
9356         instead of OVERRIDE_OPTIONS.
9357         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9358         * config/s390/s390-protos.h (override_options): Remove.
9359         * config/s390/s390.c (override_options): Rename to
9360         s390_option_override.  Make static.
9361         (TARGET_OPTION_OVERRIDE): Define.
9362         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
9363         * config/score/score-protos.h (score_override_options): Remove.
9364         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
9365         (score_override_options): Rename to score_option_override.  Make
9366         static.
9367         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
9368         Update comment referring to override_options.
9369         * config/score/score3.c (score3_override_options): Rename to
9370         score3_option_override.
9371         * config/score/score3.h (score3_override_options): Rename to
9372         score3_option_override.
9373         * config/score/score7.c (score7_override_options): Rename to
9374         score7_option_override.
9375         * config/score/score7.h (score7_override_options): Rename to
9376         score7_option_override.
9377         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
9378         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
9379         (sparc_override_options): Rename to sparc_option_override.  Make
9380         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9381         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
9382         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9383         instead of OVERRIDE_OPTIONS.
9384         * config/spu/spu-protos.h (spu_override_options): Remove.
9385         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
9386         (spu_override_options): Rename to spu_option_override.  Make
9387         static.
9388         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
9389         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
9390         OVERRIDE_OPTIONS.
9391         * config/vax/vax-protos.h (override_options): Remove.
9392         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
9393         (override_options): Rename to vax_option_override.  Make static.
9394         Call SUBTARGET_OVERRIDE_OPTIONS.
9395         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
9396         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
9397         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
9398         * config/xtensa/xtensa-protos.h (override_options): Remove.
9399         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
9400         (override_options): Rename to xtensa_option_override.  Make static.
9401         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
9402
9403 2010-09-16  Richard Guenther  <rguenther@suse.de>
9404
9405         PR tree-optimization/45623
9406         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
9407         (get_constraint_for_component_ref): If computing a constraint
9408         for the rhs handle type punning through unions.
9409         (get_constraint_for_address_of): Adjust.
9410         (get_constraint_for_1): Likewise.
9411         (get_constraint_for): Likewise.
9412         (get_constraint_for_rhs): New function.
9413         (do_structure_copy): Adjust.
9414         (make_constraint_to): Likewise.
9415         (handle_const_call): Likewise.
9416         (find_func_aliases): Likewise.
9417         (process_ipa_clobber): Likewise.
9418         (create_variable_info_for): Likewise.
9419
9420 2010-09-16  Ira Rosen  <irar@il.ibm.com>
9421
9422         * tree-vectorizer.c: Fix documentation.
9423         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
9424         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
9425         is_pattern_stmt_p, is_loop_header_bb_p,
9426         stmt_vinfo_set_inside_of_loop_cost,
9427         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
9428         known_alignment_for_access_p): Likewise.
9429         * tree-vect-loop.c: Fix documentation.
9430         (vect_get_cost): Start function name from new line.
9431         * tree-vect-data-refs.c: Fix documentation.
9432         * tree-vect_stmts.c: Likewise.
9433         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
9434         (vectorizable_store): Free vec_oprnds if allocated.
9435         (vectorizable_condition): Initialize several variables to avoid
9436         warnings.
9437         * tree-vect-slp.c: Fix documentation.
9438
9439 2010-09-16  Richard Guenther  <rguenther@suse.de>
9440
9441         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
9442         is TS_TRANSLATION_UNIT_DECL.
9443         (initialize_tree_contains_struct): Adjust.
9444         (all_translation_units): New global vector.
9445         (build_translation_unit_decl): New function.
9446         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
9447         (struct tree_translation_unit_decl): New.
9448         (all_translation_units): Declare.
9449         (union tree_node): Add translation_unit_decl member.
9450         (build_translation_unit_decl): Declare.
9451         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
9452         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
9453         New function.
9454         (pack_value_fields): Call it.
9455         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
9456         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
9457         (lto_output_tree_pointers): Call it.
9458         * lto-streamer-in.c (lto_input_tree_ref): Handle references
9459         to TRANSLATION_UNIT_DECL.
9460         (unpack_ts_translation_unit_decl_value_fields): New function.
9461         (unpack_value_fields): Call it.
9462         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
9463         (lto_input_tree_pointers): Call it.
9464         * lto-streamer.c (check_handled_ts_structures): Adjust.
9465         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
9466         * c-decl.c (all_translation_units): Remove.
9467         (pop_scope): Use build_translation_unit_decl.
9468         (collect_all_refs): Adjust.
9469         (for_each_global_decl): Likewise.
9470         (c_write_global_declarations): Likewise.
9471
9472 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
9473
9474         PR bootstrap/45686
9475         * fold-const.c (fold_checksum_tree): Change slot from const void **
9476         to void **, use CONST_CAST_TREE to store into *slot.
9477
9478 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         * config/i386/i386.md: Remove unneeded empty conditions and
9481         preparation statements from expanders.
9482         * config/i386/mmx.md: Ditto.
9483         * config/i386/sse.md: Ditto.
9484
9485 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9486
9487         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
9488
9489 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9490
9491         PR rtl-optimization/45593
9492         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
9493         insns that were in delay slots as stand-alone insns.
9494
9495 2010-09-15  Ian Lance Taylor  <iant@google.com>
9496
9497         * incpath.c (remove_duplicates): If name is not a directory, issue
9498         a warning rather than an error.
9499
9500 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9501
9502         PR middle-end/45644
9503         * tree-sra.c (create_access): Check for bit-fields directly.
9504
9505 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
9506
9507         PR tree-optimization/45633
9508         * tree-cfg.c (verify_gimple_assign_binary): Allow
9509         MINUS_EXPR with lhs and rhs1 pointer vector and
9510         rhs2 sizetype vector.
9511         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
9512         or vector pointer use TER to optimize pointer subtraction.
9513
9514 2010-09-15  Jie Zhang  <jie@codesourcery.com>
9515
9516         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
9517         fcmpd to fcmps.
9518
9519 2010-09-15  Ian Lance Taylor  <iant@google.com>
9520
9521         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
9522
9523 2010-09-15  Ian Lance Taylor  <iant@google.com>
9524
9525         * function.c (get_arg_pointer_save_area): Set
9526         arg_pointer_save_area_init to true.
9527
9528 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9529
9530         * tree-sra.c (generate_subtree_copies): Updated comment.
9531         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
9532         obtained from the statement iterator instead.
9533         (load_assign_lhs_subreplacements): Removed parameters lhs and
9534         right_offset, which is obtained from top_racc instead.  Parameter lacc
9535         is now expected to be the root of the processed tree rather than root's
9536         first child.  Updated all callers.
9537
9538 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
9539
9540         * config/pdp11/pdp11.c (register_move_cost): Rename to
9541         pdp11_register_move_cost.
9542         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
9543         pdp11_register_move_cost.
9544         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
9545         pdp11_register_move_cost instead of register_move_cost.
9546
9547 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
9548
9549         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
9550         pattern for vmovn. Expansion in case of non
9551         -mvectorize-with-neon-quad.
9552         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
9553         non- -mvectorize-with-neon-quad case.
9554         (move_lo_quad_<mode>): New expansion to vmov into low part.
9555         (move_hi_quad_<mode>): New expansion to vmov into high part.
9556         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
9557         (move_lo_quad_v4sf): Likewise.
9558         (move_lo_quad_v8hi): Likewise.
9559         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
9560         low part.
9561         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
9562         high part.
9563         * config/arm/iterators.md (ANY128): New mode iterator.
9564         (V_narrow_pack): New mode attribute.
9565         (V_HALF): Add attribute.
9566         (V_DOUBLE): Add attribute.
9567         (V_mode_nunits): Add attribute.
9568
9569 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9570
9571         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
9572         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
9573
9574 2010-09-15  Olivier Hainque  <hainque@adacore.com>
9575             Jose Ruiz  <ruiz@adacore.com>
9576
9577         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
9578         * config/alpha/osf5-unwind.h: New file.
9579
9580 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9581
9582         PR bootstrap/45672
9583         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
9584         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9585         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9586
9587 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9588
9589         * c-lang.h (struct lang_type): Add variable_size GTY option.
9590
9591 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9592
9593         PR bootstrap/45672
9594         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9595
9596 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9597
9598         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
9599         result isn't used in memory address.
9600
9601 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9602
9603         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
9604         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
9605         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
9606         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
9607         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
9608         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
9609
9610         * target.def: Add units_per_simd_word to vectorize.
9611
9612         * targhooks.c (default_units_per_simd_word): New.
9613         * targhooks.h (default_units_per_simd_word): Likewise.
9614         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
9615         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9616         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
9617         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9618         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9619         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9620         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9621         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9622
9623         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
9624         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
9625
9626         * tree-vect-stmts.c: Don't include "tm_p.h".
9627         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
9628         with targetm.vectorize.units_per_simd_word.
9629
9630         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
9631
9632         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
9633
9634         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
9635         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9636
9637         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
9638         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
9639
9640         * doc/tm.texi: Regenerated.
9641
9642 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9643
9644         * tree-vect-stmts.c: Include "tm_p.h".
9645
9646         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
9647         out of RTX_CODE.
9648
9649 2010-09-14  Martin Jambor  <mjambor@suse.cz>
9650
9651         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
9652         location of generated statement.  Changed all callers.
9653         (build_ref_for_model): New parameter loc which used to set location of
9654         all generated expressions.  Changed all callers.
9655         (generate_subtree_copies): Likewise.
9656         (init_subtree_with_zero): Likewise.
9657         (sra_modify_expr): Set locations of all generated statements and
9658         expressions to the location the original statement.
9659         (handle_unscalarized_data_in_subtree): Likewise.
9660         (load_assign_lhs_subreplacements): Likewise.
9661         (sra_modify_constructor_assign): Likewise.
9662         (sra_modify_assign): Likewise.
9663
9664 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
9665
9666         PR target/45277
9667         PR target/45363
9668         PR target/45407
9669         * doc/install.texi (sparc*-*-*): New section.
9670         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
9671
9672 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9673
9674         PR middle-end/45567
9675         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
9676         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
9677         (expand_builtin): Adjust caller.
9678         (expand_builtin_unop): Only use subtarget if it has the right mode.
9679
9680 2010-09-14  Tristan Gingold  <gingold@adacore.com>
9681
9682         * configure.ac (plugins): Fix typos.
9683         * configure: Regenerate.
9684
9685 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9686
9687         PR debug/45660
9688         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
9689         gen_type_die for function/method return type.
9690
9691 2010-09-14  Ira Rosen  <irar@il.ibm.com>
9692
9693         PR tree-optimization/45470
9694         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9695         can throw an exception.
9696         * tree-vect-stmts.c (vectorizable_call): Likewise.
9697
9698 2010-09-14  DJ Delorie  <dj@redhat.com>
9699
9700         PR target/44749
9701         * config/mep/mep-protos.h (mep_save_register_info,
9702         mep_reinit_regs, mep_init_regs): Declare.
9703
9704         * config/mep/mep.c: Move all target definitions to the end of the
9705         file to avoid the need for duplicate declarations.
9706         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
9707         (mep_reorg_erepeat): Remove unused variables.
9708         (mep_expand_builtin): Likewise.
9709
9710         * config/mep/mep-pragma.c: Don't include rtl.h.
9711         (INVALID_REGNUM): New.
9712         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
9713         functions.
9714         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
9715         Avoid enum/integer math.
9716
9717 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
9718
9719         PR target/44749
9720         * config/mep/t-mep (GTM_H): Add insn-constants.h.
9721         * config/mep/mep.c (mep_conditional_register_usage): Take no
9722         parameters.
9723         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
9724         prototype.
9725         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
9726         call to mep_conditional_register_usage.
9727
9728 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
9729
9730         PR debug/43937
9731         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
9732         the DECL as well.
9733
9734 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
9735
9736         PR rtl-optimization/45617
9737         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
9738         even if low N bits of X aren't known to be zero.
9739
9740 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
9741
9742         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
9743
9744         * config/i386/i386.c (initial_ix86_tune_features): Add
9745         X86_TUNE_VECTORIZE_DOUBLE.
9746         (ix86_units_per_simd_word): New.
9747
9748         * config/i386/i386.h (ix86_tune_indices): Add
9749         X86_TUNE_VECTORIZE_DOUBLE.
9750         (TARGET_VECTORIZE_DOUBLE): New.
9751         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
9752
9753 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
9754
9755         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
9756         (new_temp_expr_table): Allocate call_cnt vector.
9757         (free_temp_expr_table): Free it.
9758         (process_replaceable): Add call_cnt parm and set in vector.
9759         (find_replaceable_in_bb): Skip replacement if def/use span a call.
9760         (debug_ter): Dump call_cnt value, remove stderr uses.
9761
9762 2010-09-13  Jan Hubicka  <jh@suse.cz>
9763
9764         * tree.c (build_zero_cst): New.
9765         * tree.h (build_zero_cst): Declare.
9766         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
9767         (get_base_constructor): Break out from ...
9768         (fold_const_aggregate_ref): Here; handle empty constructors.
9769
9770 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9771
9772         * config/arm/arm.md: (define_attr "conds"): Update comment.
9773         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
9774         conds attribute to clob.
9775         (arm_sync_compare_and_swapsi): Likewise.
9776         (arm_sync_compare_and_swap<mode>): Likewise.
9777         (arm_sync_lock_test_and_setsi): Likewise.
9778         (arm_sync_lock_test_and_set<mode>): Likewise.
9779         (arm_sync_new_<sync_optab>si): Likewise.
9780         (arm_sync_new_nandsi): Likewise.
9781         (arm_sync_new_<sync_optab><mode>): Likewise.
9782         (arm_sync_new_nand<mode>): Likewise.
9783         (arm_sync_old_<sync_optab>si): Likewise.
9784         (arm_sync_old_nandsi): Likewise.
9785         (arm_sync_old_<sync_optab><mode>): Likewise.
9786         (arm_sync_old_nand<mode>): Likewise.
9787
9788 2010-09-13  Olivier Hainque  <hainque@adacore.com>
9789
9790         * fwprop.c (forward_propagate_and_simplify): Only attach a
9791         REG_EQUAL note to an insn if the destination is a register.
9792         * gcse.c (try_replace_reg): Likewise.
9793
9794 2010-09-13  Richard Guenther  <rguenther@suse.de>
9795
9796         PR tree-optimization/45611
9797         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
9798         (copy_ref_info): Likewise.
9799
9800 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
9801
9802         PR debug/45604
9803         PR debug/45419
9804         PR debug/45408
9805         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9806         types of MEM_REF pointer types to the same type.
9807
9808 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
9809
9810         PR rtl-optimization/41087
9811         * ifcvt.c (noce_get_condition): Don't allow conditions with
9812         side-effects.
9813
9814 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
9815
9816         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9817         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
9818         * config/frv/frv.c (frv_register_move_cost): Make static. Change
9819         arguments type to reg_class_t. Add mode argument.
9820         (frv_memory_move_cost): New.
9821         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
9822
9823 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
9824
9825         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
9826         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
9827
9828 2010-09-10  Jan Hubicka  <jh@suse.cz>
9829
9830         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
9831
9832 2010-09-10  Richard Guenther  <rguenther@suse.de>
9833
9834         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
9835         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
9836         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
9837         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
9838         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
9839
9840 2010-09-10  Richard Guenther  <rguenther@suse.de>
9841
9842         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
9843         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
9844         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
9845         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
9846
9847 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
9848
9849         PR middle-end/45634
9850         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
9851         of string folding is of integral type.
9852
9853 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
9854
9855         * doc/invoke.texi (-x): Fix typo.
9856
9857 2010-09-10  Richard Guenther  <rguenther@suse.de>
9858
9859         PR debug/44115
9860         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
9861         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9862         Output DECL_DEBUG_EXPR.
9863         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9864         Input DECL_DEBUG_EXPR.
9865
9866 2010-09-10  Richard Guenther  <rguenther@suse.de>
9867
9868         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
9869         (build_index_type): Implement in terms of build_range_type.
9870         (build_range_type): Do not allow NULL_TREE type, improve
9871         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
9872         if we didn't hash.
9873         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
9874         create a distinct copy of the type.
9875
9876 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
9877
9878         * configure: Regenerated.
9879         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
9880
9881 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9882
9883         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
9884         * config/arm/cortex-a9-neon.md: New and partially generated.
9885         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
9886
9887 2010-09-10  Richard Guenther  <rguenther@suse.de>
9888
9889         * tree.h (build_index_2_type): Remove.
9890         * tree.c (build_index_2_type): Remove.
9891
9892 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
9893
9894         PR bootstrap/45630
9895         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
9896         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
9897         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
9898
9899 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9900
9901         PR tree-optimization/44972
9902         * tree-sra.c: Include toplev.h.
9903         (build_ref_for_offset): Entirely reimplemented.
9904         (build_ref_for_model): New function.
9905         (build_user_friendly_ref_for_offset): New function.
9906         (analyze_access_subtree): Removed build_ref_for_offset check.
9907         (propagate_subaccesses_across_link): Likewise.
9908         (create_artificial_child_access): Use
9909         build_user_friendly_ref_for_offset.
9910         (propagate_subaccesses_across_link): Likewise.
9911         (ref_expr_for_all_replacements_p): Removed.
9912         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
9913         (sra_modify_expr): Use build_ref_for_model.
9914         (load_assign_lhs_subreplacements): Likewise.
9915         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
9916         checks for return values of build_ref_for_offset.
9917         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
9918         build_ref_for_offset.
9919         * ipa-prop.h: Include gimple.h
9920         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
9921         (ipa_analyze_indirect_call_uses): Update comment.
9922         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
9923         (IPA_PROP_H): Likewise.
9924
9925 2010-09-10  Martin Jambor  <mjambor@suse.cz>
9926
9927         PR tree-optimization/44972
9928         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
9929         calling build_ref_for_offset.
9930
9931 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9932
9933         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
9934         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
9935         * config/arm/arm-tune.md: Regenerate.
9936         * doc/invoke.texi (ARM Options): Document it.
9937
9938 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
9939
9940         * config/i386/i386.c: Include sched-int.h.
9941         (TARGET_SCHED_DISPATCH): Defined.
9942         (TARGET_SCHED_DISPATCH_DO): Defined.
9943         (DISPATCH_WINDOW_SIZE): Defined.
9944         (MAX_DISPATCH_WINDOWS): Defined.
9945         (MAX_INSN): Defined.
9946         (MAX_IMM): Defined.
9947         (MAX_IMM_SIZE): Defined.
9948         (MAX_IMM_32): Defined.
9949         (MAX_IMM_64): Defined.
9950         (MAX_LOAD): Defined.
9951         (MAX_STORE): Defined.
9952         (BIG): Defined.
9953         (dispatch_group): New.
9954         (num_allowable_groups): New.
9955         (group_name): New.
9956         (sched_insn_info_s): New.
9957         (dispatch_windows_s): New.
9958         (imm_info_s): New.
9959         (dispatch_window_list): New.
9960         (dispatch_window_list1): New.
9961         (get_mem_group): New.
9962         (is_cmp): New.
9963         (dispatch_violation): New.
9964         (is_branch): New.
9965         (is_prefetch): New.
9966         (init_window): New.
9967         (allocate_window): New.
9968         (init_dispatch_sched): New.
9969         (is_end_basic_block): New.
9970         (process_end_window): New.
9971         (allocate_next_window): New.
9972         (find_constant_1): New.
9973         (find_constant): New.
9974         (get_num_immediates): New.
9975         (has_immediate): New.
9976         (get_insn_path): New.
9977         (get_insn_group): New.
9978         (count_num_restricted): New.
9979         (fits_dispatch_window): New.
9980         (add_insn_window): New.
9981         (add_to_dispatch_window): New.
9982         (debug_dispatch_window_file): New.
9983         (debug_dispatch_window): New.
9984         (debug_insn_dispatch_info_file): New.
9985         (debug_ready_dispatch): New.
9986         (do_dispatch): New.
9987         (has_dispatch): New.
9988         * config/i386/i386.h (debug_ready_dispatch): Declared.
9989         (debug_dispatch_window): Declared.
9990         * config/i386/i386.opt (mdispatch-scheduler): New flag.
9991         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
9992         (TARGET_SCHED_DISPATCH_DO): New.
9993         * doc/tm.texi: Regererated.
9994         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
9995         ready_remove_first_dispatch
9996         (schedule_block): Call targetm.sched.dispatch and
9997         targetm.sched.dispatch_do.
9998         (sched_init): Call targetm.sched.dispatch and
9999         targetm.sched.dispatch_do.
10000         (ready_remove_first_dispatch): New.
10001         (number_in_ready): New.
10002         (get_ready_element): New.
10003         * hooks.c (hook_bool_rtx_int_false): New.
10004         (hook_void_rtx_int): New.
10005         * hooks.h (hook_bool_rtx_int_false): Declared.
10006         (hook_void_rtx_int): Declared.
10007         * sched-int.h (IS_DISPATCH_ON): Defined.
10008         (IS_CMP): Defined.
10009         (DISPATCH_VIOLATION): Defined.
10010         (FITS_DISPATCH_WINDOW): Defined.
10011         (DISPATCH_INIT): Defined.
10012         (ADD_TO_DISPATCH_WINDOW): Defined.
10013         (get_ready_element): Declared.
10014         (number_in_ready): Declared.
10015         * target.def (dispatch): Defined.
10016         (dispatch_do): Defined.
10017
10018 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10019
10020         PR middle-end/45312
10021         * reload1.c (merge_assigned_reloads): Remove.
10022         (reload_as_needed): Don't call it.
10023
10024 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
10025
10026         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
10027         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10028         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10029
10030 2010-09-09  Matthias Klose  <doko@ubuntu.com>
10031
10032         PR bootstrap/43847
10033         * configure.ac (--enable-plugin): Enhance for cross builds.
10034         * configure: Regenerate.
10035
10036 2010-09-09  Jan Hubicka  <jh@suse.cz>
10037
10038         PR tree-optimization/45598
10039         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
10040         string folding is of integral type.
10041
10042 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
10043
10044         * configure.ac (gnu_indirect_function): New test.
10045         * configure: Rebuilt.
10046         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
10047         * defaults.h (IFUNC_ASM_TYPE): Provide default.
10048
10049         * doc/extend.texi (Function Attributes): Document ifunc.
10050         * varasm.c (do_assemble_alias): Deal with ifuncs too.
10051
10052 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10053
10054         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
10055         epilogue instruction move.
10056
10057 2010-09-09  Jan Hubicka  <jh@suse.cz>
10058
10059         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
10060         command line to allow more partitions than input files.
10061
10062 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10063
10064         PR middle-end/44554
10065         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
10066
10067 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10068
10069         PR middle-end/40386
10070         * ira.c (pseudo_for_reload_consideration_p): Don't use
10071         flag_ira_share_spill_slots.
10072
10073 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10074
10075         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
10076         point zero operands that fit into a single GPR.
10077         (s390_preferred_reload_class): Ensure we only return general-purpose
10078         register classes.
10079         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
10080         floating-point zero operands into GPRs.
10081         ("*mov<mode>_64"): Likewise.
10082         ("mov<mode>"): Likewise using lhi.
10083
10084 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10085
10086         * config/s390/s390.c (s390_symref_operand_p): Return false for
10087         literal pool references.
10088         (s390_check_qrst_address): Update caller.
10089
10090 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
10091
10092         * config/i386/predicates.md (ext_register_operand): Check that
10093         SUBREG_REG is really a register before looking for REGNO.
10094         (reg_not_xmm0_operand): Handle SUBREGs correctly.
10095         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
10096
10097 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
10098
10099         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
10100         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
10101         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
10102         * print-rtl.c (print_rtx): Likewise.
10103         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10104         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
10105         for ADDR_EXPR with non-addressable object.
10106         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
10107         (struct dw_val_struct): Add v.val_decl_ref.
10108         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
10109         Handle DW_OP_GNU_implicit_pointer.
10110         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
10111         (get_ref_die_offset_label): New function.
10112         (implicit_ptr_descriptor): New function.
10113         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
10114         (loc_descriptor): Likewise.
10115         (gen_variable_die): Put even definitions into decl_die_table.
10116         (resolve_addr_in_expr): Resolve still unresolved
10117         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
10118         return false.
10119         (dwarf2out_finish): Call output_location_lists after outputting
10120         .debug_info and .debug_abbrev instead of before.
10121
10122 2010-09-09  Roland McGrath  <roland@redhat.com>
10123
10124         * dwarf2out.c (DWARF_REF_SIZE): Define.
10125         (size_of_loc_descr): Use it for DW_OP_call_ref.
10126
10127 2010-09-09  Alan Modra  <amodra@gmail.com>
10128
10129         * doc/invoke.text: Reinstate mcmodel=medium.
10130         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10131         CMODEL_MEDIUM as default.
10132         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
10133         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
10134         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
10135         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
10136
10137 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10138
10139         PR target/45250
10140         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
10141         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
10142         (builtin_longjmp): Likewise.
10143         (allocate_stack): Use hard_frame_pointer_rtx instead of
10144         frame_pointer_rtx.
10145         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
10146         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
10147         (pa_can_eliminate): Likewise.
10148         (TARGET_INTERNAL_ARG_POINTER): Define.
10149         (TARGET_CAN_ELIMINATE): Define.
10150         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
10151         pointer.
10152         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
10153         (pa_internal_arg_pointer, pa_can_eliminate,
10154         pa_initial_elimination_offset): New.
10155         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
10156         (HARD_FRAME_POINTER_REGNUM): Set to register three.
10157         (INITIAL_FRAME_POINTER_OFFSET): Delete.
10158         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
10159         Define.
10160         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
10161         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
10162         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
10163         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
10164         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
10165         new soft frame pointer.
10166         * config/pa/pa64-regs.h: Likewise.
10167
10168 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
10169
10170         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
10171         numerical constant.
10172         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
10173
10174 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
10175
10176         PR debug/45531
10177         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
10178
10179 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
10180
10181         PR debug/45419
10182         PR debug/45408
10183         * tree-pretty-print.c (dump_generic_node): Disregard top-level
10184         qualifiers in otherwise equal MEM_REF pointer types.
10185         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
10186         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
10187
10188 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10189
10190         PR target/44392
10191         * config/arm/arm.md (bswapsi2): Handle condition correctly
10192         for armv6 and optimize_size.
10193
10194 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10195
10196         PR other/18555
10197         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
10198
10199 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
10200
10201         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
10202         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
10203         ix86_expand_strlen, legitimate_pic_address_disp_p,
10204         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
10205         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
10206         ix86_check_movabs, ix86_secondary_memory_needed): Change function
10207         prototype to bool.
10208         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
10209         return_in_memory_ms_64, ix86_check_movabs,
10210         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
10211         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
10212         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
10213         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
10214         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
10215         ix86_secondary_memory_needed): Change to bool.  Return
10216         "true" and "false" values.
10217         * config/i386/i386.md: Return "true" and "false" values.
10218
10219 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10220
10221         * doc/sourcebuild.texi (Effective-Target Keywords): Document
10222         run_expensive_tests.
10223
10224 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10225
10226         * toplev.c (output_stack_usage): Use lbasename instead of basename.
10227
10228 2010-09-08  Martin Jambor  <mjambor@suse.cz>
10229
10230         PR other/45443
10231         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
10232         at -O3.
10233
10234 2010-09-08  Richard Guenther  <rguenther@suse.de>
10235
10236         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
10237         (visit): Adjust.
10238         (iterative_hash_gimple_type): Likewise.
10239         (gimple_type_hash): Likewise.
10240         (gimple_register_type): Likewise.
10241         (print_gimple_types_stats): Likewise.
10242         (free_gimple_type_tables): Likewise.
10243
10244 2010-09-08  Michael Matz  <matz@suse.de>
10245
10246         PR tree-optimization/43430
10247         * tree-vect-stmts.c (vectorizable_condition): Support multiple
10248         copies for conditional statements if it's not part of a reduction.
10249
10250 2010-09-08  Michael Matz  <matz@suse.de>
10251
10252         PR tree-optimization/33244
10253         * tree-ssa-sink.c (statement_sink_location): Don't sink into
10254         empty loop latches.
10255
10256 2010-09-08  Richard Guenther  <rguenther@suse.de>
10257
10258         PR tree-optimization/45578
10259         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
10260         Be more careful when transfering alignment information to
10261         the new induction variable.
10262         (copy_ref_info): Likewise.
10263
10264 2010-09-08  Richard Guenther  <rguenther@suse.de>
10265
10266         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
10267         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
10268
10269 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
10270
10271         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
10272         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
10273
10274 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
10275
10276         PR doc/45587
10277         * doc/md.texi: Fixed modes on several standard pattern names.
10278
10279 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
10280
10281         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
10282         (ashl<mode>3): ...this.
10283         (loongson_psra<V_suffix>): Rename to...
10284         (ashr<mode>3): ...this.
10285         (loongson_psrl<V_suffix>): Rename to...
10286         (lshr<mode>3): ...this.
10287         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
10288         (CODE_FOR_loongson_psllw): Define.
10289         (CODE_FOR_loongson_psrlh): Define.
10290         (CODE_FOR_loongson_psrlw): Define.
10291         (CODE_FOR_loongson_psrah): Define.
10292         (CODE_FOR_loongson_psraw): Define.
10293
10294 2010-09-07  Richard Henderson  <rth@redhat.com>
10295
10296         * tree-vect-data-refs.c: Include tm_p.h.
10297         * Makefile.in (tree-vect-data-refs.o): Update deps.
10298         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
10299         Move delarations outside #ifdef RTX_CODE.
10300
10301 2010-09-07  Richard Henderson  <rth@redhat.com>
10302
10303         * final.c (rest_of_handle_final): Unconditionally do
10304         output_function_exception_table before assemble_end_function.
10305
10306 2010-09-07  Jan Hubicka  <jh@suse.cz>
10307
10308         * tree-inline.c (tree_inlinable_function_p): Do not test
10309         DECL_REPLACEABLE_P.
10310         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
10311         update_callee_keys, cgraph_decide_inlining): Test function availability.
10312         * cif-code.def (OVERWRITABLE): New code.
10313
10314 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
10315             Jack Howarth  <howarth@bromo.med.uc.edu>
10316
10317         PR target/36502
10318         PR target/42313
10319         PR target/44651
10320         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
10321         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
10322         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
10323         MAX macro.
10324
10325 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10326
10327         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
10328         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
10329
10330 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10331
10332         * config.gcc: Don't append t-android for Android targets.
10333
10334         * config/t-android: Removed.
10335
10336 2010-09-07  Richard Henderson  <rth@redhat.com>
10337
10338         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
10339         * doc/tm.texi.in: Add doc marker.
10340         * doc/tm.texi: Rebuild.
10341         * except.c (switch_to_exception_section): Always build.
10342         (output_one_function_exception_table): Move section switch,
10343         personality output, and label output ...
10344         (output_function_exception_table): ... here.  Use the new
10345         personality hook.
10346
10347         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
10348         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
10349         TARGET_ASM_INIT_SECTIONS): New.
10350         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
10351         make static.
10352         (TARGET_ASM_UNWIND_EMIT): Update to match.
10353         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
10354
10355         * config/arm/arm.c (arm_asm_emit_except_personality): New.
10356         (arm_asm_init_sections): New.
10357         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
10358
10359 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10360
10361         * config/arm/arm.md: Remove unused variable.
10362
10363 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
10364
10365         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10366         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
10367         (m32r_memory_move_cost): New function.
10368
10369 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10370
10371         * config.gcc: Append t-android for Android targets.
10372
10373         * config/t-android: New.
10374
10375 2010-09-07  Richard Henderson  <rth@redhat.com>
10376
10377         * target.def (unwind_emit_before_insn): New hook.
10378         * doc/tm.texi.in: Add @hook marker for it.
10379         * doc/tm.texi: Rebuild.
10380         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
10381
10382 2010-09-07  Martin Jambor  <mjambor@suse.cz>
10383
10384         PR fortran/43665
10385         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
10386         are any type attributes.
10387
10388 2010-09-07  Jan Hubicka  <jh@suse.cz>
10389
10390         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
10391         array_ref_low_bound in string access folding.
10392
10393 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
10394
10395         PR target/45206
10396         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
10397         eh_return fixup sequence.
10398
10399 2010-09-07  Jan Hubicka  <jh@suse.cz>
10400
10401         * gimple-fold.c (maybe_fold_reference): Verify that operand is
10402         gimple_min_invariant.
10403
10404 2010-09-07  Richard Guenther  <rguenther@suse.de>
10405
10406         PR middle-end/45569
10407         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
10408         nor CONSTRUCTOR can trap.
10409         * tree-complex.c (update_complex_assignment): Update EH info.
10410
10411 2010-09-07  Richard Guenther  <rguenther@suse.de>
10412
10413         PR middle-end/45569
10414         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
10415         * passes.c (execute_function_todo): Do not verify anything if
10416         we saw errors.
10417
10418 2010-09-07  Richard Guenther  <rguenther@suse.de>
10419
10420         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
10421
10422 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
10423
10424         PR target/43137
10425         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
10426         New define_mode_attrs.
10427         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
10428         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
10429         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
10430         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
10431         Remove pool_range attribute.
10432         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
10433         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
10434         pool_range and neg_pool_range attributes.
10435         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
10436         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
10437         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
10438
10439 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10440
10441         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
10442         check glibc.
10443
10444 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10445
10446         PR target/22152
10447         * config/i386/mmx.md (*mov<mode>_internal_rex64,
10448         *mov<mode>_internal_avx, *mov<mode>_internal,
10449         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
10450         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
10451
10452 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
10453
10454         * c-typeck.c (do_warn_double_promotion): Remove.
10455         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
10456         Objective-C++ too.
10457
10458 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
10459
10460         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
10461         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
10462         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
10463         argument type to reg_class_t. Change result type to bool.
10464         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10465
10466 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10467
10468         PR libobjc/19850
10469         * gthr-posix.h (__gthread_objc_thread_detach): Use
10470         _objc_thread_attribs when detaching a thread.
10471         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
10472
10473 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10474
10475         PR target/45524
10476         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
10477         * configure: Regenerated.
10478
10479 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10480
10481         * combine.c (try_combine): Set subst_low_luid to i0.
10482
10483 2010-09-06  Richard Guenther  <rguenther@suse.de>
10484
10485         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
10486         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
10487         (build_aligned_type): Declare.
10488         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
10489         (check_aligned_type): New function.
10490         (build_aligned_type): Likewise.
10491         * expr.c (expand_assignment): Handle misaligned stores via
10492         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
10493         (expand_expr_real_1): Likewise.
10494         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
10495         * tree-vect-stmts.c (vectorizable_store): Do not build
10496         MISALIGNED_INDIRECT_REF but initialize alignment information.
10497         (vectorizable_load): Likewise.
10498         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
10499         handling.
10500         * cfgexpand.c (expand_debug_expr): Likewise.
10501         * dwarf2out.c (loc_list_from_tree): Likewise.
10502         * fold-const.c (maybe_lvalue_p): Likewise.
10503         (operand_equal_p): Likewise.
10504         (build_fold_addr_expr_with_type_loc): Likewise.
10505         * gimplify.c (gimplify_addr_expr): Likewise.
10506         (gimplify_expr): Likewise.
10507         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
10508         (verify_gimple_assign_single): Likewise.
10509         * tree-dump.c (dequeue_and_dump): Likewise.
10510         (tree_could_trap_p): Likewise.
10511         * tree-predcom.c (ref_at_iteration): Likewise.
10512         * tree-pretty-print.c (dump_generic_node): Likewise.
10513         (op_code_prio): Likewise.
10514         (op_symbol_code): Likewise.
10515         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
10516         * tree-ssa-loop-im.c (for_each_index): Likewise.
10517         (gen_lsm_tmp_name): Likewise.
10518         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
10519         (find_interesting_uses_address): Likewise.
10520         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
10521         * tree-ssa-operands.c (get_expr_operands): Likewise.
10522         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10523         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10524         (ao_ref_init_from_vn_reference): Likewise.
10525         * tree.c (staticp): Likewise.
10526         (build1_stat): Likewise.
10527         (reference_alias_ptr_type): Likewise.
10528         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10529         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
10530         MISALIGNED_INDIRECT_REF handling.
10531
10532 2010-09-06  Richard Guenther  <rguenther@suse.de>
10533
10534         PR tree-optimization/45534
10535         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
10536         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
10537         on the target.
10538         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
10539         valid on the target.
10540
10541 2010-09-06  Andreas Schwab  <schwab@redhat.com>
10542
10543         * configure.ac: Quote argument of AC_MSG_WARN.
10544         * configure: Regenerate.
10545
10546 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10547
10548         * sel-sched.c (move_cond_jump): Correct arguments to
10549         maybe_tidy_empty_bb.
10550         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10551
10552 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
10553
10554         PR rtl-optimization/44919
10555         * sel-sched.c (move_cond_jump): Remove assert, check that
10556         the several blocks case can only happen with mutually exclusive
10557         insns instead.  Rewrite the movement code to support moving through
10558         several basic blocks.
10559
10560 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10561
10562         * config/i386/i386.md (iptrsize): New mode attribute.
10563         (tp_seg): Ditto.
10564         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
10565         mode iterator.
10566         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
10567         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
10568         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
10569         (stack_tls_protect_set_<mode>): Ditto from
10570         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
10571         of thread base pointer load.
10572         (stack_tls_protect_test_<mode>): Ditto from
10573         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
10574         of thread base pointer load.
10575         (stack_protect_set): Rewrite using indirect functions.
10576         (stack_protect_test): Ditto.
10577         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
10578         (ix86_print_operand): Handle '@'.
10579
10580 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
10581
10582         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
10583         MINUS_EXPR.
10584
10585 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
10586
10587         * doc/invoke.texi: Document -Wdouble-promotion.
10588         * c-typeck.c (convert_arguments): Check for implicit conversions
10589         from float to double.
10590         (do_warn_double_promotion): New function.
10591         (build_conditional_expr): Use it.
10592         (build_binary_op): Likewise.
10593
10594 2010-09-05  Richard Guenther  <rguenther@suse.de>
10595
10596         PR tree-optimization/45535
10597         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
10598         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
10599         dereferencing it.
10600         (indirect_refs_may_alias_p): Likewise.
10601
10602 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
10603
10604         * config/sh/sh.c (sh_option_override): Make static.
10605         Adjust comments.  Declare.
10606         (sh_function_value_regno_p): Likewise.
10607         (sh_register_move_cost): Modify the arguments, make static.
10608         Adjust comments.  Declare.
10609         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
10610         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10611         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
10612         REGISTER_MOVE_COST): Delete.
10613         * config/sh/sh-protos.h (sh_override_options): Delete.
10614         (sh_register_move_cost): Delete.
10615         (sh_function_value_regno_p): Delete.
10616
10617 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
10618
10619         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
10620         m32r_function_value_regno_p): New functions.
10621         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10622         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
10623         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
10624         FUNCTION_VALUE_REGNO_P): Remove.
10625
10626 2010-09-04  Jan Hubicka  <jh@suse.cz>
10627
10628         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
10629         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
10630         fold_read_from_constant_string.
10631
10632         * gimple.h (canonicalize_constructor_val): Declare.
10633         * gimple-fold.c (canonicalize_constructor_val): New function.
10634         (get_symbol_constant_value):Use it.
10635         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10636
10637 2010-09-04  Jan Hubicka  <jh@suse.cz>
10638
10639         * tree-switch-conversion.c (build_one_array): Set constructor to be
10640         static.
10641         * varpool.c (varpool_finalize_decl): Compute const_value_known.
10642
10643 2010-09-04  Richard Guenther  <rguenther@suse.de>
10644
10645         PR bootstrap/45519
10646         * tree-flow.h (force_gimple_operand_1): Declare.
10647         (force_gimple_operand_gsi_1): Likewise.
10648         * gimplify.c (force_gimple_operand_1): New worker taking a
10649         gimple predicate for ...
10650         (force_gimple_operand): ... which now wraps it.
10651         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
10652         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
10653         last change.
10654         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
10655         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
10656         (create_mem_ref): Likewise.
10657
10658 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
10659
10660         * config/i386/predicates.md (sse_reg_operand): New predicate.
10661         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
10662         predicate for operand 1.
10663         (XFmode push splitter): Use fp_register_operand predicate
10664         for operand 1.
10665         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
10666         (SF-DF float_extend push splitter): Add reload_completed insn
10667         predicate.
10668         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
10669         MODEF mode macro.  Add reload_completed insn predicate.
10670
10671 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
10672
10673         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
10674         (struct df_extract_ref): Remove.
10675         (union df_ref_d): Remove extract_ref member.
10676         (df_ref_create): Remove last three arguments.
10677         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
10678         * df-scan.c (df_ref_record): Remove last three arguments, do not
10679         pass them to df_ref_create_structure.
10680         (df_uses_record): Remove first and last three arguments.  Replace
10681         first argument with DF_REF_REGULAR, adjust calls to remove the
10682         width, offset and mode.  Always call recursively on the second
10683         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
10684         (df_ref_create_structure): Remove first argument.
10685         (struct df_scan_problem_data): Remove ref_extract_pool.
10686         (df_scan_free_internal): Do not free it.
10687         (df_scan_alloc): Do not allocate it.
10688         (df_ref_create): Remove last three arguments, do not pass them to
10689         df_ref_create_structure.
10690         (df_free_ref): Remove DF_REF_EXTRACT case.
10691         (df_notes_rescan): Adjust call to df_uses_record.
10692         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
10693         Remove DF_REF_EXTRACT case.
10694         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
10695         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
10696         and SUBREG definitions.
10697         (df_get_conditional_uses): Remove references to width/offset/mode,
10698         adjust call to df_ref_create_structure.
10699         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
10700         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
10701         calls to df_uses_record and df_ref_record.
10702         * fwprop.c (update_df): Remove references to width/offset/mode,
10703         adjust call to df_ref_create.
10704
10705 2010-09-03  Jan Hubicka  <jh@suse.cz>
10706
10707         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
10708         (build_cdtor_fns): Update use of build_cdtor.
10709
10710 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
10711
10712         * doc/options.texi (SeparateAlias): Document.
10713         * opt-functions.awk (switch_flags): Handle SeparateAlias.
10714         * opth-gen.awk: Generate enumeration names for options marked
10715         SeparateAlias, but not for those marked Ignore.
10716         * opts-common.c (generate_canonical_option): Don't output separate
10717         argument for options marked CL_SEPARATE_ALIAS.
10718         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
10719         * opts.h (CL_SEPARATE_ALIAS): New.
10720         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
10721         CL_COMMON): Adjust definitions.
10722         * config/i386/darwin.opt, config/mips/sde.opt: New.
10723         * common.opt (fdump-final-insns): New.
10724         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10725         i386/darwin.opt.
10726         (mips*-sde-elf*): Add mips/sde.opt.
10727         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
10728         -mno-data-in-code and -mcode-xonly here.
10729         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
10730         * gcc.c (option_map): Add "j" to --dump entry.
10731         (translate_options): Don't translate -d to -foutput-class-dir= here.
10732
10733 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
10734
10735         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
10736         DR_IS_WRITE.
10737         (compute_all_dependences): Same.
10738         (create_rdg_edge_for_ddr): Same.
10739         * tree-data-ref.h (DR_IS_WRITE): New.
10740         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
10741         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
10742         (write_memrefs_written_at_least_once): Same.
10743         * tree-predcom.c (suitable_component_p): Same.
10744         (determine_roots_comp): Same.
10745         (execute_load_motion): Same.
10746         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
10747         (vect_enhance_data_refs_alignment): Same.
10748         (vect_analyze_group_access): Same.
10749
10750 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
10751
10752         PR testsuite/42843
10753         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
10754         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
10755
10756 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
10757
10758         * dwarf2out.c (file scope): Remove #if0'd code.
10759         (gen_subprogram_die): Same.
10760
10761 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10762
10763         PR middle-end/45484
10764         * dwarf2out.c (flush_queued_reg_saves): Rename to...
10765         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
10766         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
10767         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
10768         * config/i386/i386.c (output_set_got): Call it.
10769
10770 2010-09-03  Michael Matz  <matz@suse.de>
10771
10772         PR middle-end/45415
10773         * tree-sra.c (sra_modify_assign): If we modify the statement,
10774         say so.
10775
10776         * tree-ssa.c (verify_ssa): Check number of operands and links
10777         per statement to agree.
10778
10779 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10780             Iain Sandoe  <iains@gcc.gnu.org>
10781
10782         PR target/45476
10783         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
10784         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
10785         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10786
10787 2010-09-03  Richard Guenther  <rguenther@suse.de>
10788
10789         * lto-streamer-out.c (output_function): Output function
10790         start and end loci.
10791         * lto-streamer-in.c (input_function): Input function start
10792         and end loci.
10793
10794 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10795
10796         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
10797         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
10798         * configure: Regenerate.
10799         * aclocal.m4: Regenerate.
10800
10801 2010-09-03  Jan Hubicka  <jh@suse.cz>
10802
10803         PR lto/44812
10804         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
10805         on functions/variables in other partition.
10806
10807 2010-09-03  Jan Hubicka  <jh@suse.cz>
10808
10809         * cgraph.h (struct varpool_node): Add const_value_known.
10810         (varpool_decide_const_value_known): Declare.
10811         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
10812         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
10813         (input_varpool_node): Restore const_value_known.
10814         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
10815         initializer folding.
10816         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10817         function_and_variable_visibility): Compute const_value_known.
10818         * gimple-fold.c (get_symbol_constant_value): Use varpool for
10819         initializer folding.
10820         * varpool.c (varpool_decide_const_value_known): New function.
10821
10822 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10823
10824         * config/i386/i386.md: Remove empty preparation statements
10825         from splitters.
10826
10827 2010-09-03  Jan Hubicka  <jh@suse.cz>
10828
10829         * passes.c (rest_of_decl_compilation): Do not add local vars into
10830         varpool.
10831         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
10832         static or extern vars are in varpool.
10833         (varpool_finalize_decl): Sanity check that only static vars are
10834         finalized.
10835
10836 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10837
10838         PR debug/45500
10839         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
10840         not just generic vectors with BLKmode.
10841
10842 2010-09-03  Richard Guenther  <rguenther@suse.de>
10843
10844         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
10845         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
10846         * tree.h (TMR_SYMBOL): Remove.
10847         (TMR_BASE, TMR_OFFSET): Adjust.
10848         (TMR_INDEX2): New.
10849         * alias.c (ao_ref_from_mem): Use TMR_BASE.
10850         * builtins.c (get_object_alignment): Merge TMR_BASE and
10851         TMR_SYMBOL handling.
10852         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
10853         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
10854         handling.  Also allow TARGET_MEM_REF as base address.
10855         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
10856         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
10857         base.  Gimplify TMR_INDEX2.
10858         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
10859         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10860         (get_addr_base_and_unit_offset): Likewise.
10861         * tree-eh.c (tree_could_trap_p): Likewise.
10862         * tree-pretty-print.c (dump_generic_node): Likewise.
10863         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
10864         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
10865         base to index2.
10866         (get_address_description): Reconstruct addres description
10867         from merged TMR_BASE and TMR_INDEX2.
10868         (maybe_fold_tmr): Fold propagated addresses.
10869         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
10870         MEM_REF and TARGET_MEM_REF paths.
10871         (indirect_refs_may_alias_p): Likewise.
10872         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
10873         instead of TMR_SYMBOL.
10874         * tree-ssa-operands.c (get_tmr_operands): Simplify.
10875         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
10876         according to changes ...
10877         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
10878         Split TARGET_MEM_REF into two fields plus the base.
10879         * tree.c (mem_ref_offset): Simplify.
10880         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
10881         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
10882         Strip NOPs when folding MEM_REF addresses.
10883         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
10884         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
10885         (fold_gimple_assign): ... not here.
10886
10887 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
10888
10889         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
10890         * config/mips/mips.c (mips_shift_truncation_mask): New function.
10891         (TARGET_SHIFT_TRUNCATION_MASK): Define.
10892
10893 2010-09-02  Richard Henderson  <rth@redhat.com>
10894
10895         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
10896         instead of readelf in the test.
10897         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
10898         in the .debug_frame section for coff targets.
10899         * configure: Rebuild.
10900
10901 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10902
10903         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
10904         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
10905         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10906         (m32c_class_likely_spilled_p): Make static. Change argument type to
10907         reg_class_t. Change result type to bool.
10908
10909 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10910
10911         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
10912         to convert (double)(long) into a single FRIZ instruction or not
10913         when -ffast-math is used.
10914
10915         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
10916         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
10917         or FRIZ instruction if -ffast-math.
10918         * config/rs6000/rs6000.md (friz): Ditto.
10919
10920         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
10921
10922 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10923
10924         * opth-gen.awk (quote, comma): Remove unused variables.
10925
10926 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
10927
10928         * arm.c (arm_override_options): Correct fall-back code to use
10929         SUBTARGET_CPU_DEFAULT.
10930
10931 2010-09-02  Julian Brown  <julian@codesourcery.com>
10932
10933         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
10934         unspecs.
10935         (vcond<mode>, vcondu<mode>): New expanders.
10936         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
10937         comparisons with zero.
10938         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
10939         * config/arm/constraints.md (Dz): New constraint.
10940
10941 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
10942
10943         * target.def (class_likely_spilled_p): New hook.
10944         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
10945         * doc/tm.texi: Regenerate.
10946         * targhooks.c (default_class_likely_spilled_p): New function.
10947         * targhooks.h (default_class_likely_spilled_p): Declare.
10948         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
10949         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
10950         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
10951         Use fixed_reg_set instead of fixed_regs.
10952         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10953         * calls.c (avoid_likely_spilled_reg): Ditto.
10954         * ira-conflicts.c (ira_build_conflicts): Ditto.
10955         * ira.c (update_equiv_regs): Ditto.
10956         * mode-switching.c (create_pre_exit): Ditto.
10957         * regmove.c (find_matches): Ditto.
10958         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
10959         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
10960         (small_register_class_p): New inline function.
10961         (push_secondary_reload, find_reusable_reload, find_reloads): Use
10962         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
10963
10964         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
10965         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
10966         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10967
10968 2010-09-02  Richard Guenther  <rguenther@suse.de>
10969
10970         PR tree-optimization/44937
10971         PR tree-optimization/45412
10972         * ipa-split.c (split_function): Properly remove PHI nodes.
10973
10974 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
10975
10976         * opts.h (struct cl_option): Add warn_message field.
10977         (struct cl_decoded_option): Add warn_message field.
10978         * doc/options.texi (Ignore, Warn): Document.
10979         * opt-functions.awk (needs_state_p): Don't consider aliases or
10980         ignored options to need state saved.
10981         * optc-gen.awk: Handle Warn and Ignore.
10982         * opth-gen.awk: Output OPT_SPECIAL_ignore.
10983         * opts-common.c (decode_cmdline_option): Set warn_message field.
10984         Handle ignored options.
10985         (decode_cmdline_options_to_array, generate_option,
10986         generate_option_input_file): Set warn_message field.
10987         (read_cmdline_option): Generate warnings from warn_message field.
10988         Handle ignored options.
10989         * common.opt (Wunreachable-code, fargument-alias,
10990         fargument-noalias, fargument-noalias-global,
10991         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
10992         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
10993         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
10994         ftree-salias): Mark Ignore.
10995         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
10996         -mintel-syntax and -mno-intel-syntax here.
10997         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
10998         using Warn.
10999         * opts.c (common_handle_option): Don't handle options marked as
11000         ignored.
11001         (enable_warning_as_error): Handle ignored options.
11002
11003 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11004
11005         PR driver/44076
11006         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
11007         alias_target fields.
11008         * opt-functions.awk (opt_sanitized_name): Don't handle
11009         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
11010         * optc-gen.awk: Generate alias fields.
11011         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
11012         Don't generate such constants for aliases.
11013         * opts-common.c (generate_canonical_option): New.
11014         (decode_cmdline_option): Handle aliases.  Use
11015         generate_canonical_option for known options instead of copying the
11016         input option text.
11017         * doc/options.texi (Alias): Document.
11018         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
11019         fstack-check, specs): Mark as aliases.
11020         * gcc.c (driver_handle_option): Canonicalize -L options to joined
11021         arguments.
11022         (driver_handle_option): Don't handle OPT_specs.
11023         * opts.c (common_handle_option): Don't handle options marked as
11024         aliases.
11025         (enable_warning_as_error): Handle aliases.
11026         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
11027         OPT_Wlarger_than_eq.
11028         * tree-optimize.c (tree_rest_of_compilation): Use
11029         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
11030
11031 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11032
11033         * config/i386/i386.md (nonmemory_operand): New mode attribute.
11034         (push memory peephole2): Macroize peepholes using SWI mode iterator.
11035         (move immediate to memory peephole2): Macroize peepholes using
11036         SWI124 mode iterator.
11037         (non-pairable NOT peephole2): Macroize peepholes using SWI124
11038         mode iterator.
11039         (simple lea add peephole2): Macroize peepholes using SWI48
11040         mode iterator.
11041         (simple lea mult peephole2): Ditto.
11042         (imul by 3,5,9 to lea peephole2): Ditto.
11043         (mov $-1, reg peephole2): Macroize peepholes using SWI248
11044         mode iterator.
11045         (imul $32bit_imm,mem,reg peephole2): Ditto.
11046         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
11047
11048 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
11049
11050         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
11051
11052 2010-09-02  Olivier Hainque  <hainque@adacore.com>
11053
11054         PR middle-end/44763
11055         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
11056         (allocno_priority_compare_func): Use it instead of a straight
11057         difference computation over priorities.
11058
11059 2010-09-02  Andi Kleen  <ak@linux.intel.com>
11060
11061         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
11062
11063 2010-09-02  Ira Rosen  <irar@il.ibm.com>
11064
11065         * tree-vectorizer.h (get_later_stmt): New function.
11066         (vect_analyze_data_ref_dependences): Add argument.
11067         * tree-vect-loop.c (vect_analyze_loop): Update call to
11068         vect_analyze_data_ref_dependences.
11069         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
11070         New function.
11071         (vect_analyze_data_ref_dependence): Add argument for basic block
11072         dependencies. Check dependencies in basic block vectorization.
11073         (vect_analyze_data_ref_dependences): Add argument and update call to
11074         vect_analyze_data_ref_dependences.
11075         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
11076         (vect_bb_vectorizable_with_dependencies): New.
11077         (vect_slp_analyze_bb): Check dependencies in basic block.
11078         (vect_schedule_slp_instance): Insert stores before the last store in
11079         SLP instance.
11080
11081 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11082
11083         PR target/45476
11084         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
11085         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11086
11087 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
11088
11089         PR middle-end/45458
11090         * bb-reorder.c (add_labels_and_missing_jumps): Treat
11091         bbs ending with throwing insns like blocks ending with a call.
11092         (fix_up_fall_thru_edges): Likewise.
11093
11094 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
11095
11096         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
11097         (m32c_function_arg_advance): Delete.
11098         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11099         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
11100         comments.  Take a const_tree and a bool.  Declare.
11101         (m32c_function_arg_advance): Likewise.
11102         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11103
11104 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11105
11106         PR target/45476
11107         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
11108         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
11109         * config/i386/mingw32.h: ... here.
11110
11111 2010-09-01  Andi Kleen  <ak@linux.intel.com>
11112
11113         PR lto/45475
11114         * lto-streamer-in.c (lto_input_ts_target_option): Add.
11115         (lto_input_tree_pointers): Call lto_input_ts_target_option.
11116         * lto-streamer-out (lto_output_ts_target_option): Add.
11117         (lto_output_tree_pointers): Call lto_output_ts_target_option.
11118
11119 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
11120
11121         PR/target 45452
11122         * config/i386/cygwin.h: Change order of specified import libraries.
11123         * config/i386/mingw32.h: Likewise.
11124         * config/i386/t-cygwin: Likewise.
11125         * config/i386/t-mingw32: Likewise.
11126         * config/i386/t-mingw-w32: Likewise.
11127         * config/i386/t-mingw-w64: Likewise.
11128
11129 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11130
11131         * config/arm/neon-schedgen.ml (core): New type.
11132         (allCores): List of supported cores.
11133         (availability_table): Add supported cores.
11134         (collate_bypasses): Accept core as a parameter.
11135         (worst_case_latencies_and_bypasses): Accept core as a parameter.
11136         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
11137         and coreStr to get tune attribute and prefix for functional units.
11138         (emit_bypasses): Accept core name and use it.
11139         (calculate_per_core_availability_table): New.
11140         (filter_core): New.
11141         (calculate_core_availability_table): New.
11142         (main): Use calculate_core_availablity_table.
11143         * config/arm/cortex-a8-neon.md: Update copyright year.
11144         Regenerated from ml file and merged in.
11145         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
11146         cortex_a8_neon_mrc.
11147
11148 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
11149
11150         * Makefile.in (tree-switch-conversion.o): Update dependencies.
11151
11152 2010-09-01  Richard Guenther  <rguenther@suse.de>
11153
11154         * alias.c (ao_ref_from_mem): Adjust.
11155         * builtins.c (get_object_alignment): Likewise.
11156         * cfgexpand.c (expand_debug_expr): Likewise.
11157         * gimple.c (get_base_address): Likewise.
11158         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11159         (get_addr_base_and_unit_offset): Likewise.  Fix for
11160         both TMR_SYMBOL and TMR_BASE being set.
11161         * tree-eh.c (tree_could_trap_p): Likewise.
11162         * gimplify.c (gimplify_expr): Do not attempt to gimplify
11163         TMR_SYMBOL.  Always gimplify TMR_BASE.
11164         * tree-cfg.c (verify_types_in_gimple_reference): Verify
11165         TMR_BASE if there is a TMR_SYMBOL.
11166         * tree-pretty-print.c (dump_generic_node): Adjust.
11167         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11168         (tree_mem_ref_addr): Likewise.
11169         (create_mem_ref_raw): Likewise.
11170         (move_fixed_address_to_symbol): Likewise.
11171         (create_mem_ref): Likewise.
11172         (dump_mem_address): Likewise.
11173         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
11174         Fix for both TMR_SYMBOL and TMR_BASE being set.
11175         (indirect_refs_may_alias_p): Likewise.
11176         * tree-ssa-operands.c (get_tmr_operands): Adjust.
11177         * tree.def (TARGET_MEM_REF): Adjust documentation.
11178
11179 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11180
11181         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
11182         Rename from X86_TUNE_ADD_ESP_4.
11183         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
11184         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
11185         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
11186         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
11187         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
11188         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
11189         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
11190         * config/i386/i386.c (initial_ix86_tune_features)
11191         <X86_TUNE_SINGLE_POP>: Invert members.
11192         <X86_TUNE_DOUBLE_POP>: Ditto.
11193         <X86_TUNE_SINGLE_PUSH>: Ditto.
11194         <X86_TUNE_DOUBLE_PUSH>: Ditto.
11195         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
11196         No longer exported.
11197         (push peephole2 patterns): Macroize peepholes using P mode iterator.
11198         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
11199         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
11200         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
11201
11202 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
11203
11204         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
11205         a volatile LHS if the constructor has only one element.
11206
11207 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
11208
11209         PR bootstrap/45321
11210         * tree.c (stdarg_p): Make fntype parameter const.
11211         * tree.h (stdarg_p): Likewise.
11212         (function_args_iterator): Remove unused fntype field.
11213         (function_args_iter_init): Do not initialize fntype
11214         field.  Make fntype parameter const.
11215
11216 2010-09-01  Richard Guenther  <rguenther@suse.de>
11217
11218         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
11219         estimate.
11220         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
11221         (execute_vrp): Compute number of iteration estimates.
11222         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
11223         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
11224         * tree-data-ref.c (estimated_loop_iterations): Adjust.
11225         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
11226         Infer loop bounds from undefined behavior based on a new parameter.
11227         (estimate_numbers_of_iterations): Likewise.
11228         (scev_probably_wraps_p): Adjust.
11229         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
11230
11231 2010-09-01  Nick Clifton  <nickc@redhat.com>
11232
11233         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
11234         where appropriate.
11235         (xstormy16_legitimate_address_p): Use true and false instead of 1
11236         and 0.
11237         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
11238         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
11239         magic constant 2.
11240         (xstormy16_expand_call): Fix comment at start of function.
11241
11242 2010-09-01  Nick Clifton  <nickc@redhat.com>
11243
11244         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
11245         when pushing accumulator register.
11246         (rx_get_stack_layout): Always save call clobbered registers inside
11247         interrupt handlers.
11248         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
11249
11250 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11251
11252         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
11253         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
11254
11255         * libgcc-std.ver (GCC_4.6.0): Define version.
11256
11257 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11258
11259         * tree-nested.c (convert_all_function_calls): Iterate until after the
11260         sum of static chains in the nest doesn't change.
11261
11262 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
11263
11264         * config/m32c/m32c.c (classes_intersect): Remove.
11265         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
11266         reg_classes_intersect_p instead of classes_intersect.
11267         (class_can_hold_mode): Change arguments type from enum reg_class to
11268         reg_class_t.  Use reg_class_contents instead of class_contents.
11269         (m32c_register_move_cost): Make static. Change arguments type from
11270         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
11271         classes_intersect. Use reg_class_contents instead of class_contents.
11272         (m32c_memory_move_cost): Make static. Change arguments type from
11273         enum reg_class to reg_class_t.
11274         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11275         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11276         * config/m32c/m32c-protos.h (m32c_register_move_cost,
11277         m32c_memory_move_cost): Remove.
11278
11279 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11280
11281         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
11282         (arm_function_arg): Delete.
11283         (arm_needs_doubleword_align): Take a const_tree.
11284         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11285         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
11286         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
11287         (arm_function_arg): Make static.  Take a const_tree and a bool.
11288         (arm_function_arg_advance): Likewise.
11289         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11290
11291 2010-08-31  Andi Kleen  <ak@linux.intel.com>
11292
11293         * common.opt (fwhopr=): Update for -fwhopr=jobserver
11294         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
11295         * lto-wrapper.c (run_gcc): Add jobserver mode.
11296         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
11297         argument.
11298
11299 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
11300
11301         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
11302         (popsi1): Ditto.
11303         (*popdi1_epilogue): Ditto.
11304         (*popsi1_epilogue): Ditto.
11305         (popsi, popdi peephole2 patterns): Update peepholes for changed
11306         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
11307
11308         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
11309         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
11310
11311         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
11312         (override_options): Do not initialize removed ix86_gen_pop1.
11313         (gen_pop): New static function.
11314         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
11315         (release_scratch_register_on_entry): Ditto.
11316         (ix86_restore_reg_using_pop): Ditto.
11317         (ix86_expand_epilogue): Ditto.
11318
11319 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
11320
11321         PR middle-end/45461
11322         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
11323
11324 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11325
11326         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
11327         semicolons.
11328
11329 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11330
11331         * doc/extend.texi: Fix documentation of the return value of
11332         __builtin_choose_expr.
11333
11334 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11335
11336         * config/v850/v850-protos.h (function_arg): Delete.
11337         * config/v850/v850.h (FUNCTION_ARG): Delete.
11338         (FUNCTION_ARG_ADVANCE): Move code to...
11339         * config/v850/v850.c (v850_function_arg_advance): ...here.
11340         (v850_function_arg): Make static.  Take a const_tree and a bool.
11341         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11342
11343 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11344
11345         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
11346         these...
11347         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11348         ...and these...
11349         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
11350         ..to here..
11351         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11352         ...and here.
11353         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11354
11355 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11356
11357         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
11358         Delete.
11359         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11360         * config/rx/rx.c (rx_function_arg_size): Make static.
11361         (rx_function_arg): Likewise.
11362         (rx_function_arg_advance): New function.
11363         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11364
11365 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
11366
11367         * config/arm/arm.c (arm_override_options): Remove superfluous test.
11368         Fix indentation.
11369
11370 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11371
11372         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
11373         (dwarf2out_decl) <CONST_DECL>: Likewise.
11374
11375 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
11376
11377         Stack usage support
11378         * common.opt (-fstack-usage): New option.
11379         * doc/invoke.texi (Debugging options): Document it.
11380         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
11381         allocate_dynamic_stack_space.
11382         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
11383         and propagate it to allocate_dynamic_stack_space.
11384         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
11385         * calls.c (initialize_argument_information): Pass TRUE as 4th
11386         argument to allocate_dynamic_stack_space.
11387         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
11388         to 1 when pushing a variable-sized argument onto the stack.  Pass
11389         TRUE as 4th argument to allocate_dynamic_stack_space.
11390         Update current_function_pushed_stack_size.
11391         (emit_library_call_value_1): Likewise.
11392         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
11393         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
11394         attempt to find an upper bound.  Remove redundant code for the
11395         SETJMP_VIA_SAVE_AREA case.
11396         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
11397         * function.h (struct stack_usage): New structure.
11398         (current_function_static_stack_size): New macro.
11399         (current_function_dynamic_stack_size): Likewise.
11400         (current_function_pushed_stack_size): Likewise.
11401         (current_function_dynamic_alloc_count): Likewise.
11402         (current_function_has_unbounded_dynamic_stack_size): Likewise.
11403         (current_function_allocates_dynamic_stack_space): Likewise.
11404         (struct function): Add new field 'su'.
11405         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
11406         add the value of the dynamic offset to the dynamic stack usage.
11407         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
11408         for variable-sized objects.
11409         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
11410         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
11411         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
11412         BUILT_IN_ALLOCA for variable-sized objects.
11413         * output.h (output_stack_usage): Declare.
11414         * toplev.c (stack_usage_file): New file pointer.
11415         (output_stack_usage): New function.
11416         (open_auxiliary_file): Likewise.
11417         (lang_dependent_init): Open file if flag_stack_usage is set.
11418         (finalize): Close file if stack_usage_file is not null.
11419         * tree.h (ALLOCA_FOR_VAR_P): New macro.
11420         * config/alpha/alpha.c (compute_frame_size): New function.
11421         (alpha_expand_prologue): Use it.
11422         (alpha_start_function): Likewise.
11423         (alpha_expand_epilogue): Likewise.  Set stack usage info.
11424         * config/i386/i386.c (ix86_expand_prologue): Likewise.
11425         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
11426         * config/mips/mips.c (mips_expand_prologue): Likewise.
11427         * config/pa/pa.c (hppa_expand_prologue): Likewise.
11428         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
11429         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11430
11431 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
11432
11433         PR tree-optimization/45427
11434         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
11435         Handle the case that the exit is never taken correctly.
11436         (number_of_iterations_ne): Pass exit_must_be_taken to
11437         number_of_iterations_ne_max.
11438
11439 2010-08-30  Catherine Moore  <clm@codesourcery.com>
11440
11441         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
11442         Infer -mdspr2 for the the 74K.
11443
11444 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
11445
11446         PR debug/45419
11447         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
11448
11449         PR middle-end/45423
11450         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
11451         and TRUTH_{AND,OR,XOR}_EXPR.
11452         * c-parser.c (c_parser_omp_atomic): Handle boolean
11453         {PRE,POST}_{INC,DEC}REMENT.
11454
11455 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
11456
11457         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
11458         (function_arg): Delete.
11459         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11460         (FUNCTION_INCOMING_ARG): Delete.
11461         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
11462         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
11463         and a bool.
11464         (function_arg): Rename to...
11465         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
11466         a bool.
11467         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
11468         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11469         (TARGET_FUNCTION_INCOMING_ARG): Define.
11470
11471 2010-08-30  Richard Guenther  <rguenther@suse.de>
11472
11473         PR tree-optimization/21602
11474         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
11475         using points-to information.
11476
11477 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
11478
11479         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
11480
11481 2010-08-30  Richard Guenther  <rguenther@suse.de>
11482
11483         PR tree-optimization/45449
11484         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
11485         variables.
11486
11487 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
11488
11489         * opts.h (CL_ERR_NEGATIVE): Define.
11490         * opts.c (unknown_option_callback): Don't postpone warnings for
11491         options marked with CL_ERR_NEGATIVE.
11492         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
11493         for negative versions of CL_REJECT_NEGATIVE options.
11494
11495 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
11496
11497         * config/i386/i386.md (zero_extendsidi2_1): Rename from
11498         zero_extendsidi2_32.
11499         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
11500         using SWI12 mode iterator.
11501         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
11502         to define_insn_and_split pattern.
11503         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
11504         using SWI24 mode iterator.
11505         (*zero_extendqi<mode>2_and): Macroize insn from
11506         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
11507         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
11508         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
11509         SWI24 mode iterator.
11510         (*zero_extendqi<mode>2_movzbl): Ditto from
11511         *zero_extendqi{hi,si}2_movzbl.
11512         (extendsidi2_1): Rename from extendsidi2_32.
11513         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
11514         SWI12 mode iterator.
11515
11516 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
11517
11518         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
11519         general purpose registers.
11520         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
11521         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
11522         with general purpose registers and memory operands.  Add associated
11523         CCImode post-reload splitter.
11524         * config/ia64/div.md: Change BImode to CCImode throughout.
11525
11526 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
11527
11528         * config/ia64/ia64.md (cstorebi4): Fix thinko.
11529
11530 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
11531
11532         * config/picochip/picochip.c (reorder_var_tracking_notes): This
11533         function was dropping debug insns which caused PR45299.
11534
11535 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
11536
11537         * config/i386/sse.md (extsuffix): New code attribute.
11538         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
11539         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
11540         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
11541         and sse4_1_zero_extendv4qiv4si2.
11542         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
11543         and sse4_1_zero_extendv2qiv2di2.
11544         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
11545         and sse4_1_zero_extendv4hiv4si2.
11546         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
11547         and sse4_1_zero_extendv2hiv2di2.
11548         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
11549         and sse4_1_zero_extendv2siv2di2
11550
11551         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
11552         using any_extend code iterator.
11553         (*avx_<s>mulv8hi3_highpart): Macroize insn from
11554         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
11555         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
11556
11557         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
11558         gen_sse4_1_sign_extend* functions.
11559         (struct builtin_description bdesc_args): Ditto.
11560
11561 2010-08-27  Xinliang David Li  <davidxl@google.com>
11562
11563         PR/45422
11564         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
11565         (iv_ca_set_no_cp): Update used inv expr count.
11566         (iv_ca_set_cp): Ditto.
11567         (iv_ca_new): Initialize new member.
11568         (iv_ca_free): Free memory.
11569
11570 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11571
11572         * config/sh/sh-protos.h (sh_function_arg): Delete.
11573         (sh_function_arg_advance): Delete.
11574         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11575         (PASS_IN_REG_P): Eliminate cast.
11576         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
11577         const_tree and a bool.
11578         (sh_function_arg): Likewise.
11579         (sh_output_mi_thunk): Call sh_function_arg_advance) and
11580         sh_function_arg.
11581         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11582
11583 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
11584             Kaz Kojima  <kkojima@gcc.gnu.org>
11585
11586         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
11587         when possible.
11588         (sh_expand_epilogue): Likewise.
11589         * config/sh/sh.md (movml_push_banked): New insn.
11590         (movml_pop_banked): Likewise.
11591
11592 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
11593
11594         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
11595         gen_regexp_oneof, gen_regexp_sequence): Use the string found
11596         in vector element 0 rather than the original string when there's
11597         only one element.
11598         (gen_regexp): Remove extra semicolon.
11599
11600         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
11601         thumb2_movsf_vfp): Set attribute "insn".
11602         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
11603         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
11604         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
11605         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
11606         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
11607         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
11608         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
11609         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
11610         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
11611         if_not_arith, if_arith_not, cond_move_not): Likewise.
11612
11613 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11614
11615         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
11616         New declaration.
11617         (rs6000_allocate_stack_temp): Ditto.
11618         (rs6000_expand_convert_si_to_sfdf): Ditto.
11619
11620         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
11621         line.  Update the options set if power6 or power7 server/embedded
11622         type options are used.  If we give a warning for no vsx under
11623         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
11624         (rs6000_allocate_stack_temp): New function to allocate a stack
11625         tempoary and adjust the address so it meets either REG+OFFSET or
11626         REG+REG addressing requirements.
11627         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
11628         that they can be used with the LFIWAX/LFIWZX instrucitons.
11629         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
11630         converting signed/unsigned SImode to either SFmode/DFmode.
11631
11632         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
11633         whether certain instructions can be generated.
11634         (TARGET_FCTIDZ): Ditto.
11635         (TARGET_STFIWX): Ditto.
11636         (TARGET_LFIWAX): Ditto.
11637         (TARGET_LFIWZX): Ditto.
11638         (TARGET_FCFIDS): Ditto.
11639         (TARGET_FCFIDU): Ditto.
11640         (TARGET_FCFIDUS): Ditto.
11641         (TARGET_FCTIDUZ): Ditto.
11642         (TARGET_FCTIWUZ): Ditto.
11643
11644         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
11645         (UNSPEC_FCTID): Ditto.
11646         (UNSPEC_LFIWAX): Ditto.
11647         (UNSPEC_LFIWZX): Ditto.
11648         (UNSPEC_FCTIWUZ): Ditto.
11649         (rreg): Use correct constraints.
11650         (SI_CONVERT_FP): New mode attribute for floating point conversion
11651         tests.
11652         (E500_CONVERT): Ditto.
11653         (lfiwax): New insns for converting from integer to floating point
11654         utilizing newer instructions.  Attempt to optimize conversions
11655         that come from memory so that we don't load the value into a GPR,
11656         spill it to the stack and reload it into a FPR.
11657         (floatsi<mode>2_lfiwax): Ditto.
11658         (floatsi<mode>2_lfiwax_mem): Ditto.
11659         (floatsi<mode>2_lfiwax_mem2): Ditto.
11660         (lfiwzx): Ditto.
11661         (floatunssi<mode>2_lfiwzx): Ditto.
11662         (floatunssi<mode>2_lfiwzx_mem): Ditto.
11663         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
11664         (floatdidf2_mem): Ditto.
11665         (floatunsdidf2_fcfidu): Ditto.
11666         (floatunsdidf2_mem): Ditto.
11667         (floatunsdisf2): Ditto.
11668         (floatunsdisf2_fcfidus): Ditto.
11669         (floatunsdisf2_mem): Ditto.
11670         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
11671         Use FCFID on 32-bit hosts that support it.
11672         (floatsidf2_internal): Ditto.
11673         (floatunssisf2): Ditto.
11674         (floatunssidf2): Ditto.
11675         (floatunssidf2_internal): Ditto.
11676         (floatsisf2): Ditto.
11677         (floatdidf2): Ditto.
11678         (floatdidf2_fpr): Ditto.
11679         (floatunsdidf2): Ditto.
11680         (floatdisf2): Ditto.
11681         (floatdisf2_fcfids): Ditto.
11682         (floatdisf2_internal1): Ditto.
11683         (fixuns_truncsfsi2): Delete, merge into common pattern for both
11684         SF/DF.  Add power7 support.
11685         (fix_truncsfsi2): Ditto.
11686         (fixuns_truncdfsi2): Ditto.
11687         (fixuns_truncdfdi2): Ditto.
11688         (fix_truncdfsi2): Ditto.
11689         (fix_truncdfsi2_internal): Ditto.
11690         (fix_truncdfsi2_internal_gfxopt): Ditto.
11691         (fix_truncdfsi2_mfpgpr): Ditto.
11692         (fctiwz): Ditto.
11693         (btruncdf2): Ditto.
11694         (btruncdf2_fpr): Ditto.
11695         (btructsf2): Ditto.
11696         (ceildf2): Ditto.
11697         (ceildf2_fpr): Ditto.
11698         (ceilsf2): Ditto.
11699         (floordf2): Ditto.
11700         (floordf2_fpr): Ditto.
11701         (floorsf2): Ditto.
11702         (rounddf2): Ditto.
11703         (rounddf2_fpr): Ditto.
11704         (roundsf2): Ditto.
11705         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
11706         (fix_trunc<mode>di2): Ditto.
11707         (fixuns_trunc<mode>si2): Ditto.
11708         (fixuns_trunc<mode>di2): Ditto.
11709         (fctiwz_<mode>): Ditto.
11710         (btrunc<mode>2): Ditto.
11711         (btrunc<mode>2_fpr): Ditto.
11712         (ceil<mode>2): Ditto.
11713         (ceil<mode>2_fpr): Ditto.
11714         (floor<mode>2): Ditto.
11715         (float<mode>2_fpr): Ditto.
11716         (round<mode>2): Ditto.
11717         (round<mode>2_fpr): Ditto.
11718         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
11719         (fixuns_trunc<mode>si2_stfiwx): Ditto.
11720         (fix_truncdfsi2_internal): Ditto.
11721         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
11722         converted value on stack, loaded into GPR, and then stored into
11723         the final destination.
11724         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
11725         FCTIDZ.
11726         (lrint<mode>di2): New insn, provide the lrint builtin functions.
11727         (ftruncdf2): Delete, unused.
11728         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
11729
11730         * config/rs6000/vsx.md (toplevel): Update copyright year.
11731         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
11732         (VSr3): Ditto.
11733
11734 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
11735             Jeremie Salvucci  <jeremie.salvucci@free.fr>
11736
11737         * gengtype.c (output_type_enum): Test the right union member.
11738
11739 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
11740
11741         PR target/41484
11742         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
11743         operands for operand 1.
11744         (sse4_1_extendv4qiv4si2): Ditto.
11745         (sse4_1_extendv2qiv2di2): Ditto.
11746         (sse4_1_extendv4hiv4si2): Ditto.
11747         (sse4_1_extendv2hiv2di2): Ditto.
11748         (sse4_1_extendv2siv2di2): Ditto.
11749         (sse4_1_zero_extendv8qiv8hi2): Ditto.
11750         (sse4_1_zero_extendv4qiv4si2): Ditto.
11751         (sse4_1_zero_extendv2qiv2di2): Ditto.
11752         (sse4_1_zero_extendv4hiv4si2): Ditto.
11753         (sse4_1_zero_extendv2hiv2di2): Ditto.
11754         (sse4_1_zero_extendv2siv2di2): Ditto.
11755         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
11756         (*sse4_1_extendv4qiv4si2): Ditto.
11757         (*sse4_1_extendv2qiv2di2): Ditto.
11758         (*sse4_1_extendv4hiv4si2): Ditto.
11759         (*sse4_1_extendv2hiv2di2): Ditto.
11760         (*sse4_1_extendv2siv2di2): Ditto.
11761         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
11762         (*sse4_1_zero_extendv4qiv4si2): Ditto.
11763         (*sse4_1_zero_extendv2qiv2di2): Ditto.
11764         (*sse4_1_zero_extendv4hiv4si2): Ditto.
11765         (*sse4_1_zero_extendv2hiv2di2): Ditto.
11766         (*sse4_1_zero_extendv2siv2di2): Ditto.
11767
11768 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11769
11770         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
11771         (mips_function_arg): Delete.
11772         (mips_function_arg_boundary): Take a const_tree.
11773         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
11774         (mips_arg_info): Likewise.
11775         (mips_setup_incoming_varargs): Call mips_function_arg_advance
11776         instead of FUNCTION_ARG_ADVANCE.
11777         (mips_function_arg_advance): Adjust prototype.  Make static.
11778         (mips_function_arg): Likewise.
11779         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11780         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
11781
11782 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11783
11784         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11785         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
11786         (function_arg): Delete.
11787         (function_arg_boundary): Take a const_tree.
11788         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
11789         (rs6000_spe_function_arg): Likewise.
11790         (rs6000_parm_start): Likewise.
11791         (rs6000_arg_size): Likewise.
11792         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
11793         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
11794         (rs6000_mixed_function_arg): Likewise.
11795         (function_arg): Rename to...
11796         (rs6000_function_arg): ...this.
11797         (function_arg_advance): Rename to...
11798         (rs6000_function_arg_advance_1): ...this
11799         (rs6000_function_arg_advance): New function.  Call it.
11800         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
11801         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
11802         (rs6000_function_value): Likewise.
11803         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11804
11805 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11806
11807         * config/arm/arm.md (enabled): Test the value of arch_enabled
11808         rather than just using it.
11809
11810 2010-08-27  Olivier Hainque  <hainque@adacore.com>
11811             Eric Botcazou  <ebotcazou@adacore.com>
11812
11813         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
11814         cover all the possible offsets from this base.
11815         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
11816
11817 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
11818
11819         PR tree-optimization/44485
11820         * calls.c (flags_from_decl_or_type): For const or pure
11821         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
11822         together with ECF_CONST resp. ECF_PURE.
11823         * builtins.c (expand_builtin): Use flags_from_decl_or_type
11824         instead of querying flags directly.
11825         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
11826         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
11827
11828 2010-08-26  Richard Guenther  <rguenther@suse.de>
11829
11830         PR tree-optimization/45255
11831         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
11832         and externals are also invariant.
11833
11834 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11835
11836         PR rtl-optimization/44858
11837         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
11838         newi2pat, make sure they don't affect newpat.
11839
11840         PR rtl-optimization/45400
11841         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
11842         SUBREG_REG if both modes are of MODE_INT class.
11843
11844 2010-08-25  Julian Brown  <julian@codesourcery.com>
11845
11846         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
11847         * config/arm/arm.md (generic_sched): No for Cortex-A5.
11848         (generic_vfp): Likewise.
11849         (cortex-a5.md): Include.
11850         * config/arm/cortex-a5.md: New.
11851
11852 2010-08-25  Richard Guenther  <rguenther@suse.de>
11853
11854         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
11855         * gimple.c (gimple_get_alias_set): Remove special handling
11856         for pointers.
11857
11858 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11859
11860         PR middle-end/45355
11861         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
11862         dead_or_set_p when computing i0_feeds_i2_n.
11863
11864         * combine.c (find_split_point): Undo canonicalization of multiply-add
11865         to (minus x (mult)) when it seems likely that this will increase the
11866         chances of a split.
11867
11868 2010-08-25  Richard Guenther  <rguenther@suse.de>
11869
11870         PR lto/44562
11871         * lto-streamer.c (lto_record_common_node): Do not mess with
11872         TYPE_CANONICAL when not in lto.
11873         * gimple.c (gimple_register_type): Likewise.
11874
11875 2010-08-25  Richard Guenther  <rguenther@suse.de>
11876
11877         PR tree-optimization/45316
11878         * tree-ssa-pre.c (eliminate): Properly clean EH info.
11879
11880 2010-08-25  Richard Guenther  <rguenther@suse.de>
11881
11882         PR tree-optimization/45393
11883         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
11884         and clean EH info.  Avoid SSA update.
11885         (execute_cse_sincos): Cleanup the CFG if it has changed.
11886
11887 2010-08-25  Richard Guenther  <rguenther@suse.de>
11888
11889         PR middle-end/45379
11890         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
11891         TARGET_MEM_REF in alignment computation.
11892
11893 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11894
11895         PR tree-optimization/45059
11896         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
11897         type conversions from newop{1,2}.  Assert t is a comparison and
11898         newop{1,2} after the stripping are gimple vals.
11899
11900 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
11901
11902         * config/arm/iterators.md (VU, SE, V_widen_l): New.
11903         (V_unpack, US): New.
11904         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
11905         (vec_unpack<US>_lo_<mode>): Likewise.
11906         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
11907         (neon_vec_unpack<US>_lo_<mode>): Likewise.
11908         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
11909         (vec_widen_<US>mult_hi_<mode>): Likewise.
11910         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
11911         (neon_vec_<US>mult_hi_<mode>"): Likewise.
11912         (neon_unpack<US>_<mode>): Widening move intermediate step for
11913         vectorizing without -mvectorize-with-neon-quad.
11914         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
11915         for vectorizing without -mvectorize-with-neon-quad.
11916         * config/arm/predicates.md (vect_par_constant_high): Check for
11917         high-half lanes of a vector.
11918         (vect_par_constant_low): Check for low-half lanes of a vector.
11919
11920 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11921
11922         * tree-if-conv.c (struct ifc_dr): New.
11923         (IFC_DR): New.
11924         (DR_WRITTEN_AT_LEAST_ONCE): New.
11925         (DR_RW_UNCONDITIONALLY): New.
11926         (memref_read_or_written_unconditionally): Use the cached values
11927         when possible.
11928         (write_memref_written_at_least_once): Same.
11929         (if_convertible_loop_p): Initialize and free DR->aux fields.
11930
11931 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11932
11933         * gimple.c (gimple_could_trap_p_1): Not static anymore.
11934         Pass an extra bool parameter include_mem.
11935         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
11936         (gimple_assign_rhs_could_trap_p): Same.
11937         * gimple.h (gimple_could_trap_p_1): Declared.
11938         * tree-data-ref.h (same_data_refs_base_objects): New.
11939         (same_data_refs): New.
11940         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
11941         (write_memrefs_written_at_least_once): New.
11942         (ifcvt_memrefs_wont_trap): New.
11943         (operations_could_trap): New.
11944         (ifcvt_could_trap_p): New.
11945         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
11946         Gets a vector of data refs.
11947         (if_convertible_stmt_p): Same.
11948         (if_convertible_loop_p_1): New.
11949         (if_convertible_loop_p): Call if_convertible_loop_p_1.
11950
11951 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
11952
11953         * common.opt (ftree-loop-if-convert-stores): New flag.
11954         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
11955         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
11956         the created statement before GSI.
11957         (if_convertible_phi_p): Allow virtual phi nodes when
11958         flag_loop_if_convert_stores is set.
11959         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
11960         Do not handle types that do not match is_gimple_reg_type.
11961         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
11962         when flag_loop_if_convert_stores is set, as LHS can contain
11963         memory refs.
11964         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
11965         to if_convertible_gimple_assign_stmt_p.
11966         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
11967         (replace_phi_with_cond_gimple_assign_stmt): Renamed
11968         predicate_scalar_phi.  Do not handle virtual phi nodes.
11969         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
11970         Call predicate_scalar_phi.
11971         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
11972         just after the labels for flag_loop_if_convert_stores, otherwise
11973         insert the predicate in the end of the BB.
11974         (predicate_mem_writes): New.
11975         (combine_blocks): Call predicate_all_scalar_phis.  When
11976         flag_loop_if_convert_stores is set, call predicate_mem_writes.
11977         (tree_if_conversion): Call mark_sym_for_renaming when
11978         flag_loop_if_convert_stores is set.
11979         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
11980         flag_loop_if_convert_stores is set.
11981
11982 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
11983
11984         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
11985         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
11986         (pa_function_value): Make static.
11987         (override_options): Rename to...
11988         (pa_option_override): ...this. Make static.
11989         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
11990         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
11991         TARGET_OPTION_OVERRIDE): Define.
11992         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
11993         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
11994         Remove.
11995         * config/pa/pa-protos.h (override_options): Remove.
11996
11997 2010-08-24  Richard Guenther  <rguenther@suse.de>
11998
11999         PR middle-end/45379
12000         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
12001         if addr->index is NULL or zero.
12002         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
12003         TARGET_MEM_REF more properly.
12004         (indirect_ref_may_alias_decl_p): Likewise.
12005         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
12006         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
12007
12008 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
12009
12010         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
12011         (m32c_override_options): Rename to...
12012         (m32c_option_override): ...this. Make static.
12013         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
12014         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
12015         Remove.
12016         * config/m32c/m32c-protos.h (m32c_override_options,
12017         m32c_function_value_regno_p): Remove.
12018
12019 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12020
12021         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
12022         Fix a typo in a previous commit.
12023
12024 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
12025
12026         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
12027         Pre-initialize innerloop_iters to one.
12028
12029 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12030
12031         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
12032         existing static function global.
12033
12034         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
12035         is changed to global.
12036
12037         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
12038         may_be_nonaddressable_p on base, and don't collect this reference
12039         if the address of the base could not be taken.
12040
12041 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12042
12043         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
12044         enable the compiler to autovectorize mathmetical functions for
12045         power7 using the Mathematical Acceleration Subsystem library.
12046
12047         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
12048         handle which vector math library we have.
12049         (rs6000_override_options): Add -mveclibabi=mass support.
12050         (rs6000_builtin_vectorized_libmass): New function to handle auto
12051         vectorizing math functions that are in the MASS library.
12052         (rs6000_builtin_vectorized_function): Call it.
12053
12054         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
12055         -mveclibabi=mass.
12056
12057 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12058
12059         PR boehm-gc/34544
12060         * gthr-posix.h (__gthread_active_init): Delete.
12061         (__gthread_active_p): Do activity check here.
12062         Don't include errno.h on hppa-hpux.  Update comment.
12063         * gthr-posix95.h (__gthread_active_init): Delete.
12064         (__gthread_active_p): Do activity check here.
12065         Don't include errno.h on hppa-hpux.  Update comment.
12066         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
12067         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
12068         add -lpthread when -mt or -pthread is specified.
12069         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
12070         (LINK_GCC_C_SEQUENCE_SPEC): Define.
12071         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
12072         (stublib.c, pthread_default_stacksize_np-stub.o,
12073         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
12074         $(T)libgcc_stub.a): Add methods.
12075         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
12076         (stublib.c, pthread_default_stacksize_np-stub.o,
12077         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
12078         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12079         pthread_mutex_unlock): New stubs.
12080
12081 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
12082
12083         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
12084         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
12085         options.
12086         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
12087         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
12088         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
12089         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
12090         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
12091         "-l".
12092         * cppspec.c: Include opts.h.
12093         (lang_specific_driver): Use cl_decoded_option structures.
12094         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
12095         * doc/tm.texi: Regenerate.
12096         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
12097         (driver_handle_option): Allow driver options needing no special
12098         processing.
12099         (process_command): Decode options before call to
12100         lang_specific_driver.  Pass decoded options to
12101         lang_specific_driver.
12102         * gcc.h (lang_specific_driver): Update prototype.
12103         * gccspec.c: Include opts.h.
12104         (lang_specific_driver): Use cl_decoded_option structures.
12105         * opts-common.c (option_ok_for_language, generate_option,
12106         generate_option_input_file): New.
12107         (decode_cmdline_option): Use option_ok_for_language.
12108         (decode_cmdline_options_to_array): Use generate_option_input_file.
12109         (handle_generated_option): Use generate_option.
12110         * opts.h (generate_option, generate_option_input_file): Declare.
12111
12112 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
12113
12114         * config/mips/mips.c (mips_override_options): Rename to...
12115         (mips_option_override): ...this. Make static.
12116         (TARGET_OPTION_OVERRIDE): Define.
12117         (mips_in_small_data_p): Update comment.
12118         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
12119         (FIXED_REGISTERS): Update comment.
12120         * config/mips/mips-protos.h (mips_override_options): Remove.
12121
12122 2010-08-21  Olivier Hainque  <hainque@adacore.com>
12123
12124         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
12125
12126 2010-08-21  Olivier Hainque  <hainque@adacore.com>
12127
12128         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
12129         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
12130
12131 2010-08-20  Jan Hubicka  <jh@suse.cz>
12132
12133         * tree-pass.h (pass_ipa_cdtor_merge): New function.
12134         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
12135         heap allocated.
12136         (record_cdtor_fn): Move to ipa.c; do not test for
12137         have_ctors_dtors.
12138         (build_cdtor): Move to ipa.c; add code avoiding construction
12139         when target have ctors/dtors and there is only one ctor/dtor at given
12140         priority.
12141         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
12142         sort; reverse order of constructors.
12143         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
12144         (cgraph_finalize_function): Do not call record_cdtor_fn.
12145         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
12146         (cgraph_build_static_cdtor): Move to ipa.c.
12147         * ipa.c: Include target.h and tree-iterator.h.
12148         (cgraph_build_static_cdtor, static_ctors, static_dtors,
12149         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
12150         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
12151         pass_ipa_cdtor_merge): New.
12152         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
12153         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
12154         bounds access.
12155
12156 2010-08-20  Jan Hubicka  <jh@suse.cz>
12157
12158         PR c++/45307
12159         PR c++/17736
12160         * cgraph.h (cgraph_only_called_directly_p,
12161         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
12162         static cdtors.
12163         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
12164         are not needed.
12165         (cgraph_finalize_function): Static cdtors are reachable.
12166         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
12167
12168 2010-08-20  Jan Hubicka  <jh@suse.cz>
12169
12170         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
12171         flag_wpa.
12172         * lto-streamer-out.c (lto_output): Likewise.
12173         * passes.c (ipa_write_optimization_summaries): Initialize statement
12174         uids.
12175
12176 2010-08-20  Olivier Hainque  <hainque@adacore.com>
12177
12178         * tree.h (alias_diag_flags): New enum.
12179         (alias_pair): Add an 'emitted_diags' field.
12180         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
12181         (assemble_alias): Initialize emitted_diags of new pairs.
12182
12183 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
12184
12185         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
12186         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12187         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12188         (STACK_CHECK_PROTECT): Define.
12189         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
12190         (output_probe_stack_range): Likewise.
12191         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
12192         builtin stack checking is enabled.
12193         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
12194         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
12195         (probe_stack_range): New insn.
12196
12197 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
12198
12199         PR target/45336
12200         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
12201         short first.
12202
12203         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
12204         char first.
12205
12206 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12207
12208         PR target/45336
12209         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
12210         to cover zero extension into 64-bit register.
12211         (*sse2_pextrw): Likewise.
12212         (*sse4_1_pextrd_zext): New insn.
12213
12214 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
12215
12216         revert r163410, partially revert r163267.
12217         * config/rs6000/darwin.h (LIB_SPEC): Remove.
12218         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
12219         Darwin versions.
12220
12221 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12222
12223         PR middle-end/44974
12224         * builtins.c (expand_builtin): Don't optimize away
12225         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
12226
12227 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
12228
12229         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
12230         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
12231         alternative 1 of operand 2.
12232
12233 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12234             Paolo Bonzini  <bonzini@gnu.org>
12235
12236         * simplify-rtx.c (simplify_unary_operation_1): Optimize
12237         (sign_extend (zero_extend (...)) and
12238         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
12239
12240 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12241
12242         PR rtl-optimization/45353
12243         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
12244         after bb_note is a BARRIER.
12245
12246 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
12247
12248         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
12249         linking libgcc.a.
12250
12251 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12252             Michael Matz  <matz@suse.de>
12253
12254         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
12255
12256 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12257
12258         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
12259         (ggc_mark_roots): ...here.
12260
12261 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12262
12263         * vec.h (FOR_EACH_VEC_ELT): Define.
12264         * c-decl.c: Use it.
12265         * cfgloop.c: Likewise.
12266         * cfgloopmanip.c: Likewise.
12267         * cgraph.c: Likewise.
12268         * cgraphunit.c: Likewise.
12269         * combine.c: Likewise.
12270         * config/bfin/bfin.c: Likewise.
12271         * config/mips/mips.c: Likewise.
12272         * config/rs6000/rs6000.c: Likewise.
12273         * dbxout.c: Likewise.
12274         * df-scan.c: Likewise.
12275         * dominance.c: Likewise.
12276         * dse.c: Likewise.
12277         * dwarf2out.c: Likewise.
12278         * except.c: Likewise.
12279         * expr.c: Likewise.
12280         * function.c: Likewise.
12281         * gcse.c: Likewise.
12282         * genattr.c: Likewise.
12283         * ggc-common.c: Likewise.
12284         * gimplify.c: Likewise.
12285         * graphite-blocking.c: Likewise.
12286         * graphite-clast-to-gimple.c: Likewise.
12287         * graphite-dependences.c: Likewise.
12288         * graphite-interchange.c: Likewise.
12289         * graphite-poly.c: Likewise.
12290         * graphite-scop-detection.c: Likewise.
12291         * graphite-sese-to-poly.c: Likewise.
12292         * graphite.c: Likewise.
12293         * haifa-sched.c: Likewise.
12294         * ifcvt.c: Likewise.
12295         * implicit-zee.c: Likewise.
12296         * ipa-prop.c: Likewise.
12297         * ipa-struct-reorg.c: Likewise.
12298         * ipa.c: Likewise.
12299         * ira-build.c: Likewise.
12300         * ira-color.c: Likewise.
12301         * ira-emit.c: Likewise.
12302         * lambda-code.c: Likewise.
12303         * loop-invariant.c: Likewise.
12304         * loop-unroll.c: Likewise.
12305         * lower-subreg.c: Likewise.
12306         * lto-cgraph.c: Likewise.
12307         * lto-opts.c: Likewise.
12308         * lto-streamer-in.c: Likewise.
12309         * lto-streamer-out.c: Likewise.
12310         * lto-streamer.c: Likewise.
12311         * lto-symtab.c: Likewise.
12312         * matrix-reorg.c: Likewise.
12313         * opts.c: Likewise.
12314         * predict.c: Likewise.
12315         * print-tree.c: Likewise.
12316         * sdbout.c: Likewise.
12317         * sel-sched-dump.c: Likewise.
12318         * sel-sched-ir.c: Likewise.
12319         * sel-sched.c: Likewise.
12320         * sese.c: Likewise.
12321         * stor-layout.c: Likewise.
12322         * tree-cfg.c: Likewise.
12323         * tree-cfgcleanup.c: Likewise.
12324         * tree-chrec.c: Likewise.
12325         * tree-data-ref.c: Likewise.
12326         * tree-emutls.c: Likewise.
12327         * tree-inline.c: Likewise.
12328         * tree-into-ssa.c: Likewise.
12329         * tree-loop-distribution.c: Likewise.
12330         * tree-loop-linear.c: Likewise.
12331         * tree-mudflap.c: Likewise.
12332         * tree-outof-ssa.c: Likewise.
12333         * tree-parloops.c: Likewise.
12334         * tree-predcom.c: Likewise.
12335         * tree-pretty-print.c: Likewise.
12336         * tree-scalar-evolution.c: Likewise.
12337         * tree-ssa-live.c: Likewise.
12338         * tree-ssa-loop-im.c: Likewise.
12339         * tree-ssa-loop-ivcanon.c: Likewise.
12340         * tree-ssa-loop-ivopts.c: Likewise.
12341         * tree-ssa-loop-manip.c: Likewise.
12342         * tree-ssa-loop-niter.c: Likewise.
12343         * tree-ssa-loop-prefetch.c: Likewise.
12344         * tree-ssa-phiprop.c: Likewise.
12345         * tree-ssa-pre.c: Likewise.
12346         * tree-ssa-reassoc.c: Likewise.
12347         * tree-ssa-sccvn.c: Likewise.
12348         * tree-ssa-structalias.c: Likewise.
12349         * tree-ssa.c: Likewise.
12350         * tree-vect-data-refs.c: Likewise.
12351         * tree-vect-loop-manip.c: Likewise.
12352         * tree-vect-loop.c: Likewise.
12353         * tree-vect-patterns.c: Likewise.
12354         * tree-vect-slp.c: Likewise.
12355         * tree-vect-stmts.c: Likewise.
12356         * tree-vrp.c: Likewise.
12357         * tree.c: Likewise.
12358         * value-prof.c: Likewise.
12359         * var-tracking.c: Likewise.
12360         * varasm.c: Likewise.
12361         * vmsdbgout.c: Likewise.
12362
12363 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
12364             Richard Guenther  <richard.guenther@gmail.com>
12365
12366         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
12367         copy the src value and return a copy.
12368         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
12369         (C++ Volatiles): Adjust to describe C++ semantics only.
12370
12371 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
12372
12373         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
12374         be zero or nonzero.
12375         * doc/tm.texi: Regenerate.
12376         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
12377         * df-scan.c (df_get_exit_block_use_set), reginfo.c
12378         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
12379         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
12380         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
12381         to 1.
12382
12383 2010-08-20  Olivier Hainque  <hainque@adacore.com>
12384
12385         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
12386         an extra nop past a sibling call at the very end.
12387
12388 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12389
12390         PR bootstrap/45350
12391         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
12392         a comment.
12393
12394 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12395
12396         * target.def (function_arg, function_incoming_arg): Remove const
12397         qualifier on CUMULATIVE_ARGS parameter.
12398         * targhooks.h (default_function_arg, default_function_incoming_arg):
12399         Likewise.
12400         * targhooks.c (default_function_arg, default_function_incoming_arg):
12401         Likewise.
12402         * config/i386/i386.c (ix86_function_arg): Likewise.
12403
12404 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
12405
12406         PR target/45336
12407         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
12408         SIGN_EXTENDs or ZERO_EXTENDs.
12409
12410 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12411
12412         PR target/42172
12413         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
12414         Take its cost into account if nonnull.
12415         (insn_a_feeds_b): New static function.
12416         (combine_instructions): Look for four-insn combinations.
12417         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
12418         them into account when computing all_adjacent and looking for other
12419         uses.
12420         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
12421         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
12422         (try_combine): New arg I0.  Handle four-insn combinations.
12423         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
12424         like ELIM_I1.
12425
12426 2010-08-19  Jason Merrill  <jason@redhat.com>
12427
12428         PR c++/45307
12429         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
12430         if ctor is empty.
12431         (gimplify_modify_expr_rhs): Adjust.
12432
12433 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12434
12435         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
12436         bitmap_bit_p.
12437         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
12438         * dominance.c (iterate_fix_dominators): Likewise.
12439         * dse.c (set_usage_bits): Likewise.
12440         (set_position_unneeded, record_store): Likewise.
12441         * gimple-fold.c (get_maxval_strlen): Likewise.
12442         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
12443         * ipa-inline.c (update_caller_keys): Likewise.
12444         * ipa-split.c (verify_non_ssa_vars): Likewise.
12445         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
12446         (close_type_exposed_parameter, close_type_full_escape): Likewise.
12447         (close_addressof_down): Likewise.
12448         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
12449         (setup_allocno_left_conflicts_size): Likewise.
12450         (ira_reassign_conflict_allocnos): Likewise.
12451         (ira_reassign_pseudos): Likewise.
12452         * ira-emit.c (change_loop): Likewise.
12453         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
12454         * lto-streamer-out.c (write_symbol): Likewise.
12455         * predict.c (expr_expected_value_1): Likewise.
12456         * regstat.c (regstat_bb_compute_ri): Likewise.
12457         * sel-sched.c (create_block_for_bookkeeping): Likewise.
12458         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
12459         * stmt.c (expand_case): Likewise.
12460         * tree-eh.c (emit_eh_dispatch): Likewise.
12461         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
12462         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
12463         Likewise.
12464         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
12465         (rdg_build_components): Likewise.
12466         * tree-object-size.c (collect_object_sizes_for): Likewise.
12467         * tree-sra.c (convert_callers): Likewise.
12468         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
12469         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
12470         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
12471
12472 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12473
12474         * config/i386/i386.md (*lea_1): Use P mode iterator.
12475         (lea add splitter): Also handle DImode operands.
12476         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
12477         predicate.  Do not use ix86_lea_for_add_ok.
12478         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
12479         (lea ashift splitter): Also handle DImode operands.
12480         (DImode lea ashift splitter): Remove splitter.
12481
12482 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12483
12484         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
12485         ix86_binary_operator_ok.
12486
12487 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
12488
12489         PR rtl-optimization/44691
12490         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
12491         is not a register.
12492
12493 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12494
12495         PR target/45070
12496         * config/arm/arm.c (arm_output_epilogue): Ensure that return
12497          value of size 1-3 is handled correctly.
12498
12499 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12500
12501         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
12502         type for the conditional has wide enough range.
12503
12504 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12505
12506         PR target/45327
12507         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
12508         ix86_binary_operator_ok.
12509
12510 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12511
12512         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
12513         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
12514         code to output insn mnemonic.  Fix comment.
12515         (*addsi_1_zext): Add r-r-0 alternative 1.
12516         <TYPE_LEA>: Split insn to lea.
12517         <default>: Handle alternative 1.
12518         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
12519         multi-level if_then_else RTX to set "type" attribute.
12520         <default>: Handle alternative 2.
12521         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
12522         Use cond RTX instead of multi-level if_then_else RTX to set
12523         "type" attribute.
12524         <default>: Handle alternatives 2 and 4.
12525         (lea splitters): Update calls to ix86_lea_for_add_ok.
12526
12527         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
12528         argument.
12529         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
12530
12531 2010-08-18  Richard Guenther  <rguenther@suse.de>
12532
12533         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
12534         use operand helpers.
12535
12536 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
12537
12538         PR middle-end/45292
12539         * optabs.c (expand_bool_compare_and_swap): Expand pending
12540         pops before trying the optab.
12541
12542 2010-08-18  Yao Qi  <yao@codesourcery.com>
12543
12544         PR target/45094
12545         * config/arm/arm.c (output_move_double): Fix typo generating
12546         instructions ('ldr'->'str').
12547
12548 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
12549
12550         PR rtl-optimization/42575
12551         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
12552         live ranges.
12553
12554 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12555
12556         * config/arm/arm-protos.h (arm_expand_sync): New.
12557         (arm_output_memory_barrier, arm_output_sync_insn): New.
12558         (arm_sync_loop_insns): New.
12559         * config/arm/arm.c (FL_ARCH7): New.
12560         (FL_FOR_ARCH7): Include FL_ARCH7.
12561         (arm_arch7): New.
12562         (arm_print_operand): Support %C markup.
12563         (arm_legitimize_sync_memory): New.
12564         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
12565         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
12566         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
12567         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
12568         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
12569         (arm_process_output_sync_insn, arm_output_sync_insn): New.
12570         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
12571         * config/arm/arm.h (struct arm_sync_generator): New.
12572         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
12573         (TARGET_HAVE_MEMORY_BARRIER): New.
12574         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
12575         * config/arm/arm.md: Include sync.md.
12576         (UNSPEC_MEMORY_BARRIER): New.
12577         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
12578         (VUNSPEC_SYNC_OP):New.
12579         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
12580         (sync_result, sync_memory, sync_required_value): New attributes.
12581         (sync_new_value, sync_t1, sync_t2): Likewise.
12582         (sync_release_barrier, sync_op): Likewise.
12583         (length): Add logic to length attribute defintion to call
12584         arm_sync_loop_insns when appropriate.
12585         * config/arm/sync.md: New file.
12586
12587 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12588
12589         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
12590         ENABLE_TREE_CHECKING.
12591         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
12592         and GCC >= 4.3.
12593
12594 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
12595
12596         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
12597         or optimizing for size, always avoid lea if possible.
12598
12599         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
12600
12601 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
12602
12603         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
12604         Dunmmy function with NULL return unless the target is
12605         OSX >= 10.6 (Darwin10).
12606
12607 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
12608
12609         * gcc.c (spec_function): Add remove-outfile.
12610         (remove_outfile_spec_function): New function.
12611         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
12612         * invoke.texi (replace-outfile): Document.
12613
12614 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
12615
12616         PR target/45296
12617         * reginfo.c (globalize_reg): Reject stack registers.
12618
12619 2010-08-17  Richard Guenther  <rguenther@suse.de>
12620
12621         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
12622         list of conditional equivalences.
12623         (free_all_edge_infos): Adjust.
12624         (record_equivalences_from_incoming_edge): Likewise.
12625         (record_cond): Likewise.
12626         (build_and_record_new_cond): Likewise.
12627         (record_conditions): Likewise.
12628         (dom_opt_leave_block): Likewise.
12629
12630 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
12631
12632         * doc/invoke.texi (ms-extension): Add documentation.
12633
12634 2010-08-17  Richard Guenther  <rguenther@suse.de>
12635
12636         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
12637
12638 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
12639
12640         PR c/40563
12641         * c-decl.c (diagnose_uninitialized_cst_member): New function.
12642         (finish_decl): Use it to issue a -Wc++-compat warning about
12643         uninitialized const field in struct or union.
12644
12645         (finish_struct): Use strip_array_types.
12646
12647 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12648
12649         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
12650         functions.
12651         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
12652         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
12653         call block_nreverse here.
12654         (blocks_nreverse): Rename decl temporary to block.
12655
12656 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
12657
12658         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
12659         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
12660         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
12661         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
12662         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
12663         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
12664         thumb2_iorsi3): Delete.
12665         (orsi_notsi_si): No longer a named pattern.
12666         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
12667         * config/arm/predicates.md (shift_amount_operand): New.
12668         (mult_operator): New.
12669         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
12670         attr enabled): New.
12671         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
12672         arch matches t2.
12673         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
12674         (not_shiftsi_compare0): Likewise, renamed from
12675         arm_notsi_shiftsi_compare0.
12676         (not_shiftsi_compare0_scratch): Likweise, renamed from
12677         arm_notsi_shiftsi_compare0_scratch.
12678         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
12679         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
12680         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
12681         so that the register alternative is disabled when the shift_operator
12682         is MULT.  Use "M" as the constraint for constants.
12683         (arith_shiftsi splitter): Enable for TARGET_32BIT.
12684         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
12685         constraint for constants.
12686         (arith_shiftsi_compare0_scratch): Likewise.
12687         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
12688         Handle Thumb2 alternative.
12689
12690 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12691
12692         * doc/options.texi (NoDriverArg): Document.
12693         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
12694         -MDX and -MMDX.
12695         * opt-functions.awk (switch_flags): Handle NoDriverArg.
12696         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
12697         marking for CL_NO_DRIVER_ARG options when in the driver.
12698         * opts.h (CL_NO_DRIVER_ARG): Define.
12699         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12700         CL_COMMON): Update values.
12701
12702 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12703
12704         * common.opt: Add driver options.
12705         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
12706         * doc/options.texi (Driver, RejectDriver): Document.
12707         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
12708         print_prog_name, print_multi_directory, print_sysroot,
12709         print_multi_os_directory, print_multi_lib,
12710         print_sysroot_headers_suffix, report_times, combine_flag,
12711         use_pipes, wrapper_string): Remove.
12712         (save_switch, driver_unknown_option_callback,
12713         driver_wrong_lang_callback, driver_post_handling_callback,
12714         driver_handle_option): New.
12715         (spec_lang, last_language_n_infiles): Make file-scope static
12716         instead of local to process_command.
12717         (process_command): Use decode_cmdline_options_to_array and
12718         read_cmdline_option for option processing.  Compute have_c in
12719         prescan of decoded options.
12720         * opt-functions.awk (switch_flags): Handle Driver and
12721         RejectDriver.
12722         (var_type, var_type_struct): Handle Separate options as generating
12723         const char * variables.
12724         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
12725         CL_TARGET to be passed by caller if required.
12726         (decode_cmdline_options_to_array): Update comment.
12727         * opts.c (complain_wrong_lang): Handle options only valid for the
12728         driver.
12729         (decode_options): Update call to decode_cmdline_options_to_array.
12730         (print_filtered_help): Ignore driver-only options.
12731         (print_specific_help): Ignore CL_DRIVER.
12732         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
12733         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
12734         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
12735         Update values.
12736
12737 2010-08-16  Richard Guenther  <rguenther@suse.de>
12738
12739         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12740         TARGET_MEM_REF a bit.
12741         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
12742         (create_mem_ref_raw): Always create TMR_OFFSET, store the
12743         alias pointer type via it.
12744         (copy_mem_ref_info): Adjust.
12745         (maybe_fold_tmr): Likewise.
12746         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
12747         (reference_alias_ptr_type): Likewise.
12748         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
12749         adjust documentation of TMR_OFFSET operand.
12750         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
12751         use the alias pointer type.
12752         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
12753         initialize mem attrs but the TMR itself.
12754         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
12755         similar to MEM_REF.
12756         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
12757         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
12758         (unshare_and_remove_ssa_names): Likewise.
12759         (copy_ref_info): Adjust.
12760         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
12761         TARGET_MEM_REF case.
12762         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
12763         at TMR_ORIGINAL.
12764         * tree.h (TMR_ORIGINAL): Remove.
12765         * gimple.c (get_base_address): For TARGET_MEM_REF with a
12766         symbol return that.
12767         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
12768         with a symbol.
12769         (get_addr_base_and_unit_offset): Likewise.
12770         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
12771         TARGET_MEM_REFs.
12772         (indirect_ref_may_alias_decl_p): Likewise.
12773         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
12774
12775 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
12776
12777         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
12778         with GCC version 4.6, the default setting (when not optimizing
12779         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
12780         been changed to -fomit-frame-pointer.
12781
12782 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
12783
12784         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
12785         Darwin10.  Do not link libgcc.a for Darwin >= 9.
12786
12787 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
12788
12789         * doc/invoke.texi (Warning Options): Fix terminology and markup
12790         in the description of how unknown warning options are handled.
12791
12792 2010-08-15  Ira Rosen  <irar@il.ibm.com>
12793
12794         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
12795         in basic blocks.
12796         (vect_supportable_dr_alignment): Check alignment for basic blocks.
12797         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
12798         data references.
12799         (vect_bb_vectorization_profitable_p): New function.
12800         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
12801         check if it's worthwhile to vectorize the basic block.
12802
12803 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
12804
12805         * reload.h (register_move_cost, memory_move_secondary_cost,
12806         secondary_reload_class): Adjust prototype.
12807         * rtl.h (reg_class_subset_p): Adjust prototype.
12808         * reload.c (secondary_reload_class): Change arguments type from
12809         enum reg_class to reg_class_t. Change result type to reg_class_t.
12810         * reginfo.c (register_move_cost, reg_class_subset_p): Change
12811         arguments type from enum reg_class to reg_class_t.
12812         (memory_move_secondary_cost): Change arguments type from
12813         enum reg_class to reg_class_t. Change type of saved_flags to
12814         reg_class_t.
12815
12816         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12817         Remove macros.
12818         (mips_cost): Remove.
12819         (struct mips_rtx_cost_data): Moved to mips.c.
12820         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
12821         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
12822         (mips_cost): Make static.
12823         (mips_canonicalize_move_class): Change argument type to reg_class_t.
12824         Change result type to reg_class_t.
12825         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
12826         type from enum reg_class to reg_class_t.
12827         (mips_register_move_cost): Make static. Change arguments
12828         type from enum reg_class to reg_class_t.
12829         (mips_memory_move_cost): New function.
12830         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12831
12832 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
12833
12834         PR rtl-optimization/43358
12835         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
12836         of a single hard register, using simplify_subreg_regno to decide
12837         what that register should be.
12838
12839 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
12840
12841         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
12842         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
12843         (loongson_pmull<V_suffix>): Rename to...
12844         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
12845
12846 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
12847
12848         * configure.ac: Enable -fomit-frame-pointer on darwin
12849         which support dwarf2.
12850         * config/i386/i386.c (override_options): Same.
12851
12852 2010-08-13  Jie Zhang  <jie@codesourcery.com>
12853
12854         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
12855
12856 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
12857
12858         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
12859         -MMD.
12860
12861 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
12862
12863         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
12864         up dot_prod pattern searching if a stmt is outside the loop.
12865
12866 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
12867             Uros Bizjak  <ubizjak@gmail.com>
12868
12869         * config.gcc: Handle --enable-frame-pointer.
12870
12871         * configure.ac: Add --enable-frame-pointer.
12872         * configure: Regenerated.
12873
12874         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
12875         (override_options): If not configured with --enable-frame-pointer,
12876         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
12877         optimizing for size), -fasynchronous-unwind-tables and
12878         -maccumulate-outgoing-args by default.
12879
12880 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12881
12882         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
12883
12884         PR middle-end/45262
12885         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
12886         -a overflows.  Normalize the range.
12887
12888 2010-08-12  Richard Guenther  <rguenther@suse.de>
12889
12890         PR tree-optimization/45232
12891         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
12892         for types with undefined overflow.
12893         (reassociate_bb): Allow re-associating of bit and min/max
12894         operations for types with undefined overflow.
12895         * tree-ssa-forwprop.c (associate_plusminus): New function.
12896         (tree_ssa_forward_propagate_single_use_vars): Call it.
12897
12898 2010-08-12  Richard Guenther  <rguenther@suse.de>
12899
12900         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
12901         * tree-ssa-alias.c (get_ptr_info): Move ...
12902         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
12903         align and misalign fields conservatively.
12904         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
12905         derive alignment information.
12906         (evaluate_stmt): Derive alignment information from memory
12907         allocation functions.
12908         * tree.h (get_pointer_alignment): Make unsigned.
12909         * builtins.c (get_object_alignment): Use alignment information we
12910         have computed for pointers.
12911         (get_pointer_alignment): Likewise.  Make conservative, return
12912         and unsigned value.
12913         (expand_builtin_strlen): Adjust.
12914         (expand_builtin_memcmp): Likewise.
12915         (expand_builtin_strcmp): Likewise.
12916         (expand_builtin_strncmp): Likewise.
12917         (get_builtin_sync_mem): Use at least mode alignment.
12918         (fold_builtin_memset): Adjust.
12919         (fold_builtin_memory_op): Likewise.
12920         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
12921         information also dump pointer alignment knowledge.
12922         (dump_gimple_stmt): Likewise.
12923
12924 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
12925
12926         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
12927         (EMPTY_FIELD_BOUNDARY): Remove.
12928         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
12929
12930 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
12931
12932         PR debug/45259
12933         * caller-save.c (save_call_clobbered_regs): Only swap notes with
12934         DEBUG_INSNs if n_regs_saved.
12935
12936 2010-08-12  Wei Guozhi  <carrot@google.com>
12937
12938         PR target/44999
12939         * config/arm/arm.md (andsi3): Change to zero extension if possible.
12940         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
12941
12942 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
12943
12944         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
12945
12946         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
12947
12948 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12949
12950         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
12951         the case removed in the previous patch, when the only phi argument
12952         is defined in the same loop as the phi node itself.  Handle it
12953         separately from the invariant case by both propagating it outside
12954         the region and replacing the phi node with an assign.
12955
12956 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
12957
12958         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
12959         constant phi nodes with one argument are is_gimple_min_invariant
12960         and SSA_NAME_IS_DEFAULT_DEF.
12961
12962 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12963
12964         * graphite-cloog-util.c (oppose_constraint):
12965         Extend loop counter's value range (CLOOG_ORG).
12966         (cloog_matrix_to_ppl_constraint): Same.
12967         (new_Constraint_System_from_Cloog_matrix): Same.
12968         * graphite-cloog-compat.h (matrix_num_type): New.
12969
12970 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12971
12972         * graphite.c (graphite_initialize): Do not initialize
12973         CLooG and initialize the Parma Polyhedra Library
12974         manually when using CLOOG_ORG.
12975         (graphite_finalize): Do not finalize CLooG and finalize
12976         the Parma Polyhedra Library manually when using CLOOG_ORG.
12977         * graphite-cloog-compat.h (cloog_initialize): Hide function
12978         when using CLOOG_ORG.
12979         (cloog_finalize): Same.
12980
12981 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12982
12983         * graphite-clast-to-gimple.c (free_scattering): Change
12984         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
12985         (CLOOG_ORG).
12986         (build_cloog_prog): Same.
12987         * graphite-cloog-compat.h (cloog_domain): Removed.
12988         (cloog_scattering): New.
12989         (cloog_set_domain): Removed.
12990         (cloog_set_scattering): New.
12991         (cloog_next_domain): Removed.
12992         (cloog_next_scattering): New.
12993         (cloog_set_next_domain): Removed.
12994         (cloog_set_next_scattering): New.
12995         (CloogScatteringList): New.
12996         (CloogScattering): New.
12997         (cloog_scattering_free): New.
12998         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
12999         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
13000         New.
13001
13002 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13003
13004         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
13005         CloogState.
13006         (set_cloog_options): Same.
13007         (print_clast_stmt): Same.
13008         (scop_to_clast): Same.
13009         (print_generated_program): Same.
13010         (gloog): Same.
13011         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
13012         (scop_to_clast): Extend with CloogState.
13013         * graphite-cloog-util.c: Include graphite-cloog-compat.h
13014         (new_Cloog_Domain_from_ppl_Polyhedron):
13015         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
13016         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
13017         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13018         * graphite-cloog-util.h (build_cloog_prog): Same.
13019         * graphite-cloog-copat.h (build_cloog_prog): New.
13020         (CloogState): New.
13021         (cloog_state_malloc): New.
13022         (cloog_state_free): New.
13023         (cloog_loop_malloc): New.
13024         (cloog_options_malloc): New.
13025         (cloog_statement_alloc): New.
13026         (cloog_domain_from_cloog_matrix): New.
13027         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
13028         (new_Cloog_Domain_from_ppl_Polyhedron): New.
13029
13030 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13031
13032         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
13033         type of NAME now depends on used CLooG version.
13034         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
13035         (gcc_type_for_clast_expr): Same.
13036         (print_clast_stmt): Replace pprint with clast_pprint.
13037         * graphite-cloog-compat.h: Provide compatibility macros for
13038         CLooG Legacy.
13039         (clast_name_p): New.
13040         (clast_expr_term): New.
13041         (clast_expr_red): New.
13042         (clast_expr_bin): New.
13043         (clast_pprint): New.
13044
13045 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13046
13047         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
13048         compatible to newer CLooG releases (CLOOG_ORG).
13049         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
13050         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
13051         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
13052         (build_cloog_prog) : New.
13053         (cloog_program_extract_scalars): New.
13054         (cloog_program_scatter): New.
13055
13056 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13057
13058         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
13059         conditionally (CLOOG_ORG).
13060         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
13061         (cloog_statement_usr): New.
13062         (cloog_domain): Same.
13063         (cloog_set_domain): Same.
13064         (cloog_next_domain): Same.
13065         (cloog_set_next_domain): Same.
13066         (cloog_program_nb_scattdims): Same.
13067         (cloog_program_set_nb_scattdims): Same.
13068         (cloog_program_names): Same.
13069         (cloog_program_set_names): Same.
13070         (cloog_program_set_context): Same.
13071         (cloog_program_set_loop): Same.
13072         (cloog_program_blocklist): Same.
13073         (cloog_program_set_blocklist): Same.
13074         (cloog_program_scaldims): Same.
13075         (cloog_program_set_scaldims): Same.
13076         (cloog_names_nb_parameters): Same.
13077         (cloog_names_set_nb_parameters): Same.
13078         (cloog_names_parameters): Same.
13079         (cloog_names_set_parameters): Same.
13080         (cloog_names_set_nb_iterators): Same.
13081         (cloog_names_set_iterators): Same.
13082         (cloog_names_set_nb_scattering): Same.
13083         (cloog_names_set_scattering): Same.
13084         (cloog_statement_set_usr): Same.
13085         (cloog_loop_set_next): Same.
13086         (cloog_loop_set_domain): Same.
13087         (cloog_loop_set_block): Same.
13088         (cloog_block_list_next): Same.
13089         (cloog_block_list_set_next):
13090         (cloog_block_list_set_block): Same.
13091
13092 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13093
13094         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
13095         a bool.
13096         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
13097         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
13098         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
13099         when something has been changed.
13100         (rewrite_commutative_reductions_out_of_ssa): Same.
13101
13102 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13103
13104         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
13105         handle the case when def is in the sese region.
13106         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
13107         for invariant expressions.
13108         (rewrite_cross_bb_phi_deps): Removed.
13109         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
13110         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
13111         rewrite_cross_bb_phi_deps.
13112
13113 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13114
13115         * graphite-sese-to-poly.c
13116         (rewrite_commutative_reductions_out_of_ssa_loop): Call
13117         scev_analyzable_p only on is_gimple_reg
13118
13119 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13120
13121         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
13122         (rewrite_close_phi_out_of_ssa): Propagate constant values or
13123         parametric expressions outside the scop region.
13124         (rewrite_cross_bb_scalar_deps): Same.
13125         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
13126
13127 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13128
13129         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
13130         SSA_NAME_DEF_STMT only on SSA_NAMEs.
13131
13132 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13133
13134         * tree-scalar-evolution.c (instantiate_scev_name): Do not
13135         instantiate default definitions.
13136
13137 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
13138             Sebastian Pop  <sebastian.pop@amd.com>
13139
13140         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
13141         (loop_exits_from_bb_p): New.
13142         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
13143         (loop_exits_from_bb_p): Declared.
13144         * graphite-scop-detection.c (scopdet_basic_block_info): Call
13145         loop_exits_to_bb_p.
13146
13147 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13148
13149         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
13150         extra parameter for the region.  Call scev_analyzable_p.
13151         (rewrite_reductions_out_of_ssa): Update call to
13152         rewrite_close_phi_out_of_ssa.
13153         (rewrite_cross_bb_phi_deps): Same.
13154         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
13155         parameter for the region.  Call scev_analyzable_p.
13156         (rewrite_commutative_reductions_out_of_ssa): Update call to
13157         rewrite_commutative_reductions_out_of_ssa_loop.
13158
13159 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13160
13161         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
13162
13163 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13164
13165         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
13166         SSA scalar phi nodes that can be scev_analyzable_p.
13167
13168 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13169
13170         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
13171         handle SSA_NAME_IS_DEFAULT_DEF.
13172
13173 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13174
13175         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
13176
13177 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13178
13179         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
13180         case non close-phi nodes with one argument.
13181
13182 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13183
13184         * sese.h (scev_analyzable_p): Scevs could be expressions without
13185         chrecs and still be scev_analyzable_p.
13186
13187 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13188
13189         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13190
13191 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13192
13193         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
13194         * cfgloop.h (struct loop): Remove single_iv field.
13195         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
13196         (scop_canonicalize_loops): Removed.
13197         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
13198         over all the loop phi nodes in loop->header.
13199         (build_poly_scop): Remove use of scop_canonicalize_loops.
13200
13201 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13202
13203         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
13204         handle GIMPLE_CALL.
13205
13206 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13207
13208         * tree-chrec.c (chrec_apply): Should only apply to the specified
13209         variable.  Also handle multivariate chains of recurrences that
13210         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
13211
13212 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13213
13214         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
13215         (debug_clast_name_indexes_1): Removed.
13216         (debug_clast_name_indexes): Removed.
13217         (pbb_to_depth_to_oldiv): Removed.
13218         (build_iv_mapping): Replace the use of rename_map with iv_map.
13219         (translate_clast_user): Remove uses of rename_map.  Allocate and
13220         free iv_map.
13221         (translate_clast_for_loop): Remove uses of rename_map.
13222         (translate_clast_for): Same.
13223         (translate_clast_guard): Same.
13224         (translate_clast): Same.
13225         (gloog): Same.
13226         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
13227         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
13228         * sese.c (set_rename): Now static.
13229         (rename_variables_in_stmt): Removed.
13230         (rename_uses): New.
13231         (is_parameter): Removed.
13232         (is_iv): Removed.
13233         (expand_scalar_variables_call): Removed.
13234         (expand_scalar_variables_ssa_name): Removed.
13235         (expand_scalar_variables_expr): Removed.
13236         (expand_scalar_variables_stmt): Removed.
13237         (expand_scalar_variables): Removed.
13238         (rename_variables): Removed.
13239         (remove_condition): Removed.
13240         (get_true_edge_from_guard_bb): Removed.
13241         (get_false_edge_from_guard_bb): Removed.
13242         (struct igp): Removed.
13243         (default_before_guard): Removed.
13244         (convert_for_phi_arg): Removed.
13245         (add_guard_exit_phis): Removed.
13246         (insert_guard_phis): Removed.
13247         (graphite_copy_stmts_from_block): Now also uses iv_map and a
13248         region.  Do not copy conditions.  Do not copy induction variables.
13249         Call rename_uses.
13250         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
13251         the translated statement.  Use the iv_map for the induction
13252         variable renaming.
13253         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
13254         (set_rename): Removed declaration.
13255         (scev_analyzable_p): ...here.
13256         * tree-chrec.c (chrec_apply_map): New.
13257         * tree-chrec.h (chrec_apply_map): Declared.
13258
13259 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13260
13261         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
13262         insert_loop_close_phis.
13263         * sese.c (name_defined_in_loop_p): Removed.
13264         (expr_defined_in_loop_p): Removed.
13265         (alive_after_loop): Removed.
13266         (close_phi_not_yet_inserted_p): Removed.
13267         (struct alep): Removed.
13268         (add_loop_exit_phis): Removed.
13269         (insert_loop_close_phis): Removed.
13270
13271 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13272
13273         * graphite-cloog-util.c
13274         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
13275         * graphite-poly.c
13276         (psct_scattering_dim_for_loop_depth): Same.
13277
13278 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13279
13280         * graphite-cloog-util.h: Added cloog.h.
13281         * graphite-blocking.c: Removed cloog.h.
13282         * graphite-dependences.c: Same.
13283         * graphite-interchange.c: Same.
13284         * graphite-poly.c: Same.
13285         * graphite-ppl.c: Same.
13286         * graphite-scop-detection.c: Same.
13287         * graphite-sese-to-poly.c:
13288         Removed cloog.h.
13289         Removed graphite-clast-to-gimple.h.
13290         (check_poly_representation): Removed (unused).
13291         * graphite-sese-to-poly.h
13292         (check_poly_representation): Removed (unused).
13293
13294 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13295
13296         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
13297         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
13298         (graphite-cloog-util.o): New.
13299         (graphite-ppl.o): Added graphite-cloog-util.h.
13300         * graphite-clast-to-gimple.c:
13301         Added graphite-cloog-util.h to include statements.
13302         * graphite-cloog-util.c: New.
13303         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
13304         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13305         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13306         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13307         (insert_constraint_into_matrix): Same.
13308         (ppl_Constrain_System_number_of_constraints): Same.
13309         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13310         (oppose_constraint): Same.
13311         (cloog_matrix_to_ppl_constraint): Same.
13312         (new_Constraint_System_from_Cloog_Matrix): Same.
13313         * graphite-cloog-util.h: New.
13314         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
13315         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13316         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13317         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13318         (insert_constraint_into_matrix): Same.
13319         * graphite-ppl.c:
13320         Added graphite-cloog-util.h to include statements.
13321         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
13322         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13323         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13324         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13325         (insert_constraint_into_matrix): Same.
13326         (ppl_Constrain_System_number_of_constraints): Same.
13327         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13328         (oppose_constraint): Same.
13329         (cloog_matrix_to_ppl_constraint): Same.
13330         (new_Constraint_System_from_Cloog_Matrix): Same.
13331         * graphite-ppl.h:
13332         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
13333         graphite-cloog-util.h.
13334         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13335         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13336         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13337         (insert_constraint_into_matrix): Same.
13338
13339 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13340
13341         * graphite-clast-to-gimple.c
13342         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
13343         (precision_for_interval): Same.
13344         (gcc_type_for_interval): Same.
13345         (compute_type_for_level): Same.
13346         * graphite-interchange.c
13347         (lst_interchange_profitable_p): Same.
13348         * graphite-poly.c
13349         (psct_scattering_dim_for_loop_depth): Same.
13350         * graphite-ppl.c
13351         (ppl_max_for_le_pointset): Same.
13352         (ppl_min_for_le_pointset): Same.
13353
13354 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13355
13356         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
13357         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
13358
13359 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13360
13361         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
13362         rewrite_close_phi_out_of_ssa.
13363
13364 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13365
13366         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
13367
13368 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13369
13370         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
13371         rename_map.
13372         * sese.c (debug_rename_map): Same.
13373         (get_rename): Same.
13374         (set_rename): Same.
13375         (rename_variables_in_stmt): Same.
13376         (expand_scalar_variables_call): Same.
13377         (expand_scalar_variables_ssa_name): Same.
13378         (expand_scalar_variables_expr): Same.
13379         (expand_scalar_variables_stmt): Same.
13380         (expand_scalar_variables): Same.
13381         (rename_variables): Same.
13382         (graphite_copy_stmts_from_block): Same.
13383         (copy_bb_and_scalar_dependences): Same.
13384
13385 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13386
13387         * graphite-clast-to-gimple.c (copy_renames): Removed.
13388         (translate_clast_for): Do not call copy_renames.
13389         (translate_clast_guard): Same.
13390
13391 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13392
13393         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
13394         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
13395         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
13396         before rewrite_cross_bb_scalar_deps.
13397
13398 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13399
13400         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
13401         Early return in when flag_associative_math is not set.
13402
13403 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13404
13405         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
13406         of SSA copies on edges except for loop->latch.
13407
13408 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13409
13410         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
13411         Split out of rewrite_reductions_out_of_ssa.
13412         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
13413         Declared.
13414         * graphite.c (graphite_transform_loops): Call it.
13415
13416 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13417
13418         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
13419
13420 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
13421
13422         * dbgcnt.def (graphite_scop): New counter.
13423         * graphite.c: Include dbgcnt.h.
13424         (graphite_transform_loops): Use new counter to limit transformations.
13425         * Makefile.in (graphite.o): Depend on DBGCNT_H.
13426
13427 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13428
13429         * passes.c (init_optimization_passes): Add pass_graphite.
13430         Schedule a pass_copy_prop before pass_graphite_transforms.
13431         * timevar.def (TV_GRAPHITE): Declared.
13432         * tree-pass.h (pass_graphite): Declared.
13433         * tree-ssa-loop.c (pass_graphite): New.
13434
13435 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13436
13437         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
13438         Remove calls to rename_nb_iterations and rename_sese_parameters.
13439         * graphite-clast-to-gimple.h (gloog): Update declaration.
13440         * graphite.c (graphite_transform_loops): Update call to gloog.
13441         * sese.c (rename_variables_in_expr): Removed.
13442         (rename_nb_iterations): Removed.
13443         (rename_sese_parameters): Removed.
13444         * sese.h (rename_nb_iterations): Removed.
13445         (rename_sese_parameters): Removed.
13446
13447 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13448
13449         * graphite-clast-to-gimple.c (gloog): Remove call to
13450         sese_adjust_liveout_phis.
13451         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
13452         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
13453         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
13454         rewrite_phi_out_of_ssa.
13455         * sese.c (get_vdef_before_sese): Removed.
13456         (sese_adjust_vphi): Removed.
13457         (sese_adjust_liveout_phis): Removed.
13458         * sese.h (sese_adjust_liveout_phis): Removed.
13459
13460 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13461
13462         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
13463         argument for the place after which to insert the out of SSA copy.
13464         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
13465         (rewrite_phi_out_of_ssa): Same.
13466         (rewrite_cross_bb_scalar_deps): Same.
13467         (insert_copyout): Removed.
13468         (insert_copyin): Removed.
13469         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
13470         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
13471         insert_copyin.
13472
13473 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13474
13475         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
13476         (rewrite_reductions_out_of_ssa): Same.
13477         (rewrite_commutative_reductions_out_of_ssa): Same.
13478         (build_poly_scop): Do not call these functions.
13479         * graphite-sese-to-poly.h (build_poly_scop): Declared.
13480         (rewrite_reductions_out_of_ssa): Declared.
13481         (rewrite_commutative_reductions_out_of_ssa): Declared.
13482         * graphite.c (graphite_transform_loops): Call on every scop
13483         rewrite_commutative_reductions_out_of_ssa before calling
13484         rewrite_reductions_out_of_ssa and build_scop_bbs.
13485
13486 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13487
13488         * graphite-dependences.c (dot_deps): Make system call to dotty run
13489         in background.
13490         (dot_deps_stmt): Same.
13491         * graphite-poly.c (dot_lst): Same.
13492
13493 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13494
13495         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
13496         phi_arg_in_outermost_loop.
13497         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
13498         (remove_invariant_phi): Same.
13499
13500 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
13501
13502         * target.def (output_addr_const_extra): New hook.
13503         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
13504         * doc/tm.texi: Regenerate.
13505         * targhooks.c (default_asm_output_addr_const_extra): New function.
13506         * targhooks.h (default_asm_output_addr_const_extra): Declare.
13507         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
13508         target hook.
13509
13510         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13511         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
13512         * config/i386/i386.h (output_addr_const_extra): Rename to...
13513         (i386_asm_output_addr_const_extra): ...this. Make static.
13514         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13515
13516 2010-08-11  Richard Henderson  <rth@redhat.com>
13517
13518         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
13519
13520 2010-08-11  Nick Clifton  <nickc@redhat.com>
13521
13522         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
13523         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
13524         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
13525         stormy16-lib2-cmpsi.c.
13526
13527         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
13528         -O2.
13529
13530 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
13531
13532         * opts.h (struct cl_option_handler_func): Make handler take
13533         cl_decoded_option structure as parameter, not individual elements.
13534         (struct cl_option_handlers): Make callbacks take cl_decoded_option
13535         structure as parameter, not individual elements.
13536         (handle_option): Take cl_decoded_option structure as parameter,
13537         not individual elements.
13538         (handle_generated_option): Declare.
13539         * opts-common.c (handle_option): Take cl_decoded_option structure
13540         as parameter, not individual elements.  Update calls to callback
13541         and handler functions.
13542         (handle_generated_option): New.
13543         (read_cmdline_option): Update calls to callback functions and
13544         handle_option.
13545         * opts.c (common_handle_option, complain_wrong_lang,
13546         unknown_option_callback, post_handling_callback,
13547         lang_handle_option, target_handle_option): Take cl_decoded_option
13548         structure as parameter, not individual elements.
13549         (lang_handle_option, target_handle_option, common_handle_option):
13550         Assert option has at most one argument.
13551         (enable_warning_as_error): Call handle_generated_option instead of
13552         handle_option.  Do not pass -Werror argument as argument of
13553         generated option.
13554
13555 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13556
13557         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13558         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13559         (SUBWORD_BOOL_CAS): Likewise.
13560         (SUBWORD_SYNC_OP): Likewise.
13561         (SUBWORD_TEST_AND_SET): Likewise.
13562         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13563         (SUBWORD_SYNC_OP): Likewise.
13564         (OP_AND_FETCH_WORD): Likewise.
13565
13566 2010-08-10  Xinliang David Li  <davidxl@google.com>
13567
13568         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
13569         compute max/min offset in address.
13570
13571 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
13572
13573         * ira-live.c: Include sbitmap.h.
13574         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
13575         Compress live ranges even more.
13576
13577 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13578
13579         * coverage.c (ctr_labels): Delete.
13580
13581 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13582
13583         PR bootstrap/45177
13584         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
13585         test here from arm_gen_load_multiple_1.
13586         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
13587         multiple_operation_profitable_p.
13588
13589 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13590
13591         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
13592         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
13593
13594 2010-08-10  Richard Henderson  <rth@redhat.com>
13595
13596         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
13597         after saving registers.  Assert that SSE registers are only saved
13598         with a sufficiently aligned frame.
13599         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
13600         remove stack_realign_fp handling.
13601         (ix86_expand_prologue): Save int registers before stack_realign_fp,
13602         and do not mark the stack alignment as frame related.
13603         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
13604
13605         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
13606         saves when re-aligning the stack.
13607
13608 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13609
13610         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
13611         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
13612         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
13613
13614 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13615
13616         * dwarf2out.c (struct die_struct): Move die_tag to the end.
13617
13618 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
13619
13620         * config/arm/iterators.md: New file.
13621         * config/arm/arm.md: Include iterators.md.
13622         (QHSI): Move to new file.
13623         (LTUGEU, cnb, optab, ior_xor): Likewise.
13624         * config/arm/iwmmxt.md (VMMX): Move to new file.
13625         (VSHFT, MMX_char): Likewise.
13626         * config/arm/neon.md (VD): Move to new file.
13627         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
13628         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
13629         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
13630         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
13631         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
13632         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
13633         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
13634         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
13635         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
13636         (Is_d_reg, V_mode_nunits): Likewise.
13637         * config/arm/vec-common.md (VALL): Move to new file.
13638         (VALLW, VINT, VINTW): Likewise.
13639
13640 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13641
13642         PR middle-end/45182
13643         * combine.c (make_compound_operation): Don't try to convert
13644         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
13645
13646 2010-08-10  Richard Guenther  <rguenther@suse.de>
13647
13648         * tree.h (get_object_alignment): Adjust prototype.
13649         * builtins.c (get_object_alignment): Return unsigned int,
13650         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
13651         and TARGET_MEM_REF properly.
13652         (get_pointer_alignment): Adjust.
13653         * emit-rtl.c (get_mem_align_offset): Adjust comment.
13654         (set_mem_attributes_minus_bitpos): Adjust.
13655         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
13656
13657 2010-08-10  Richard Guenther  <rguenther@suse.de>
13658
13659         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
13660         (copy_prop_visit_assignment): Simplify.
13661         (copy_prop_visit_stmt): Also visit assignments from
13662         constants.
13663         (copy_prop_visit_phi_node): Use operand_equal_p.
13664
13665 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13666
13667         * ipa-split.c (find_split_points): Free stack.
13668
13669 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13670
13671         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
13672         * tree.c (tree_node_kind): Delete corresponding entries.
13673
13674 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
13675
13676         * alias.c (may_alias_p): Remove unused ret.
13677
13678 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
13679
13680         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
13681         alias_sets_conflict_p.
13682         (walk_mems_1): Moved from alias.c.
13683         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
13684         in alias.c.
13685         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
13686         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
13687         * alias.c (walk_mems_2): Moved to ddg.c.
13688         (walk_mems_1): Ditto.
13689         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
13690         to ddg.c.
13691         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
13692         disambiguation.
13693         *(may_alias_p): New function to check whether two memory expression
13694         may alias or not. Currently used in buidling inter-iteration memory
13695         dependence.
13696         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
13697         (insn_alias_sets_conflict_p): Removed
13698         *rtl.h (may_alias_p): New function prototype.
13699
13700 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13701
13702         * tree.c (nreverse): Assert that we don't have a BLOCK.
13703
13704 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13705
13706         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
13707         * config/arm/arm.c (arm_get_pcs_model): Likewise.
13708         * config/avr/avr.c (init_cumulative_args): Likewise.
13709         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
13710         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
13711         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
13712         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
13713         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
13714         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13715         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
13716         * dwarf2out.c (gen_subprogram_die): Likewise.
13717         * function.c (allocate_struct_function): Likewise.
13718         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
13719         (deserves_ellipsis): Delete.
13720
13721 2010-08-09  Richard Guenther  <rguenther@suse.de>
13722
13723         * tree-ssa-copy.c (cached_last_copy_of): Remove.
13724         (valueize_val): New function.
13725         (get_last_copy_of): Remove.
13726         (set_copy_of_val): Simplify.
13727         (dump_copy_of): Likewise.
13728         (copy_prop_visit_cond_stmt): Use valueize_val.
13729         (copy_prop_visit_phi_node): Properly handle unvisited names.
13730         Drop code managing copy-of chains.
13731         (init_copy_prop): Adjust.
13732         (fini_copy_prop): Likewise.
13733         (execute_copy_prop): Remove obsolete comment.
13734
13735 2010-08-09  Richard Guenther  <rguenther@suse.de>
13736
13737         PR middle-end/44632
13738         * function.c (gimplify_parameters): Do not clear addressable
13739         bit of the original parameter.
13740
13741 2010-08-09  Richard Guenther  <rguenther@suse.de>
13742
13743         PR middle-end/45212
13744         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
13745         alignment from MEM_REF offset only if we took it from the
13746         base object.
13747
13748 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
13749
13750         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
13751
13752 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13753
13754         * c-tree.h (build_arg_info): Declare.
13755         * c-decl.c (build_arg_info): Define.
13756         (get_parm_info): Call it.  Delete initialization code.
13757         * c-parser.c (c_parser_parms_declarator): Likewise.
13758         (c_parser_parms_list_declaractor): Likewise.
13759
13760 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13761
13762         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
13763         (struct c_arg_info): Change type of tags field.
13764         * c-decl.c (grokdeclarator): Update for changed type of tags field.
13765         (get_parm_info): Likewise.
13766         (store_parm_decls_newstyle): Likewise.
13767
13768 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13769
13770         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
13771         (branch_island_list): Delete.
13772         (branch_islands): Declare.
13773         (add_compiler_branch_island): Adjust for branch_islands instead of
13774         branch_island_list.
13775         (macho_branch_islands): Likewise.
13776         (no_previous_def): Likewise.
13777         (get_prev_label): Likewise.
13778
13779 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13780
13781         PR boehm-gc/34544
13782         * gthr-posix.h (__gthread_start): Delete.
13783         (__gthread_active_init): Use pthread_default_stacksize_np instead of
13784         pthread_create to determine if hpux pthreads are active.
13785         * gthr-posix95.h (__gthread_start): Delete.
13786         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
13787
13788 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
13789
13790         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
13791         _WIN64 not expanded.
13792
13793 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
13794             H.J. Lu  <hongjiu.lu@intel.com>
13795
13796         PR target/45213
13797         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
13798         to output 32bit SFmode immediate as 8 byte sign extended value.
13799
13800 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13801
13802         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13803         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13804         (SUBWORD_BOOL_CAS): Likewise.
13805         (SUBWORD_SYNC_OP): Likewise.
13806         (SUBWORD_TEST_AND_SET): Likewise.
13807         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13808         (SUBWORD_SYNC_OP): Likewise.
13809         (OP_AND_FETCH_WORD): Likewise.
13810
13811 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13812
13813         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
13814         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
13815         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
13816         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
13817         generic part.
13818         (cortex_a9_sched_adjust_cost): New function.
13819         (xscale_sched_adjust_cost): New function.
13820         * config/arm/arm-protos.h (struct tune_params): New field
13821         sched_adjust_cost.
13822         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
13823
13824 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
13825
13826         PR target/44942
13827         * config/sparc/sparc.c (function_arg_advance): Always take into account
13828         the padding, if any.
13829
13830 2010-08-06  Richard Guenther  <rguenther@suse.de>
13831
13832         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
13833         (dump_lattice_value): Dump it.
13834         (get_default_value): Adjust.
13835         (get_constant_value): Likewise.
13836         (set_value_varying): Likewise.
13837         (set_lattice_value): Make sure to not go up the lattice
13838         with bitwise constant values.
13839         (get_value_for_expr): Handle ADDR_EXPRs.
13840         (value_to_double_int): New function.
13841         (get_value_from_alignment): Likewise.
13842         (do_dbg_cnt): Adjust.
13843         (ccp_lattice_meet): Handle partially constant values.
13844         (bit_value_unop_1): New function.
13845         (bit_value_binop_1): Likewise.
13846         (bit_value_unop): Likewise.
13847         (bit_value_binop): Likewise.
13848         (evaluate_stmt): Track partially constant values if
13849         flag_tree_bit_ccp is set.
13850         (ccp_fold_stmt): Dump if we folded a predicate.
13851         (ccp_visit_stmt): Adjust.
13852         * common.opt (ftree-bit-ccp): New flag.
13853         * doc/invoke.texi (ftree-bit-ccp): Document.
13854         * opts.c (decode_options): Enable bit-CCP at -O1.
13855
13856 2010-08-06  Alan Modra  <amodra@gmail.com>
13857
13858         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
13859         and -mrelocatable-lib description.
13860
13861 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
13862
13863         From Martin Thuresson  <martint@google.com>
13864         * postreload.c (reload_cse_simplify_operands): Use
13865         SET_REGNO_RAW instead of SET_REGNO.
13866         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
13867         SET_REGNO.
13868         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
13869         instead of SET_REGNO.
13870         * rtl.h (SET_REGNO_RAW): New macro.
13871
13872 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
13873
13874         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
13875         computations.  Fix formatting issues.
13876         (num_sign_bit_copies1): Likewise.
13877         (canonicalize_condition): Likewise.
13878
13879 2010-08-05  Richard Henderson  <rth@redhat.com>
13880
13881         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
13882         (floor_log2): Use clz_hwi.
13883         (exact_log2): Use ctz_hwi.
13884         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
13885         * builtins.c (fold_builtin_bitop): Use them.
13886         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
13887         * combine.c (get_pos_from_mask): Use ctz_hwi.
13888         * double-int.c (double_int_ctz): Likewise.
13889         * explow.c (force_reg): Likewise.
13890         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
13891
13892 2010-08-05  Richard Henderson  <rth@redhat.com>
13893
13894         PR target/45189
13895         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
13896         the alignment constant is properly sign-extended.
13897
13898 2010-08-05  Richard Guenther  <rguenther@suse.de>
13899
13900         * expr.c (store_expr): Use emit_block_move only if both
13901         source and target are MEMs.  Use store_bit_field if only
13902         the target is a MEM.
13903
13904 2010-08-05  Richard Henderson  <rth@redhat.com>
13905
13906         PR debug/45188
13907         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
13908         (INCOMING_RETURN_ADDR_RTX): Likewise.
13909         (dwarf2out_do_frame): Remove conditional compilation.
13910         (dwarf2out_frame_init): Likewise.
13911
13912 2010-08-05  Nicolas Setton  <setton@adacore.com>
13913
13914         * gcov.c (flag_display_progress): New static variable.
13915         (main): Display progress info on standard output if requested.
13916         (options): Add -d/--display-progress.
13917         (print_usage): Print them.
13918         (process_args): Handle them.
13919         * doc/gcov.texi: Document them.
13920
13921 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13922
13923         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
13924         (ipcp_insert_stage): Redirect only edges not flagged with
13925         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
13926         discovered constants.
13927
13928 2010-08-05  Martin Jambor  <mjambor@suse.cz>
13929
13930         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
13931         (struct ipa_param_descriptor): New fields types and
13932         cannot_devirtualize.
13933         (ipa_param_cannot_devirtualize_p): New function.
13934         (ipa_param_types_vec_empty): Likewise.
13935         (ipa_make_edge_direct_to_target): Declare.
13936         * ipa-cp.c: Fixed first stage driver name in initial comment,
13937         described devirtualization there too.
13938         (ipcp_analyze_node): Call ipa_analyze_params_uses.
13939         (ipcp_print_all_lattices): Print devirtualization info.
13940         (ipa_set_param_cannot_devirtualize): New function.
13941         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
13942         lattice to BOTTOM.
13943         (ipcp_init_stage): Merged into...
13944         (ipcp_generate_summary): ...its caller.
13945         (ipcp_change_tops_to_bottom): Also process type lists.
13946         (ipcp_add_param_type): New function.
13947         (ipcp_copy_types): Likewise.
13948         (ipcp_propagate_types): Likewise.
13949         (ipcp_propagate_stage): Also propagate types.
13950         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
13951         Also return true if propagated types require it.
13952         (ipcp_update_callgraph): Dump redirection info.
13953         (ipcp_process_devirtualization_opportunities): New function.
13954         (ipcp_const_param_count): Include known type information.
13955         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
13956         on new node.  Fixed formatting.
13957         * ipa-prop.c (make_edge_direct_to_target): Renamed to
13958         ipa_make_edge_direct_to_target and changed all callers.  Made
13959         externally visible.
13960         (ipa_node_duplication_hook): Duplicate types vector.
13961         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
13962         redirect outgoing calls for which we can't get a decl from the
13963         statement.  Check that we can get a decl from the call statement.
13964         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13965         ipa_analyze_params_uses only when ipa-cp is disabled.
13966         * tree-inline.c (get_indirect_callee_fndecl): Removed.
13967         (expand_call_inline): Do not call get_indirect_callee_fndecl.
13968         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
13969         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
13970
13971 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13972
13973         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
13974         temporary. Emit move from temporary to accum, so REG_EQUAL note will
13975         be attached to this insn in correct mode.
13976
13977 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
13978
13979         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
13980         using REGNO of base_reg directly.
13981
13982 2010-08-05  Jie Zhang  <jie@codesourcery.com>
13983
13984         PR tree-optimization/45144
13985         * tree-sra.c (type_consists_of_records_p): Return false
13986         if the record contains bit-field.
13987
13988 2010-08-04  Richard Henderson  <rth@redhat.com>
13989
13990         * config/i386/i386.c (struct ix86_frame): Remove padding and
13991         to_allocate members.
13992         (ix86_compute_frame_layout): Don't store them.
13993         (ix86_can_use_return_insn_p): Use a more direct and more obviously
13994         correct condition for the position of the stack pointer.
13995         (ix86_expand_prologue): Compute remaining stack allocation based
13996         on the ultimate stack pointer offset.
13997         (ix86_expand_epilogue): Use more obvious expressions testing for
13998         the stack pointer already pointing to the saved registers.
13999
14000         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
14001         duplication deconstructing the frame pointer.  Simplify
14002         deallocation of the local stack frame.
14003
14004         * reg-notes.def (CFA_EXPRESSION): New.
14005         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
14006         (dwarf2out_frame_debug_cfa_expression): New.
14007         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
14008
14009         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
14010         * config/i386/i386.c (ix86_expand_prologue): Set it.
14011         (ix86_expand_epilogue): Clear it.
14012         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
14013         context, add REG_CFA_EXPRESSION notes.
14014
14015         * config/i386/i386.h (struct machine_frame_state): Rename from
14016         machine_cfa_state.  Add members tracking SP and FP regardless
14017         of the current CFA register.
14018         (ix86_cfa_state): Remove.
14019         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
14020         and sse_reg_save_offset members.
14021         (ix86_compute_frame_layout): Set them.
14022         (gen_push): Increment sp_offset too.
14023         (choose_baseaddr_len, choose_baseaddr): New.
14024         (ix86_emit_save_reg_using_mov): New.
14025         (ix86_emit_save_regs_using_mov): Use it.
14026         (ix86_emit_save_sse_regs_using_mov): Likewise.
14027         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
14028         compare vs the saved red_zone_offset.
14029         (pro_epilogue_adjust_stack): Adjust sp_offset.
14030         (ix86_adjust_stack_and_probe): Likewise.
14031         (ix86_expand_prologue): Set up, use, and validate the new
14032         frame_state_info members.  Use gen_frame_mem.
14033         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
14034         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
14035         new frame_state_info members.
14036         (ix86_emit_leave): Likewise.
14037         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
14038         out-of-range stack pointer offsets here.
14039         (ix86_emit_restore_sse_regs_using_mov): Likewise.
14040         (ix86_expand_epilogue): Use and validate the new frame_state_info
14041         members.  Break up and simplify the logic selecting the
14042         restore_regs_via_mov code path.  Ensure that there will be no
14043         out-of-range stack pointer offsets.
14044
14045         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
14046
14047         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
14048         argument name to reflect the expected tree; fix indentation.
14049         (ix86_asm_output_function_label): Output the entire 32-bit
14050         ms_hook here as bytes ...
14051         (ix86_expand_prologue): ... not here as insns.  Attach the
14052         unwind info for the ms_hook to a blockage insn.
14053         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
14054         (ix86_ms_bitfield_layout_p): Fix indentation.
14055         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
14056
14057         * config/i386/i386.c (ix86_using_red_zone): New.
14058         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
14059         ix86_expand_prologue, ix86_force_to_memory): Use it.
14060
14061         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
14062         saving the int registers.
14063
14064         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
14065         and DWARF2_UNWIND_INFO conditional compilation.
14066
14067 2010-08-04  Richard Henderson  <rth@redhat.com>
14068
14069         PR debug/45171
14070         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
14071         an is_naming_typedef_decl.
14072
14073 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
14074
14075         PR rtl-optimization/45162
14076         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
14077         * dce.c (word_dce_process_block): Likewise.
14078
14079 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
14080
14081         PR target/44583
14082         * config/ia64/constraints.md (Z): New.
14083         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
14084         (xfreg_or_signed_fp01_operand): New.
14085         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
14086         with fr_reg_or_signed_fp01_operand and constraint G with Z.
14087         (subsf3): Ditto.
14088         (*maddsf4): Ditto.
14089         (*msubsf4): Ditto.
14090         (adddf3): Ditto.
14091         (adddf3_trunc): Ditto.
14092         (subdf3): Ditto.
14093         (*subdf3_trunc): Ditto.
14094         (*madddf4): Ditto.
14095         (*madddf4_trunc): Ditto.
14096         (*msubdf4): Ditto.
14097         (*msubdf4_trunc): Ditto.
14098         (addxf3): Replace xfreg_or_fp01_operand with
14099         xfreg_or_signed_fp01_operand and constraint G with Z.
14100         (*addxf3_truncsf): Ditto.
14101         (*addxf3_truncdf): Ditto.
14102         (subxf3): Ditto.
14103         (*subxf3_truncsf): Ditto.
14104         (*subxf3_truncdf): Ditto.
14105         (*maddxf4): Ditto.
14106         (*maddxf4_truncsf): Ditto.
14107         (*maddxf4_truncdf): Ditto.
14108         (*msubxf4): Ditto.
14109         (*msubxf4_truncsf): Ditto.
14110         (*msubxf4_truncdf): Ditto.
14111
14112 2010-08-04  Richard Guenther  <rguenther@suse.de>
14113
14114         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
14115         if either alias-set is zero.
14116
14117 2010-08-04  Richard Guenther  <rguenther@suse.de>
14118
14119         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
14120         * tree-ssa-ccp.c: ... here.
14121         * tree-ssa-copy.c: ... and here.
14122         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
14123         value_range_t): Move ...
14124         * tree-vrp.c: ... here.
14125         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
14126         (substitute_and_fold): Adjust prototype.
14127         * tree-ssa-propagate.c (replace_uses_in): Adjust.
14128         (replace_phi_args_in): Likewise.
14129         (substitute_and_fold): Take callback to query lattice instead
14130         of pointer to lattice.  Replace SSA name defs with lattice
14131         values first.
14132         * tree-ssa-ccp.c (ccp_finalize): Adjust.
14133         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
14134         (get_value): New function.
14135         (fini_copy_prop): Adjust.
14136         * tree-vrp.c (vrp_finalize): Adjust.
14137
14138 2010-08-04  Richard Guenther  <rguenther@suse.de>
14139
14140         PR middle-end/45176
14141         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
14142         points-to set for original MEM_REF.
14143
14144 2010-08-04  Richard Guenther  <rguenther@suse.de>
14145
14146         * tree-ssa-ccp.c (get_constant_value): New function.
14147         (get_rhs_assign_op_for_ccp): Remove.
14148         (valueize_op): New function.
14149         (ccp_fold): Use get_constant_value and valueize_op.
14150         (fold_const_aggregate_ref): Likewise.
14151         (ccp_fold_stmt): Likewise.
14152         (visit_assignment): Simplify.
14153
14154 2010-08-04  Richard Guenther  <rguenther@suse.de>
14155
14156         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
14157         * double-int.h (double_int_ctz): Declare.
14158         * double-int.c (double_int_ctz): New function.
14159
14160 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
14161
14162         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
14163         Define.
14164         picochip_expand_movmemhi : Expand movmem pattern.
14165         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
14166         Declare.
14167         * config/picochip/picochip.md (movmemhi) : New pattern.
14168
14169 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
14170
14171         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
14172
14173 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
14174
14175         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
14176         NEG as operand of a MULT by merging it with the other operand.
14177         * combine.c (make_compound_operation): Use trunc_int_for_mode when
14178         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
14179         MULT.
14180         * config/arm/constraints.md (M): Examine only 32 bits of a
14181         HOST_WIDE_INT.
14182         * config/arm/predicates.md (power_of_two_operand): Likewise.
14183
14184 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14185
14186         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
14187         non-NOTE insns.
14188
14189 2010-08-03  Jan Hubicka  <jh@suse.cz>
14190
14191         * ipa-split.c (struct split_point): Add split_part_set_retval.
14192         (find_retval): Forward declare.
14193         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
14194         (consider_split): Compute current->split_part_set_retval.
14195         (visit_bb): Do not look into return value.
14196         (split_function): Handle !split_part_set_retval
14197
14198 2010-08-03  Martin Jambor  <mjambor@suse.cz>
14199
14200         * tree-sra.c (completely_scalarize_record): New parameter REF, create
14201         its own access->expr intead of using build_ref_for_offset.
14202
14203 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
14204
14205         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
14206         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
14207         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
14208         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
14209         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
14210         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
14211         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
14212         DEFAULT_SWITCH_TAKES_ARG.
14213         * config/rx/rx.opt (-patch=): Remove option.
14214         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
14215         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
14216         * doc/invoke.texi (RX Options): Remove -patch=.
14217         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
14218         (option_map): Remove --profile-blocks, --quiet and --silent.
14219
14220 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
14221
14222         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
14223         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
14224         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
14225         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
14226         Update calls to ix86_expand_compare and ix86_expand_branch.
14227         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
14228         ix86_expand_compare.
14229         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
14230         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
14231         Make static.
14232         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
14233         and ix86_compare_op1.  Update calls to ix86_expand_compare.
14234         (ix86_expand_int_movcc): Ditto.
14235         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
14236         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
14237         (ix86_expand_setcc): Ditto.
14238         (ix86_expand_compare): Remove prototype.
14239         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
14240         ix86_compare_op0 and ix86_compare_op1.  Update calls
14241         to ix86_expand_branch to directly pass operands[1] and operands[2].
14242         (cbranchxf4): Ditto.
14243         (cbranch<MODEF:mode>4): Ditto.
14244         (cbranchcc4): Ditto.
14245         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
14246         Update calls to ix86_expand_setcc to directly pass operands[2] and
14247         operands[3].
14248         (cstorexf4): Ditto.
14249         (cstore<MODEF:mode>4): Ditto.
14250         (cstorecc4): Ditto.
14251
14252 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14253
14254         PR target/45063
14255         * caller-save.c (save_call_clobbered_regs): Remove regs from
14256         hard_regs_saved when they are set.
14257
14258 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
14259
14260         PR target/41089
14261         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
14262         as volatile.
14263
14264 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
14265
14266         * common.opt (ftree-loop-distribute-patterns): New.
14267         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
14268         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
14269         at -O3.
14270         * tree-data-ref.c (stores_zero_from_loop): New.
14271         * tree-data-ref.h (stores_zero_from_loop): Declared.
14272         * tree-loop-distribution.c (tree_loop_distribution): Call
14273         stores_zero_from_loop.
14274         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
14275
14276 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14277
14278         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
14279         into account.
14280
14281         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
14282         * config/arm/arm.c (thumb1_code): New variable.
14283         (arm_override_options): Set it.
14284         (thumb1_final_prescan_insn): Keep track of condition code status.
14285         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
14286         jumps that depend on them.
14287         * config/arm/arm.h (thumb1_code): Declare variable.
14288         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
14289         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
14290         thumb1_cc_mode.
14291         (CC_STATUS_INIT): New macro.
14292         * config/arm/constraints.md (Pd): New constraint.
14293         * config/arm/predicates.md (noov_comparison_operator): New predicate.
14294         * config/arm/arm.md (is_thumb1): New define_attr.
14295         (conds): Set default to "clob" when generating Thumb1 code.
14296         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
14297         code are set.  Use two-operand assembly syntax.
14298         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
14299         pattern.
14300         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
14301         codes are set.  Use two-operand assembly syntax.
14302         (zero_extendhisi splitter): Remove constraints.
14303         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
14304         thumb1_movsf_insn): Set conds attribute as appropriate.
14305         (cbranchsi4_insn): Use condition code status from struct
14306         machine_function to determine whether the comparison can be eliminated.
14307         Discourage the alternative using high registers.
14308         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
14309         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
14310         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
14311         subsi3_cbranch): Delete.
14312         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
14313         one subtract and one cbranch insn.
14314
14315         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
14316         thumb2_movdf_soft_insn): Delete patterns.
14317         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
14318         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
14319         (pool_range, neg_pool_range): Use them to define defaults.
14320         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
14321         and allow for TARGET_32BIT.
14322
14323         PR target/40457
14324         * config/arm/arm.h (arm_regs_in_sequence): Declare.
14325         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
14326         load_multiple_sequence, store_multiple_sequence): Delete
14327         declarations.
14328         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
14329         declarations.
14330         * config/arm/ldmstm.md: New file.
14331         * config/arm/arm.c (arm_regs_in_sequence): New array.
14332         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
14333         CHECK_REGS.  All callers changed.
14334         If SAVED_ORDER is nonnull, copy the computed order into it.
14335         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
14336         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
14337         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
14338         If SAVED_ORDER is nonnull, copy the computed order into it.
14339         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
14340         like REGS.  Handle Thumb mode.
14341         (arm_gen_load_multiple_1): New function, broken out of
14342         arm_gen_load_multiple.
14343         (arm_gen_store_multiple_1): New function, broken out of
14344         arm_gen_store_multiple.
14345         (arm_gen_multiple_op): New function, with code from
14346         arm_gen_load_multiple and arm_gen_store_multiple moved here.
14347         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
14348         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
14349         changed.
14350         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
14351         * config/arm/predicates.md (commutative_binary_operator): New.
14352         (load_multiple_operation, store_multiple_operation): Handle more
14353         variants of these patterns with different starting offsets.  Handle
14354         Thumb-1.
14355         * config/arm/arm.md: Include "ldmstm.md".
14356         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
14357         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
14358         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
14359         peepholes): Delete.
14360         * config/arm/ldmstm.md: New file.
14361         * config/arm/arm-ldmstm.ml: New file.
14362
14363         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
14364         if statement which adds extra costs to frame-related expressions.
14365
14366 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14367
14368         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
14369
14370 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
14371
14372         PR target/45142
14373         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
14374         alternative 2.
14375         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
14376         split V4SI operands.
14377
14378 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
14379
14380         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14381         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
14382         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
14383         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
14384
14385 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
14386
14387         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
14388         LOCAL_INCLUDE_DIR.
14389
14390 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
14391
14392         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
14393         used in the call to optab_for_tree_code.  Fix the second
14394         is_widening_mult_p call.  Check that both unwidened operands
14395         have the same sign.
14396
14397 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
14398
14399         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
14400
14401 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
14402
14403         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14404
14405 2010-07-30  DJ Delorie  <dj@redhat.com>
14406
14407         * config/rx/predicates.md (rx_constshift_operand): New.
14408         * config/rx/rx.md (zs_cond): New.
14409         (cbranchsi4): Remove mode.
14410         (*cbranchsi4_<code>): Likewise.
14411         (*tstbranchsi4_<code>): New.
14412         (*tstbranchsi4r_<code>): New.
14413         (*tstbranchsi4m_eq): New.
14414         (*tstbranchsi4m_ne): New.
14415         (cbranchsf4): Remove mode.
14416         (*cbranchsf4_<code>): Likewise.
14417
14418 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
14419
14420         * rtlanal.c (simplify_subreg_regno): Don't treat
14421         HARD_FRAME_POINTER_REGNUM specially.
14422
14423 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
14424
14425         * common.opt (-G): Don't define option here.
14426         * config/g.opt: New.
14427         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
14428         rs6000/powerpc and score targets.
14429         * opts.c (common_handle_option): Don't handle -G here.
14430         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
14431         * config/frv/frv.c (frv_handle_option): Handle -G.
14432         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
14433         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
14434         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
14435         * config/mips/mips.c (mips_handle_option): Handle -G.
14436         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
14437         * config/score/score.c (score_handle_option): Handle -G.
14438
14439 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
14440
14441         * config/mmix/mmix.c: Include basic-block.h.
14442
14443 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
14444
14445         PR debug/45055
14446         PR rtl-optimization/45137
14447         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
14448         prototypes.
14449         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
14450         New functions.
14451         * combine.c (next_nonnote_nondebug_insn): Removed.
14452         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
14453         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
14454         * sched-deps.c (sched_analyze_insn): Likewise.
14455         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
14456         * rtlanal.c (canonicalize_condition): Likewise.
14457         * postreload.c (reload_combine_recognize_pattern): Likewise.
14458         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
14459
14460 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
14461
14462         * config/i386/i386.md (int_cond): Remove code iterator.
14463         (fp_cond): Ditto.
14464         (cbranch<mode>4): Use ordered_comparison_operator predicate
14465         for operator0.
14466         (cstore<mode>4): Ditto for operator1.
14467         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
14468         (add<mode>cc): ditto.
14469
14470 2010-07-30  Richard Guenther  <rguenther@suse.de>
14471
14472         PR middle-end/45141
14473         * expr.c (expand_expr_real_1): Check for not handled base address.
14474
14475 2010-07-30  Richard Guenther  <rguenther@suse.de>
14476
14477         * ipa-prop.c (ipa_modify_formal_parameters): Use
14478         build_distinct_type_copy.
14479
14480 2010-07-30  Anthony Green  <green@moxielogic.com>
14481
14482         * config/moxie/rtems.h: New file.
14483         * config.gcc: Add moxie-rtems support.
14484
14485 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14486
14487         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
14488         df flags as in run_fast_df_dce.
14489
14490 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14491
14492         Revert:
14493         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14494
14495         * rtl.def (NOTE): Swap operands 4 and 5.
14496         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
14497         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
14498         Adjust accordingly.
14499         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
14500
14501 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14502
14503         PR debug/45110
14504         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
14505         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
14506         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
14507         formal parameters.
14508         (gen_decl_die): Change return type to dw_die_ref, return what
14509         gen_formal_parameter_die returned.
14510
14511 2010-07-29  Martin Jambor  <mjambor@suse.cz>
14512
14513         * dbgcnt.def (eipa_sra): New counter.
14514         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
14515
14516 2010-07-29  Xinliang David Li  <davidxl@google.com>
14517
14518         PR bootstrap/45119
14519         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
14520         in revision 162652.
14521
14522 2010-07-29  Richard Guenther  <rguenther@suse.de>
14523
14524         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
14525         (TV_TREE_STORE_CCP): Likewise.
14526         (TV_TREE_REDPHI): Likewise.
14527
14528 2010-07-29  Richard Guenther  <rguenther@suse.de>
14529
14530         * double-int.h (double_int_and_not): New function.
14531         * combine.c (try_combine): Use it.
14532         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
14533
14534 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14535
14536         PR rtl-optimization/42575
14537         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
14538         Argument AU removed.  All callers changed.  Ignore artificial refs.
14539         Use return value of df_word_lr_simulate_defs to decide whether an insn
14540         is necessary.
14541         (fast_dce): Rename arg to WORD_LEVEL.
14542         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
14543         static.
14544         (pass_fast_rtl_byte_dce): Delete.
14545         * dce.h (run_word_dce): Declare.
14546         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
14547         All callers changed.  Simplify code to only deal with two-word regs.
14548         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
14549         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
14550         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
14551         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
14552         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
14553         (df_word_lr_mark_ref): Declare.
14554         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
14555         df_word_lr_simulate_uses): Declare or rename from byte variants.
14556         (df_byte_lr_simulate_artificial_refs_at_top,
14557         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14558         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
14559         declarations.
14560         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
14561         (enum df_mm): Delete.
14562         * df-byte-scan.c: Delete file.
14563         * df-problems.c (df_word_lr_problem_data): Renamed from
14564         df_byte_lr_problem_data, all members deleted except for
14565         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
14566         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
14567         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14568         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
14569         df_byte_lr_confluence_0): Delete functions.
14570         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
14571         callers changed.
14572         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
14573         Don't initialize members that were deleted, don't try to discover data
14574         about registers.  Ignore hard regs.
14575         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
14576         (df_word_lr_mark_ref): New function.
14577         (df_word_lr_bb_local_compute): Renamed from
14578         df_byte_bb_lr_local_compute; all callers changed.  Use
14579         df_word_lr_mark_ref.  Assert that artificial refs don't include
14580         pseudos.  Ignore hard registers.
14581         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
14582         Assert that exit block uses don't contain pseudos.
14583         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
14584         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
14585         callers changed.  Ignore hard regs.
14586         (df_word_lr_transfer_function): Renamed from
14587         df_byte_lr_transfer_function; all callers changed.
14588         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
14589         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
14590         changed.
14591         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
14592         callers changed.
14593         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
14594         confluence operator 0 set to NULL.
14595         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
14596         callers changed.
14597         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
14598         Return bool, true if bitmap changed or insn otherwise necessary.
14599         All callers changed.  Simplify using df_word_lr_mark_ref.
14600         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
14601         all callers changed.  Simplify using df_word_lr_mark_ref.
14602         * lower-subreg.c: Include "dce.h"
14603         (decompose_multiword_subregs): Call run_word_dce if df available.
14604         * Makefile.in (lower-subreg.o): Adjust dependencies.
14605         (df-byte-scan.o): Delete.
14606         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
14607
14608 2010-07-29  Richard Guenther  <rguenther@suse.de>
14609
14610         * tree.c (build_vector): Assert that the vector constant
14611         has enough elements.
14612         (build_vector_from_ctor): Pad with trailing zeros.
14613
14614 2010-07-29  Richard Guenther  <rguenther@suse.de>
14615
14616         PR tree-optimization/45120
14617         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14618         Handle offset in DEREFs properly.
14619         (get_constraint_for_1): Handle MEM_REF offset properly.
14620
14621 2010-07-29  Richard Guenther  <rguenther@suse.de>
14622
14623         PR middle-end/45034
14624         * convert.c (convert_to_integer): Always use an unsigned
14625         type for narrowed negate and bitwise not.
14626
14627 2010-07-29  Ira Rosen  <irar@il.ibm.com>
14628
14629         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
14630         to outer loop when creating reduction epilogue for double reduction,
14631         and switch back to the inner loop when updating the phi nodes.
14632         Update uses of outer loop exit phi nodes in double reduction (instead
14633         of uses of reduction).
14634
14635 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
14636
14637         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
14638         popcount on power7 and parity on power6 systems.
14639         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
14640         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
14641         instructions.
14642
14643         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
14644         (UNSPEC_PARITY): Ditto.
14645         (SFDF): New iterator for SF/DF.
14646         (rreg2): New mode attribute for floating register constraint.
14647         (TARGET_FLOAT): New mode attribute for whether single/double float
14648         is supported.
14649         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
14650         pattern.
14651         (parity<mode>2_cmpb): New insn for parity on power6 and newer
14652         machines.
14653         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
14654         pattern.  Add support for fcpsgn instruction added in power6.
14655         (copysignsf3): Delete.
14656         (copysigndf3): Delete.
14657         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
14658         instead of if_then_else in RTL to avoid problems with -0.
14659
14660         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
14661         of if_then_else to mirror scalar code.
14662         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
14663         rs6000.md.
14664
14665         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
14666         instead of if_then_else.
14667
14668 2010-07-28  Xinliang David Li  <davidxl@google.com>
14669
14670         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
14671         (dump_cand): Dump var_before/after.
14672         (htab_inv_expr_eq): New function.
14673         (htab_inv_expr_hash): New function.
14674         (tree_ssa_iv_optimize_init): Support pseudo invariants.
14675         (add_candidate_1): consider base type precision.
14676         (set_use_iv_cost): New parameter.
14677         (adjust_setup_cost): Use profile information.
14678         (get_address_cost): Do not hard code width in computing address
14679         offset limits.
14680         (compare_aff_trees): New function.
14681         (get_loop_invariant_expr_id): New function.
14682         (get_computation_cost_at): New parameter and use profile information.
14683         (get_computation_cost): New parameter.
14684         (determine_use_iv_cost_generic): Pass new parameter.
14685         (determine_use_iv_cost_address): Ditto.
14686         (determine_use_iv_cost_condition): Ditto.
14687         (autoinc_possible_for_pair): Ditto.
14688         (determine_use_iv_costs): More dumps.
14689         (iv_ca_get_num_inv_exprs): New function.
14690         (iv_ca_recount_cost): Consider loop invariants in register pressure
14691         cost.
14692         (iv_ca_add_use): New parameter.
14693         (iv_ca_dump): Better dumping.
14694         (iv_ca_extend): New parameter.
14695         (try_add_cand_for): Attempt to get better partial solution.
14696         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
14697         (create_new-ivs): More dumps.
14698         (rewrite_use_compare): Ditto.
14699         (free_loop_data): More cleanup.
14700         (treee_ssa_iv_optimize_finalize): Ditto.
14701
14702 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
14703
14704         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
14705         * config/i386/i386.c (ix86_profile_before_prologue): New.
14706         (override_options): Add special handling for -mfentry.
14707         (ix86_function_regparm): Likewise.
14708         (ix86_function_sseregparm): Likewise.
14709         (ix86_frame_pointer_required): Likewise.
14710         (ix86_expand_prologue): Check for ms_hook_prologue.
14711         (x86_function_profiler): Adjust mcount output.
14712         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
14713         * config/i386/i386.opt (mfentry): New.
14714         * doc/invoke.texi (mfentry): Add documentation.
14715         * doc/tm.texi: Regenerated..
14716         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
14717         * final.c (final_start_function): Replace macro
14718         PROFILE_BEFORE_PROLOGUE by target hook.
14719         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14720         * target.def (profile_before_prologue): New hook.
14721         * targhooks.c (default_profile_before_prologue): New.
14722         * targhooks.h (default_profile_before_prologue): New.
14723
14724 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
14725
14726         PR debug/45105
14727         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
14728
14729         PR debug/45103
14730         * dwarf2out.c (dwarf2out_var_location): Always consider
14731         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
14732
14733 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14734
14735         PR rtl-optimization/45107
14736         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
14737
14738 2010-07-28  Richard Guenther  <rguenther@suse.de>
14739
14740         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
14741         (set_lattice_value): Do not query an old default value.
14742         (get_value_for_expr): New function.  Properly canonicalize
14743         float values.
14744         (ccp_visit_phi_node): Use it.
14745
14746 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
14747
14748         * config/arm/arm.c (arm_pcs_default): Remove static.
14749         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
14750         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
14751         (arm_pcs_default): Declare.
14752
14753 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
14754
14755         * config/rs6000/rs6000.c (rs6000_override_options):
14756         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
14757         ... to darwin_rs6000_override_options.
14758         (rs6000_return_in_memory): Update preceding comment for darwin
14759         64 bit ABI.  Use TARGET_MACHO inline.
14760         (rs6000_darwin64_struct_check_p): New.
14761         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
14762         (function_arg): Likewise.
14763         (rs6000_arg_partial_bytes): Likewise.
14764         (rs6000_function_value): Likewise.
14765
14766 2010-07-28  Andi Kleen  <ak@linux.intel.com>
14767
14768         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
14769
14770 2010-07-28  Richard Guenther  <rguenther@suse.de>
14771
14772         PR middle-end/44903
14773         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
14774         targets try harder to not generate unaligned accesses.
14775
14776 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14777
14778         PR rtl-optimization/45101
14779         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
14780         for gcse-las.
14781
14782 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14783
14784         PR tree-optimization/44885
14785         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
14786         with non-aliased component.
14787
14788 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
14789
14790         * config/darwin-driver.c (SWITCH_TAKES_ARG,
14791         WORD_SWITCH_TAKES_ARG): Remove.
14792         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
14793         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
14794         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
14795         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
14796         definitions from gcc.c.
14797         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
14798         defaults.h.
14799         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
14800         Move to defaults.h.
14801         * opts-common.c: Include tm.h.
14802         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
14803         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
14804         Handle more than one argument.  Set canonical_option_num_elements.
14805         (decode_cmdline_options_to_array): Set
14806         canonical_option_num_elements and trailing elements of
14807         canonical_option.
14808         * opts.h (struct cl_decoded_option): Allow four elements in
14809         canonical_option.  Add field canonical_option_num_elements.
14810         * Makefile.in (opts-common.o): Update dependencies.
14811
14812 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14813
14814         PR middle-end/44790
14815         PR middle-end/44993
14816         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
14817         sure the base has address_mode before adding the offset.
14818
14819 2010-07-27  Xinliang David Li  <davidxl@google.com>
14820
14821         * tree-flow.h (create_mem_ref): Add one new parameter.
14822         * tree-ssa-address.c (create_mem_ref): New parameter.
14823         (addr_to_parts): Ditto.
14824         (move_variant_to_index): New function.
14825         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
14826
14827 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14828
14829         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
14830         4 and 5.
14831         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
14832         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
14833         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
14834         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
14835         CODE_LABELs and NOTEs.
14836         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
14837         * combine.c (try_combine): Likewise.
14838         * ira.c (setup_prohibited_mode_move_regs): Likewise.
14839         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
14840
14841 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
14842
14843         * coretypes.h (struct cl_option_handlers): Declare.
14844         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
14845         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
14846         * langhooks-def.h (lhd_handle_option): Declare.
14847         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
14848         * langhooks.c (lhd_handle_option): New.
14849         * langhooks.h (struct lang_hooks): Update prototype and return
14850         value type of handle_option hook.
14851         * optc-gen.awk: Generate target_flags_explicit definition for the
14852         driver.
14853         * opts-common.c: Include diagnostic.h.
14854         (handle_option): Move from opts.c.  Update prototype and return
14855         value type.  Use handlers structure.
14856         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
14857         handlers structure.
14858         (set_option): Move from opts.c.
14859         * opts.c (common_handle_option): Update prototype and return value
14860         type.  Update calls to handle_option and enable_warning_as_error.
14861         (unknown_option_callback, post_handling_callback,
14862         lang_handle_option, target_handle_option): New.
14863         (handle_option, read_cmdline_option): Move to opts-common.c.
14864         (read_cmdline_options): Update prototype.  Update call to
14865         read_cmdline_option.
14866         (decode_options): Initialize and use handlers structure.
14867         (set_option): Move to opts-common.c.
14868         (enable_warning_as_error): Update prototype.  Update call to
14869         handle_option.
14870         * opts.h (struct cl_option_handler_func, struct
14871         cl_option_handlers): New.
14872         (handle_option, enable_warning_as_error): Update prototypes.
14873         (read_cmdline_option): Declare.
14874         * Makefile.in (opts-common.o): Update dependencies.
14875
14876 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14877
14878         * config/arm/arm.c (params.h): Include.
14879         (arm_override_options): Tune gcse-unrestricted-cost.
14880         * config/arm/t-arm (arm.o): Define dependencies.
14881
14882 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14883
14884         PR target/42495
14885         PR middle-end/42574
14886         * basic-block.h (get_dominated_to_depth): Declare.
14887         * dominance.c (get_dominated_to_depth): New function, use
14888         get_all_dominated_blocks as a base.
14889         (get_all_dominated_blocks): Use get_dominated_to_depth.
14890
14891         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
14892         (hoist_exprs): Remove.
14893         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
14894         (compute_code_hoist_vbeinout): Add debug print outs.
14895         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
14896
14897         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
14898         quadratic behavior.
14899         * params.h (MAX_HOIST_DEPTH): New macro.
14900         * doc/invoke.texi (max-hoist-depth): Document.
14901
14902 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14903
14904         PR rtl-optimization/40956
14905         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
14906         constants.
14907
14908 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14909
14910         PR target/42495
14911         PR middle-end/42574
14912         * config/arm/arm.c (legitimize_pic_address): Use
14913         gen_calculate_pic_address pattern to emit calculation of PIC address.
14914         (will_be_in_index_register): New function.
14915         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
14916         (thumb1_legitimate_address_p): Use it provided !strict_p.
14917         * config/arm/arm.md (calculate_pic_address): New expand and split.
14918
14919 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14920
14921         PR target/42495
14922         PR middle-end/42574
14923         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
14924         * config/arm/arm.md (define_split "J", define_split "K"): Make
14925         IRA/reload friendly.
14926
14927 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14928
14929         * gcse.c (insert_insn_end_basic_block): Update signature, remove
14930         unused checks.
14931         (pre_edge_insert, hoist_code): Update.
14932
14933 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14934
14935         PR target/42495
14936         PR middle-end/42574
14937         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
14938
14939 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14940
14941         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
14942
14943 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14944
14945         PR rtl-optimization/40956
14946         PR target/42495
14947         PR middle-end/42574
14948         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
14949         for hoisting.
14950         (hoist_code): Count occurences in current block too.
14951
14952 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14953
14954         * gcse.c (struct expr:max_distance): New field.
14955         (doing_code_hoisting_p): New static variable.
14956         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
14957         simple expressions, don't change behavior for PRE.  Set max_distance.
14958         (insert_expr_in_table): Set new max_distance field.
14959         (hash_scan_set): Update.
14960         (hoist_expr_reaches_here_p): Stop search after max_distance
14961         instructions.
14962         (find_occr_in_bb): New static function.  Use it in ...
14963         (hoist_code): Calculate sizes of basic block before any changes are
14964         done.  Pass max_distance to hoist_expr_reaches_here_p.
14965         (one_code_hoisting_pass): Set doing_code_hoisting_p.
14966
14967         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
14968         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
14969         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
14970         macros.
14971         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
14972         Document.
14973
14974 2010-07-27  Jeff Law  <law@redhat.com>
14975             Maxim Kuvyrkov  <maxim@codesourcery.com>
14976
14977         * gcse.c (compute_transpout, transpout): Remove, move logic
14978         to prune_expressions.
14979         (compute_pre_data): Move pruning of trapping expressions ...
14980         (prune_expressions): ... here.  New static function.
14981         (compute_code_hoist_data): Use it.
14982         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
14983
14984 2010-07-27  Xinliang David Li  <davidxl@google.com>
14985
14986         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
14987         (rewrite_use_address): Adjust iv update position when needed.
14988
14989 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
14990
14991         * dbgcnt.def (hoist_insn): New debug counter.
14992         * gcse.c (hoist_code): Use it.
14993
14994 2010-07-27  Xinliang David Li  <davidxl@google.com>
14995
14996         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
14997         (niter_for_single_dom_exit): Passes additional parameter.
14998         (iv_period): Fix comments.
14999         (may_eliminate_iv): Handles multiple exit loops properly.
15000         (free_tree_niter_desc): New function.
15001         (free_loop_data): Frees up loop iteration descriptors.
15002
15003 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15004
15005         PR target/44542
15006         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
15007         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
15008         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
15009         (expand_one_var): Don't consider DECL_ALIGN for variables for
15010         which expand_one_stack_var_at has been already called.
15011
15012         PR testsuite/44701
15013         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
15014         constraints on IA-64.
15015
15016 2010-07-27  Jie Zhang  <jie@codesourcery.com>
15017
15018         PR target/44290
15019         Revert:
15020         2010-07-23  Jie Zhang  <jie@codesourcery.com>
15021
15022         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15023         false if ! tree_versionable_function_p.
15024
15025 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15026
15027         * dwarf2out.c (add_data_member_location_attribute): Use
15028         add_AT_unsigned instead of add_AT_int if offset is non-negative.
15029
15030 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15031
15032         * postreload.c (try_replace_in_use): New static function.
15033         (reload_combine_recognize_const_pattern): Use it here.  Allow
15034         substituting into a final add insn, and substituting into a memory
15035         reference in an insn that sets the reg.
15036
15037 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15038
15039         * common.opt (o): Add MissingArgError.
15040         * doc/options.texi (MissingArgError): Document.
15041         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
15042         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
15043         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
15044         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
15045         * langhooks.h (struct lang_hooks): Remove missing_argument.
15046         * optc-gen.awk: Handle MissingArgError and output new structure
15047         field initializers.
15048         * opts.c (read_cmdline_option): Use missing_argument_error field
15049         instead of missing_argument langhook.
15050         * opts.h (struct cl_option): Add missing_argument_error field.
15051         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
15052
15053 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15054
15055         PR target/29090
15056         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
15057         Darwin64 ABI, for zero-sized objects.
15058
15059 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15060
15061         PR target/35491
15062         PR target/29090
15063
15064         Merge from Apple local 4.2.1.
15065         2005-05-11  Stan Shebs  <shebs@apple.com>
15066         Fix 64-bit varargs for Darwin (Radar 4028089).
15067         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
15068         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
15069         Add argument, add case for 8-byte register half-filled with a float.
15070         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
15071         single-precision floats specially.
15072
15073 2010-07-27  Ira Rosen  <irar@il.ibm.com>
15074
15075         PR tree-optimization/44152
15076         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
15077         complex numbers for further check.
15078         (vect_supported_load_permutation_p): Check nodes with
15079         complex numbers.
15080
15081 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15082
15083         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
15084         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
15085         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
15086         (LANG_HOOKS_INITIALIZER): Add new hooks.
15087         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
15088         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
15089         and complain_wrong_lang_p.  Update init_options prototype.
15090         * c-objc-common.c (c_initialize_diagnostics): First call
15091         c_common_initialize_diagnostics.
15092         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
15093         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
15094         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
15095         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
15096         (hook_uint_void_0): New.
15097         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
15098         (hook_uint_void_0): New.
15099         * opts-common.c (decode_cmdline_option,
15100         decode_cmdline_options_to_array): Also fill in canonical_option field.
15101         * opts.c (complain_wrong_lang): Use langhook to determine whether
15102         to complain instead of special-casing LTO.
15103         (decode_options): Separate lang_mask determination with
15104         option_lang_mask hook from call of init_options hook.
15105         * opts.h (struct cl_decoded_option): Add canonical_option.
15106
15107 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15108
15109         PR tree-optimization/45083
15110         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
15111
15112 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15113
15114         * postreload.c (reload_combine_recognize_const_pattern): Move test
15115         for limiting the insn movement to the right scope.
15116
15117         PR rtl-optimization/45051
15118         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
15119         than reg_mentioned_p.
15120
15121 2010-07-26  Richard Henderson  <rth@redhat.com>
15122
15123         PR target/44132
15124         * tree-emutls.c: New file.
15125         * Makefile.in (OBJS-common): Add it.
15126         * tree-pass.h (pass_ipa_lower_emutls): Declare.
15127         * passes.c (init_optimization_passes): Add it.
15128
15129         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
15130         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
15131         * expr.c (emutls_var_address): Delete.
15132         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
15133         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
15134         (emutls_finish): Delete.
15135         * toplev.c (compile_file): Don't call it.
15136         * tree.h (emutls_decl): Delete.
15137         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
15138         (emutls_finish, emutls_finalize_control_var): Delete.
15139         (emutls_object_type): Move to tree-emutls.c.
15140         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
15141         default_emutls_var_fields, get_emutls_object_type,
15142         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
15143         default_emutls_var_init): Likewise.
15144         (get_variable_section): Don't special case emutls.
15145         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
15146         default_elf_select_section, default_unique_section,
15147         default_encode_section_info): Likewise.
15148         * varpool.c (decide_is_variable_needed): Likewise.
15149         * gimple-iterator.c (update_call_edge_frequencies): New
15150         (gsi_insert_on_edge_immediate): Use it.
15151         (gsi_insert_seq_on_edge_immediate): Likewise.
15152         (gsi_commit_one_edge_insert): Likewise.
15153
15154         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
15155         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
15156         (x86_64_elf_unique_section): Likewise.
15157
15158 2010-07-26  Jan Hubicka  <jh@suse.cz>
15159
15160         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
15161         GTY((skip)).
15162
15163 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
15164
15165         * target.def (output_source_filename): New hook.
15166         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
15167         * doc/tm.texi: Regenerate.
15168         * toplev.c (output_file_directive) Remove function.
15169         * toplev.h (output_file_directive) Remove.
15170         * output.h (default_asm_output_source_filename,
15171         output_file_directive): Declare.
15172         * varasm.h (default_asm_output_source_filename,
15173         output_file_directive): New functions.
15174
15175         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15176         * config/mips/mips-protos.h (mips_output_filename): Remove.
15177         * config/mips/mips.c (mips_output_filename): Make Static.
15178         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15179
15180 2010-07-26  Richard Guenther  <rguenther@suse.de>
15181
15182         PR tree-optimization/43784
15183         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
15184         if the destination is used by the call.
15185
15186 2010-07-26  Richard Guenther  <rguenther@suse.de>
15187
15188         PR middle-end/45073
15189         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
15190         SSA updating on being in SSA form.
15191
15192 2010-07-26  Richard Guenther  <rguenther@suse.de>
15193
15194         PR middle-end/45056
15195         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
15196
15197 2010-07-26  Richard Guenther  <rguenther@suse.de>
15198
15199         PR tree-optimization/45071
15200         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
15201         adjust op->opcode.
15202
15203 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
15204
15205         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
15206         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
15207         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
15208         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
15209         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
15210         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
15211         save_r31, return_r31, save_interrupt, return_interrupt,
15212         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
15213         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
15214         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
15215         new ABI requirements.
15216         (save_r6_r9, L_callt_save_r6_r9): Remove.
15217         * config/v850/predicates.md (even_reg_operand, disp23_operand,
15218         const_float_1_operand const_float_0_operand): New Predicates.
15219         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
15220         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
15221         * config/v850/t-v850: Update multilibs for new target variants.
15222         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
15223         * config/v850/t-v850e: Likewise.
15224         * config/v850/v850.c (v850_issue_rate): New.
15225         (v850_strict_argument_naming): New.
15226         (function_arg): Modify to generate a different ABI.
15227         (print_operand): Update case 'z' to support float modes.
15228         (output_move_single): Modify to generate appropriate and better
15229         assembly.
15230         (v850_float_z_comparison_operator, v850_select_cc_mode,
15231         v850_float_nz_comparison_operator,  v850_gen_float_compare,
15232         v850_gen_compare): New functions to support comparison of float values.
15233         (ep_memory_offset): Add support for V850E2 targets.
15234         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
15235         (INTERRUPT_REGPARM_NUM): Remove.
15236         (compute_register_save_size): Add extra case to save/restore long call.
15237         (use_prolog_function): New function to support prologue.
15238         (expand_prologue): Add support for V850E2 targets and modified
15239         as per the current ABI requirements.
15240         (expand_epilogue): Likewise.
15241         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
15242         (construct_save_jarl): Likewise.
15243         (construct_dispose_instruction): Update as per the current ABI
15244         requirements.
15245         (construct_prepare_instruction): Likewise.
15246         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
15247         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
15248         (CPP_SPEC): Updated to support v850e2 targets.
15249         (STRICT_ALIGNMENT): Modified.
15250         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
15251         (FIXED_REGISTERS): Likewise.
15252         (CALL_USED_REGISTERS): Likewise.
15253         (CONDITIONAL_REGISTER_USAGE): Updated.
15254         (HARD_REGNO_MODE_OK): Updated.
15255         (reg_class): Updated to add even registers.
15256         (REG_CLASS_NAMES): Likewise.
15257         (REG_CLASS_CONTENTS): Likewise.
15258         (REGNO_REG_CLASS): Updated for CC registers.
15259         (REG_CLASS_FROM_LETTER): Added support for even registers.
15260         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
15261         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
15262         ARG_POINTER_REGNUM): Updated.
15263         (FUNCTION_ARG_ADVANCE): Define.
15264         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
15265         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
15266         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
15267         (GO_IF_LEGITIMATE_ADDRESS): Updated.
15268         (SELECT_CC_MODE): Define.
15269         (REGISTER_NAMES): Updated to add psw and fcc registers.
15270         (ADDITIONAL_REGISTER_NAMES): Updated.
15271         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
15272         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
15273         * config/v850/v850.md (define_constants): Define new constants.
15274         (type): Update store,bit1,macc,div,fpu and single attributes.
15275         (cpu): New attribute.
15276         (cc): Add set_z attribute.
15277         (unsign23byte_load, sign23byte_load, unsign23hword_load,
15278         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
15279         23word_store): New instructions for 23-bit displacement load and store.
15280         (movqi_internal, movhi_internal): Update the attributes.
15281         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
15282         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
15283         the attributes.
15284         (v850_tst1): Modified using CC_REGNUM.
15285         (tstsi): Remove.
15286         (cmpsi): Modified as define_expand from define_insn.
15287         (cmpsi_insn, cmpsf, cmpdf): New instructions.
15288         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
15289         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
15290         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
15291         one_cmplsi2): Clobber the CC_REGNUM register.
15292         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
15293         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
15294         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
15295         (setf_insn, set_z_insn, set_nz_insn): New instructions for
15296         v850e2v3 target.
15297         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
15298         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
15299         targets.
15300         (sasf_1, sasf_2): Remove.
15301         (sasf): New instruction.
15302         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
15303         targets. CC_REGNUM register is clobbered and attributes are
15304         updated.
15305         (branch_z_normal, branch_z_invert, branch_nz_normal,
15306         branch_nz_invert): New branch related instructions.
15307         (jump): Updated the attributes.
15308         (switch): Update to support new targets. CC_REGNUM register is
15309         clobbered and attributes are updated.
15310         (call_internal_short, call_internal_long, call_value_internal_short,
15311         call_value_internal_long): Updated the attributes.
15312         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
15313         clobbered and attributes are updated.
15314         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
15315         Update to support new targets. CC_REGNUM register is clobbered.
15316         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
15317         instructions.
15318         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
15319         are updated.
15320         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
15321         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
15322         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
15323         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
15324         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
15325         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
15326         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
15327         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
15328         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
15329         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
15330         point instructions defined for V850e2v3 target.
15331         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
15332         Add support for V850E2 targets and CC_REGNUM register is clobbered.
15333         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
15334         support for new targets.
15335         * config/v850/v850-modes.def: New file.
15336         * config/v850/v850.opt(mstrict-align): Remove.
15337         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
15338         mv850e2v3): New command line options for V850.
15339         * config.gcc: Update the newly added files.
15340         * doc/invoke.texi: Update the newly added command line options for
15341         V850 target.
15342
15343 2010-07-26  Richard Guenther  <rguenther@suse.de>
15344
15345         PR tree-optimization/45052
15346         * ipa-pure-const.c (check_stmt): Check volatileness.
15347
15348 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15349
15350         PR target/44707
15351         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
15352         * config/sparc/sparc.c: Include reload.h.
15353         (legitimize_tls_address): Rename into...
15354         (sparc_legitimize_tls_address): ...this.
15355         (legitimize_pic_address): Rename into...
15356         (sparc_legitimize_pic_address): ...this.
15357         (sparc_expand_move): Adjust to above renaming.
15358         (sparc_tls_referenced_p): Likewise.
15359         (sparc_legitimize_tls_address): Likewise.
15360         (sparc_legitimize_pic_address): Likewise.
15361         (sparc_legitimize_address): Likewise.
15362         (sparc_output_mi_thunk): Likewise.
15363         (sparc_legitimize_reload_address): New global function.  Recognize
15364         (lo_sum (high ...) ...) patterns generated by earlier passes.
15365         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
15366
15367 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15368
15369         PR target/44484
15370         * config/sparc/predicates.md (memory_reg_operand): Delete.
15371         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
15372         (*sync_compare_and_swap): Encode the address form in the pattern.
15373         (*sync_compare_and_swapdi_v8plus): Likewise.
15374
15375 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
15376
15377         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
15378         Streamline paragraph on compatibility with the system compiler.
15379
15380 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
15381
15382         PR middle-end/45035
15383         * alias.c (true_dependence_1): Fix thinko in merge of old
15384         true_dependence and canon_true_dependence.
15385
15386 2010-07-23  Jan Hubicka  <jh@suse.cz>
15387
15388         * lto-streamer-out.c (write_symbol): Fix visibilities of external
15389         references.
15390
15391 2010-07-23  Le-Chun Wu  <lcwu@google.com>
15392
15393         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
15394         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
15395         and an unnecessary assignment.
15396         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
15397         self-assign warning.
15398         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
15399         unnecessary self-init.
15400
15401 2010-07-23  Richard Guenther  <rguenther@suse.de>
15402
15403         PR lto/43071
15404         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
15405         for -flto and -fwhopr.
15406
15407 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
15408
15409         PR target/41943
15410         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
15411         (stmp-int-hdrs): Prefix/postfix headers by include_next.
15412         * config.gcc (user_headers_inc_next_pre): New.
15413         (user_headers_inc_next_post): Likewise.
15414         (*-w64-mingw*): Use for float.h post-fixing, and for
15415         stddef.h/stdarg.h pre-fixing by include_next.
15416         * configure.ac (user_headers_inc_next_post): New.
15417         (user_headers_inc_next_pre): New.
15418         * configure: Regenerated.
15419
15420 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15421
15422         * configure.ac: Don't disable TLS on Solaris 8/9 by default
15423         Set tga_func for Solaris 2/x86 resp. SPARC.
15424         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
15425         (LIB_THREAD_LDFLAGS_SPEC): Define.
15426         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
15427         * configure: Regenerate.
15428         * config.in: Regenerate.
15429         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
15430         -pthread, -threads, LIB_TLS_SPEC with -pthread.
15431         * doc/install.texi (Specific, *-*-solaris2*): Document use of
15432         alternate thread libraries on Solaris 8.
15433         Document TLS patch requirements.
15434         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
15435         Document tls.
15436
15437         PR target/18788
15438         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
15439         -shared.
15440
15441 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
15442
15443         * tree.h (struct tree_base): Add nameless_flag bitfield.
15444         (TYPE_NAMELESS, DECL_NAMELESS): Define.
15445         * omp-low.c (create_omp_child_function, scan_omp_parallel,
15446         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
15447         DECL_ARTIFICIAL where needed.
15448         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
15449         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
15450         has DECL_NAMELESS set.
15451
15452 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15453
15454         PR tree-optimization/44915
15455         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
15456         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
15457         (analyze_function): Likewise.
15458
15459 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15460
15461         PR tree-optimization/44914
15462         * tree-sra.c (sra_modify_function_body): Return true if CFG was
15463         changed, add purging dead eh edges.
15464         (ipa_sra_modify_function_body): Return true if CFG was changed,
15465         simplify purging dead eh edges.
15466         (modify_function): Return true if CFG was changed.
15467         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
15468         was changed.
15469         (ipa_early_sra): Likewise.
15470
15471 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15472
15473         PR target/44290
15474         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
15475         if "naked".
15476         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15477         false if ! tree_versionable_function_p.
15478
15479 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
15480
15481         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
15482         * ipa-pure-const.c (special_builtlin_state): Remove
15483         BUILT_IN_ARGS_INFO case.
15484         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
15485         * builtins.c (expand_builtin): Likewise.
15486         (expand_builtin_args_info): Remove.
15487         * doc/tm.texi (__builtin_args_info): Remove.
15488         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
15489         * doc/tm.text.in: Likewise.
15490
15491 2010-07-23  Richard Guenther  <rguenther@suse.de>
15492
15493         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
15494         (lto_symtab_merge_decls_2): Likewise.
15495         * tree-ssa.c (useless_type_conversion_p): Likewise.
15496         * lto-streamer-in.c (input_gimple_stmt): Likewise.
15497         * gimple.c (gtc_visited2, gtc_ob2): Remove.
15498         (struct type_pair_d): Make same_p an array indexed by mode.
15499         Update comment.
15500         (lookup_type_pair): Update initialization.
15501         (struct sccs): Adjust same_p type.
15502         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
15503         Adjust.
15504         (print_gimple_types_stats): Likewise.
15505         * gimple.h (enum gtc_mode): New.
15506         (gimple_types_compatible_p): Adjust prototype.
15507
15508 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
15509
15510         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
15511         again after processing insn.
15512
15513 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15514
15515         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
15516         proper words when !tree_versionable_function_p.
15517
15518 2010-07-23  Richard Guenther  <rguenther@suse.de>
15519
15520         PR tree-optimization/45037
15521         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
15522
15523 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15524
15525         * doc/extend.texi: Remove IP2K from the description of naked attribute.
15526         Add MCORE instead.
15527
15528 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15529
15530         PR lto/44992
15531         * lto-opts.c (lto_write_options): Add NULL file_data argument to
15532         lto_get_section_name.
15533         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
15534         * lto-streamer-out.c (produce_asm): Likewise.
15535         (copy_function): Likewise.
15536         (produce_symtab): Likewise.
15537         (produce_asm_for_decls): Likewise.
15538         * lto-streamer.c (lto_get_section_name): Add file_data argument.
15539         Rewrite to add random postfix to LTO sections.
15540         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
15541         (lto_get_section_name): Add file_data argument to prototype.
15542
15543 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15544
15545         * lto-section-in.c (lto_section_name): Synchronize names
15546         with lto_get_section_name.
15547
15548 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15549
15550         * lto-opts.c (lto_read_file_options): Check for missing section.
15551
15552 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15553
15554         * ira.c (check_allocation): Correctly handle the case where an allocno
15555         with two objects was allocated to a single reg.
15556
15557 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
15558
15559         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
15560         (is_widening_mult_p): Likewise.
15561         (convert_to_widen): Use them.
15562         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
15563         well as integer ones.
15564
15565 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
15566
15567         * alias.c (true_dependence_1): New function, merged version of
15568         true_dependence and canon_true_dependence.
15569         (true_dependence): Simplify.
15570         (canon_true_dependence): Simplify.
15571
15572 2010-07-22  Richard Henderson  <rth@redhat.com>
15573
15574         PR target/45027
15575         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
15576         of V4SFmode for the SSE saves; increase stack alignment if needed.
15577         (ix86_gimplify_va_arg): Don't increase stack alignment here.
15578
15579 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
15580
15581         PR bootstrap/45028
15582         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
15583         call cprop_find_used_regs again via note_uses.
15584
15585 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
15586
15587         * alias.c (get_alias_set): Fix formatting issues.
15588
15589 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
15590
15591         PR middle-end/44878
15592         * stmt.c (expand_value_return):  Call promote_function_mode with
15593         a for_return argument of 2 when returning by reference.
15594
15595 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
15596
15597         PR debug/45024
15598         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
15599         unit DIE if we can find the scope DIE.
15600
15601 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15602
15603         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
15604         changed.  Initialize OBJECT_SUBWORD.
15605         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
15606         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
15607         all callers changed.
15608         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
15609         (finish_allocno): Likewise.
15610         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
15611         (remove_low_level_allocnos): Likewise.
15612         (update_bad_spill_attribute): Likewise.
15613         (setup_min_max_allocno_live_range_point): Likewise.
15614         (sort_conflict_id_map): Likewise.
15615         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
15616         (ior_hard_reg_conflicts): New function.
15617         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
15618         (compress_conflict_vecs): Iterate over objects, not allocnos.
15619         (ira_add_live_range_to_object): New function.
15620         (object_range_compare_func): Renamed from allocno_range_compare_func.
15621         All callers changed.
15622         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
15623         subobjects, widen the min/max range of the lowest-order object to
15624         potentially include all other such low-order objects.
15625         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
15626         (check_allocation): Likewise.  Use more fine-grained tests for register
15627         conflicts.
15628         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
15629         allocno subobjects.
15630         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
15631         choices about which bits to set in each set.  Don't use
15632         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
15633         using the multiple sets we computed.
15634         (push_allocno_to_stack): Iterate over allocno subobjects.
15635         (all_conflicting_hard_regs_coalesced): New static function.
15636         (setup_allocno_available_regs_num): Use it.
15637         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
15638         subobjects.
15639         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
15640         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15641         by ALLOCNO_NUM_OBJECTS.
15642         (calculate_spill_cost): Likewise.
15643         (color_pass): Express if statement in a more normal way.
15644         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
15645         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
15646         (setup_slot_coalesced_allocno_live_ranges): Likewise.
15647         (allocno_reload_assign): Likewise.
15648         (ira_reassign_pseudos): Likewise.
15649         (fast_allocation): Likewise.
15650         * ira-conflicts.c (build_conflict_bit_table): Likewise.
15651         (print_allocno_conflicts): Likewise.
15652         (ira_build_conflicts): Likewise.
15653         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
15654         callers changed.  Test subword 0 of each allocno for conflicts.
15655         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
15656         callers changed.  Iterate over allocno subobjects.
15657         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
15658         * ira-int.h (struct ira_allocno): New member: num_objects.
15659         Rename object to objects and change it into an array.
15660         (ALLOCNO_OBJECT): Add new argument N.
15661         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
15662         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
15663         (ior_hard_reg_conflicts): Declare.
15664         (ira_add_live_range_to_object): Declare.
15665         (ira_allocno_object_iterator): New.
15666         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
15667         (FOR_EACH_ALLOCNO_OBJECT): New macro.
15668         * ira-lives.c (objects_live): Renamed from allocnos_live; all
15669         uses changed.
15670         (allocnos_processed): New sparseset.
15671         (make_object_born): Renamed from make_allocno_born; take an
15672         ira_object_t argument.  All callers changed.
15673         (make_object_dead): Renamed from make_allocno_dead; take an
15674         ira_object_t argument.  All callers changed.
15675         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
15676         All callers changed.
15677         (mark_pseudo_regno_live): Iterate over allocno subobjects.
15678         (mark_pseudo_regno_dead): Likewise.
15679         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
15680         functions.
15681         (mark_ref_live): Detect subword accesses and call
15682         mark_pseudo_regno_subword_live as appropriate.
15683         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
15684         (process_bb_nodes_live): Deal with object-related updates first; set
15685         and test bits in allocnos_processed to avoid computing allocno
15686         statistics more than once.
15687         (create_start_finish_chains): Iterate over objects, not allocnos.
15688         (print_object_live_ranges): New function.
15689         (print_allocno_live_ranges): Use it.
15690         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
15691         and objects_live.
15692
15693 2010-07-22  Richard Guenther  <rguenther@suse.de>
15694
15695         PR lto/42451
15696         * gimple.c (gtc_next_dfs_num): New global.
15697         (struct sccs): Make value a union, add integer same_p member.
15698         (gtc_visit): New function.
15699         (gimple_types_compatible_p_1): New function, split out from ...
15700         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
15701         (iterative_hash_gimple_type): Adjust for sccs change.
15702
15703 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15704
15705         PR tree-optimization/44891
15706         * tree-sra.c: Include gimple-pretty-print.h.
15707         (replace_uses_with_default_def_ssa_name): Renamed to
15708         get_repl_default_def_ssa_name, return the new SSA name instead of
15709         replacing the old one.
15710         (sra_modify_assign): Dump a message when removing a load, if the LHS
15711         is an SSA_NAME, do not do any propagation, just set the RHS to a
15712         default definition SSA NAME, type convert if necessary.
15713         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
15714
15715 2010-07-22  Richard Guenther  <rguenther@suse.de>
15716
15717         PR tree-optimization/45017
15718         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
15719         TYPE_PRECISION of integral types in addition to size.
15720
15721 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15722
15723         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
15724         when no C library is specified.
15725
15726 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15727
15728         * ipa-prop.h (struct ipa_node_params): Updated comment.
15729         (struct ipa_edge_args): Likewise.
15730         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
15731
15732 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15733
15734         * cgraphunit.c (verify_edge_count_and_frequency): New function.
15735         (verify_cgraph_node): Verify frequencies of indirect edges.
15736         * tree-inline.c (tree_function_versioning): Update frequencies of
15737         indirect edges.
15738
15739 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15740
15741         PR target/43698
15742         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
15743         Set *arm_rev to be predicable.
15744
15745 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15746
15747         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
15748         (LINK_COMMAND_SPEC_A): New.
15749         (DSYMUTIL): New.
15750         (DSYMUTIL_SPEC): New.
15751         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
15752         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
15753
15754 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15755
15756         * calls.c (load_register_parameters): Move check for zero
15757         sized items so that only the call to
15758         mem_overlaps_already_clobbered_arg_p () is protected.
15759
15760 2010-07-22  Jan Hubicka  <jh@suse.cz>
15761
15762         * ipa-pure-const.c (varying_state): Break out from ...
15763         (get_function_state): ... here; always return varying_state
15764         when state would be NULL otherwise.
15765         (remove_node_data): Do not free varying state.
15766
15767 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15768
15769         PR bootstrap/44970
15770         PR middle-end/45009
15771         * postreload.c: Include "target.h".
15772         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
15773         into account.
15774         (fixup_debug_insns): Don't copy the rtx.
15775         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
15776         Don't copy when replacing.  Call fixup_debug_insns in the case where
15777         we merged one add with another.
15778         (reload_combine_recognize_pattern): Fail if there aren't any uses.
15779         Try harder to determine whether we're picking a valid index register.
15780         Don't set store_ruid for an insn we're going to scan in the
15781         next iteration.
15782         (reload_combine): Remove unused code.
15783         (reload_combine_note_use): When updating use information for
15784         an old insn, ignore a use that occurs after store_ruid.
15785         * Makefile.in (postreload.o): Update dependencies.
15786
15787         * function.c (record_hard_reg_sets): Restrict the previous change
15788         to cases where the incoming nominal mode is the same as the
15789         incoming promoted mode and everything happens in MODE_INT.
15790
15791 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15792
15793         PR debug/45015
15794         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
15795         ASM_OPERANDS_OUTPUT_IDX.
15796         (adjust_insn): For inline asm with multiple sets ensure first
15797         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
15798         the insn.
15799
15800 2010-07-21  Richard Henderson  <rth@redhat.com>
15801
15802         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
15803         comparison for avoiding xmm register saves.  Emit the xmm register
15804         saves explicitly.
15805         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
15806         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
15807         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
15808         Remove patterns and the associated splitters.
15809
15810 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
15811
15812         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
15813         and imagine parts of a complex, so that they can have the same
15814         base and fall into the same group.
15815
15816 2010-07-21  Richard Guenther  <rguenther@suse.de>
15817
15818         PR lto/45018
15819         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
15820         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
15821         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
15822
15823 2010-07-21  Martin Jambor  <mjambor@suse.cz>
15824
15825         PR tree-optimization/44900
15826         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
15827         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
15828
15829 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
15830
15831         PR middle-end/44738
15832         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
15833
15834 2010-07-21  Richard Guenther  <rguenther@suse.de>
15835
15836         PR middle-end/45013
15837         * tree-ssa.c (useless_type_conversion_p): Dispatch to
15838         gimple_types_compatible_p only when in lto.
15839         * gimple.c (gimple_types_compatible_p): Use canonical types
15840         to speed up comparison.
15841
15842 2010-07-21  Richard Guenther  <rguenther@suse.de>
15843
15844         * tree-flow.h (referenced_var): Move define ...
15845         * tree-flow-inline.h (referenced_var): ... here as an inline
15846         function.  Assert here ...
15847         * tree-dfa.c (referenced_var_lookup): ... instead of here.
15848         * tree-ssa.c (maybe_optimize_var): Check if the variable
15849         is in referenced vars.
15850         (execute_update_addresses_taken): Remove old broken check.
15851         * gimple-pretty-print.c (pp_points_to_solution): Use
15852         referenced_var_lookup.
15853         * tree-into-ssa.c (dump_decl_set): Likewise.
15854
15855 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15856
15857         PR debug/45003
15858         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
15859         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
15860         ZERO_EXTEND here.
15861
15862 2010-07-20  Richard Henderson  <rth@redhat.com>
15863
15864         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
15865
15866 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15867
15868         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
15869         computing the sum of the stack pointer and a large constant.
15870         * config/arm/constraints.md (M): Remove superfluous parentheses.
15871         (Pc): New constraint.
15872
15873 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15874
15875         PR debug/45006
15876         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
15877         operand's type if exp is tcc_unary class tree.
15878
15879 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15880
15881         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
15882         Reverse sense of if_then_else condition.
15883
15884 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
15885
15886         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
15887         * config/rs6000/rs6000.c (rs6000_override_options): Set
15888         rs6000_block_move_inline_limit appropriately.
15889         (expand_block_move): Use rs6000_block_move_inline_limit.
15890         * doc/invoke.texi (mblock-move-inline-limit): Document.
15891
15892 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
15893
15894         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
15895         FROM and TO.  All callers changed.  Don't look for tracked uses,
15896         just scan the RTL for DEBUG_INSNs and substitute.
15897         (reload_combine_recognize_pattern): Call fixup_debug_insns.
15898         (reload_combine): Ignore DEBUG_INSNs.
15899
15900 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
15901
15902         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
15903         depth to 8 from 5.
15904
15905         PR debug/45003
15906         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
15907         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
15908         instead of the result's type.
15909
15910 2010-07-20  Richard Guenther  <rguenther@suse.de>
15911
15912         PR tree-optimization/44977
15913         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
15914         SSA form.
15915
15916 2010-07-20  Richard Guenther  <rguenther@suse.de>
15917
15918         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
15919         (lto_symtab_merge_decls_2): Likewise.
15920         * gimple.h (gimple_types_compatible_p): Declare.
15921         * gimple.c (gimple_queue_type_fixup): Remove.
15922         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
15923         (gimple_compatible_complete_and_incomplete_type_p): New function.
15924         (gimple_types_compatible_p): Adjust.
15925         (gimple_register_type): Remove type fixup code.
15926         (print_gimple_types_stats): Adjust.
15927         (free_gimple_type_tables): Likewise.
15928         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
15929         * tree-ssa.c (useless_type_conversion_p): Likewise.
15930
15931 2010-07-20  Richard Guenther  <rguenther@suse.de>
15932
15933         PR middle-end/44971
15934         PR middle-end/44988
15935         * tree-ssa.c (maybe_optimize_var): New function split out from ...
15936         (execute_update_addresses_taken): ... here.
15937         (non_rewritable_mem_ref_base): Likewise.
15938         (execute_update_addresses_taken): Do not iterate over all referenced
15939         vars but just all local decls and parms.
15940         Properly check call and asm arguments and rewrite call arguments.
15941
15942 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
15943
15944         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
15945         to top level.
15946         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
15947         definitions ...
15948         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
15949         New macro.
15950         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
15951
15952 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
15953
15954         * gengtype.c (start_root_entry): New function, split out from
15955         write_root.  Check whether V is null and raise an error if so.
15956         (write_field_root): Check for V being null.  Don't raise an error here;
15957         set V to null instead.
15958         (write_root): Update comment above function.  Use start_root_entry.
15959
15960 2010-07-19  Xinliang David Li  <davidxl@google.com>
15961
15962         PR testsuite/44932
15963         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
15964         def edges.
15965         (find_uninit_use): Add dump.
15966         (is_use_properly_guarded): Ditto.
15967         (warn_uninitialized_phi): Ditto.
15968         (execute_late_warn_uninitialized): Ditto.
15969
15970 2010-07-19  Richard Guenther  <rguenther@suse.de>
15971
15972         PR middle-end/44941
15973         * expr.c (emit_block_move_hints): Move zero size check first.
15974         Move asserts to more useful places.
15975         * calls.c (load_register_parameters): Check for zero size.
15976
15977 2010-07-19  Richard Henderson  <rth@redhat.com>
15978
15979         * tree-optimize.c (execute_all_early_local_passes): New.  Change
15980         cgraph_state here ...
15981         (execute_early_local_optimizations): ... not here.  Remove.
15982         (pass_early_local_passes, pass_all_early_optimizations): Update.
15983
15984 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
15985
15986         * postreload.c (reload_combine_closest_single_use): Ignore the
15987         number of uses for DEBUG_INSNs.
15988         (fixup_debug_insns): New static function.
15989         (reload_combine_recognize_const_pattern): Use it.  Don't let the
15990         main loop be affected by DEBUG_INSNs.
15991         Really disallow moving adds past a jump insn.
15992         (reload_combine_recognize_pattern): Don't update use_ruid here.
15993         (reload_combine_note_use): Do it here.
15994         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
15995
15996 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
15997
15998         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
15999         of a loop.
16000         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
16001
16002 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
16003
16004         * config/i386/darwin.h: Define darwin_emit_branch_islands.
16005         (TARGET_MACHO_BRANCH_ISLANDS): New.
16006         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
16007         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
16008         default value.
16009         * config/i386/i386.c (output_pic_addr_const): Do not emit
16010         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
16011         (x86_output_mi_thunk): Adjust symbol creation.
16012         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
16013         Remove out of date comment.
16014         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
16015         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16016         (DARWIN_GENERATE_ISLANDS): Ditto.
16017         (output_call):  Do not emit branch islands unless
16018         darwin_emit_branch_islands is set.
16019         * config/darwin.c: Declare darwin_emit_branch_islands.
16020         (machopic_indirect_data_reference): Do not emit unless
16021         darwin_emit_branch_islands is set.
16022         (darwin_override_options): Set darwin_emit_branch_islands
16023         where it is needed.
16024         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16025
16026 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16027
16028         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16029         sse_runtime, sse2_runtime.
16030
16031 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
16032
16033         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
16034         low half of a single-register SCmode return value before ORing
16035         it with the high half.
16036         * config/mips/mips16.S (MERGE_GPRf): Likewise.
16037
16038 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16039
16040         PR target/44805
16041         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
16042         on all targets.
16043
16044 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
16045
16046         PR target/42235
16047         * postreload.c (reload_cse_move2add): Return bool, true if anything.
16048         changed.  All callers changed.
16049         (move2add_use_add2_insn): Likewise.
16050         (move2add_use_add3_insn): Likewise.
16051         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
16052         reload_combine.
16053         (RELOAD_COMBINE_MAX_USES): Bump to 16.
16054         (last_jump_ruid): New static variable.
16055         (struct reg_use): New members CONTAINING_MEM and RUID.
16056         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
16057         (reload_combine_split_one_ruid, reload_combine_split_ruids,
16058         reload_combine_purge_insn_uses, reload_combine_closest_single_use
16059         reload_combine_purge_reg_uses_after_ruid,
16060         reload_combine_recognize_const_pattern): New static functions.
16061         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
16062         is true for our reg and that we have available index regs.
16063         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
16064         callers changed.  Use them to initialize fields in struct reg_use.
16065         (reload_combine): Initialize last_jump_ruid.  Be careful when to
16066         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
16067         Call reload_combine_recognize_const_pattern.
16068         (reload_combine_note_store): Update REAL_STORE_RUID field.
16069
16070 2010-07-16  Jason Merrill  <jason@redhat.com>
16071
16072         * Makefile.in (opts-common.o): Depend on options.h.
16073
16074 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16075
16076         * tree.c (build_common_builtin_nodes): Use build_function_type_list
16077         instead of build_function_type.
16078         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
16079         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16080
16081 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16082
16083         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
16084         do all the work.
16085         (rs6000_emit_int_cmove): Use function pointers for insn generation.
16086         Don't force values into registers unnecessarily.
16087         (output_isel): Assert that we're not given conditions we can't handle.
16088         Delete corresponding code.
16089         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
16090         scc_comparison_operator constraint.  Permit 0 for the consequent
16091         operand.  Permit any GPR for the alternative operand.
16092         (isel_unsigned_<mode>): Likewise.
16093
16094 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
16095
16096         PR target/44942
16097         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
16098         argument to const_tree.
16099         * config/i386/i386.c (function_arg_advance): If padding needs to be
16100         inserted before argument, increment cum->words by number of padding
16101         words as well.
16102         (contains_aligned_value_p): Change argument to const_tree.
16103         (ix86_function_arg_boundary): Change second argument to const_tree.
16104
16105 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
16106
16107         PR target/42235
16108         * function.c (record_hard_reg_sets): New static function.
16109         (assign_parm_setup_reg): If an optab for extending exists and the
16110         generated code clobbbers no hard regs, emit the insn directly and
16111         create a REG_EQUIV note.
16112
16113 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16114
16115         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
16116         TREE_CHAIN.
16117         * c-typeck.c (push_init_level): Likewise.
16118         (process_init_element): Likewise.
16119
16120 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
16121
16122         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
16123         (integer_three_node): Add.
16124         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
16125         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
16126         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
16127         of call build_int_cst.
16128         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
16129         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
16130         (find_interesting_uses_address): Ditto.
16131         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
16132         * tree-eh.c (lower_eh_constructs_2): Ditto.
16133         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
16134         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
16135         * expmed.c (expand_divmod): Ditto.
16136         * tree-mudflap.c (mx_register_decls): Ditto.
16137         * varasm.c (array_size_for_constructor): Ditto.
16138         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
16139         * c-parser.c (c_parser_postfix_expression): Ditto.
16140
16141 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
16142
16143         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
16144         New static variables.
16145         (reload_combine_recognize_pattern): New static function, broken out
16146         of reload_combine.
16147         (reload_combine): Use it.  Only initialize first_index_reg and
16148         last_index_reg once.
16149
16150 2010-07-15  Richard Henderson  <rth@redhat.com>
16151
16152         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
16153         when done.
16154
16155 2010-07-15  Jan Hubicka  <jh@suse.cz>
16156
16157         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
16158         comdats for broken gold.
16159         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
16160
16161 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16162
16163         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
16164
16165 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16166
16167         * tree.h (DECL_CHAIN): Define.
16168         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
16169         * c-decl.c: Likewise.
16170         * c-parser.c: Likewise.
16171         * c-typeck.c: Likewise.
16172         * cfgexpand.c: Likewise.
16173         * cgraph.c: Likewise.
16174         * cgraphunit.c: Likewise.
16175         * combine.c: Likewise.
16176         * config/alpha/alpha.c: Likewise.
16177         * config/arm/arm.c: Likewise.
16178         * config/frv/frv.c: Likewise.
16179         * config/i386/i386.c: Likewise.
16180         * config/i386/winnt-cxx.c: Likewise.
16181         * config/ia64/ia64.c: Likewise.
16182         * config/iq2000/iq2000.c: Likewise.
16183         * config/mep/mep.c: Likewise.
16184         * config/mips/mips.c: Likewise.
16185         * config/pa/som.h: Likewise.
16186         * config/rs6000/rs6000.c: Likewise.
16187         * config/s390/s390.c: Likewise.
16188         * config/sh/sh.c: Likewise.
16189         * config/sh/symbian-cxx.c: Likewise.
16190         * config/sparc/sparc.c: Likewise.
16191         * config/spu/spu.c: Likewise.
16192         * config/stormy16/stormy16.c: Likewise.
16193         * config/vxworks.c: Likewise.
16194         * config/xtensa/xtensa.c: Likewise.
16195         * coverage.c: Likewise.
16196         * dbxout.c: Likewise.
16197         * dwarf2out.c: Likewise.
16198         * emit-rtl.c: Likewise.
16199         * expr.c: Likewise.
16200         * function.c: Likewise.
16201         * gimple-low.c: Likewise.
16202         * gimple-pretty-print.c: Likewise.
16203         * gimplify.c: Likewise.
16204         * integrate.c: Likewise.
16205         * ipa-inline.c: Likewise.
16206         * ipa-prop.c: Likewise.
16207         * ipa-split.c: Likewise.
16208         * ipa-struct-reorg.c: Likewise.
16209         * ipa-type-escape.c: Likewise.
16210         * langhooks.c: Likewise.
16211         * lto-cgraph.c: Likewise.
16212         * omp-low.c: Likewise.
16213         * stor-layout.c: Likewise.
16214         * tree-cfg.c: Likewise.
16215         * tree-complex.c: Likewise.
16216         * tree-dfa.c: Likewise.
16217         * tree-dump.c: Likewise.
16218         * tree-inline.c: Likewise.
16219         * tree-mudflap.c: Likewise.
16220         * tree-nested.c: Likewise.
16221         * tree-object-size.c: Likewise.
16222         * tree-pretty-print.c: Likewise.
16223         * tree-sra.c: Likewise.
16224         * tree-ssa-live.c: Likewise.
16225         * tree-ssa-loop-niter.c: Likewise.
16226         * tree-ssa-math-opts.c: Likewise.
16227         * tree-ssa-reassoc.c: Likewise.
16228         * tree-ssa-sccvn.c: Likewise.
16229         * tree-ssa-structalias.c: Likewise.
16230         * tree-tailcall.c: Likewise.
16231         * tree-vrp.c: Likewise.
16232         * tree.c: Likewise.
16233         * var-tracking.c: Likewise.
16234         * varasm.c: Likewise.
16235
16236 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16237
16238         PR target/44877
16239         * config/spu/spu.c (spu_expand_builtin_1): Allow references
16240         (as well as pointers) as argument to mask_for_load builtins.
16241
16242 2010-07-15  Richard Guenther  <rguenther@suse.de>
16243
16244         PR tree-optimization/44946
16245         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
16246         with accessing only padding properly.
16247
16248 2010-07-15  Jan Hubicka  <jh@suse.cz>
16249
16250         * ipa.c (function_and_variable_visibility): Variables marked as used
16251         should not be localized.
16252
16253 2010-07-15  Jan Hubicka  <jh@suse.cz>
16254
16255         * cgraph.c: Include lto-streamer.h
16256         (change_decl_assembler_name): Work when assembler name hash is at place.
16257         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
16258         be sure to rename it to avoid name clash.
16259         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
16260         Localize hidden symbols only when locally defined.
16261
16262 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
16263
16264         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
16265
16266 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
16267             Kevin F. Quinn  <kevquinn@gentoo.org>
16268
16269         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
16270         * common.opt: Add -Wtrampolines.
16271         * doc/invoke.texi: Add -Wtrampolines.
16272
16273 2010-07-15  Jie Zhang  <jie@codesourcery.com>
16274
16275         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
16276         cortex_a8_issue_ls.
16277
16278 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
16279
16280         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
16281         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
16282
16283 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16284
16285         * config/spu/spu.c (reg_names): Remove prototype.
16286         (call_used_regs): Likewise.
16287
16288 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
16289
16290         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
16291         "unused" with attribute "used".
16292         (__JCR_END__): Likewise.
16293         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
16294         "used" attribute.
16295         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
16296
16297 2010-07-14  Richard Guenther  <rguenther@suse.de>
16298
16299         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
16300         (maybe_fixup_decls): Likewise.
16301         (input_gimple_stmt): Do not fixup anything.
16302         * lto-streamer-out.c (output_gimple_stmt): Make sure all
16303         non-automatic variable uses are wrapped inside a MEM_REF.
16304
16305 2010-07-14  Richard Henderson  <rth@redhat.com>
16306
16307         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
16308         for functions.
16309         * varasm.c (assemble_variable): Remove early exit for functions;
16310         assert that we're given a variable.
16311
16312 2010-07-14  Jie Zhang  <jie@codesourcery.com>
16313
16314         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
16315         cortex_a8_default when neon_type is not none.
16316
16317 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16318
16319         * lower-subreg.c (subreg_context): New static bitmap.
16320         (decompose_multiword_subregs): Allocate and free it.
16321         (find_decomposable_subregs): Set a bit in it for a register that
16322         occurs in a subreg that changes mode but not size.
16323         (can_decompose_p): Test it instead of non_decomposable_context.
16324
16325 2010-07-14  Richard Guenther  <rguenther@suse.de>
16326
16327         PR tree-optimization/44824
16328         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
16329         is_gimple_mem_ref_addr.
16330         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
16331         non-decl_address_invariant_p addresses.
16332
16333 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16334
16335         * reload.c (find_reloads): Revert code to penalize small register
16336         classes that was brought in with the IRA merge.
16337
16338 2010-07-14  Richard Guenther  <rguenther@suse.de>
16339
16340         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
16341         as base of ARRAY_REFs.
16342
16343 2010-07-14  Richard Guenther  <rguenther@suse.de>
16344
16345         PR middle-end/44930
16346         * tree-pretty-print.c (do_niy): Do not print a newline.
16347
16348 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16349
16350         * ira-int.h (struct ira_object): New.
16351         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
16352         (struct ira_allocno): Remove members min, max,
16353         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
16354         conflict_allocnos_num and conflict_vec_p.  Add new member object.
16355         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
16356         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
16357         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
16358         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
16359         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
16360         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
16361         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
16362         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
16363         an ira_object_t rather than ira_allocno_t.  All uses changed.
16364         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16365         contains a vector of ira_object_t; all uses changed.
16366         (ira_objects_num): Declare variable.
16367         (ira_create_allocno_object): Declare function.
16368         (ira_conflict_vector_profitable_p): Adjust prototype.
16369         (ira_allocate_conflict_vec): Renamed from
16370         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
16371         (ira_allocate_object_conflicts): Renamed from
16372         ira_allocate_allocno_conflicts; first arg now ira_object_t.
16373         (struct ira_object_iterator): New.
16374         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
16375         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
16376         to conflict_vec_p.  All uses changed.
16377         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
16378         Changed to take into account that conflicts are now tracked for
16379         objects.
16380         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
16381         Args changed to accept ira_object_t.  All uses changed.
16382         (allocnos_conflict_p): New static function.
16383         (collected_conflict_objects): Renamed from collected_allocno_objects;
16384         now a vector of ira_object_t.  All uses changed.
16385         (build_conflict_bit_table): Changed to take into account that
16386         conflicts are now tracked for objects.
16387         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
16388         (print_allocno_conflicts, ira_build_conflicts): Likewise.
16389         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
16390         setup_allocno_left_conflicts_size, allocno_reload_assign,
16391         fast_allocation): Likewise.
16392         * ira-lives.c (make_hard_regno_born, make_allocno_born)
16393         process_single_reg_class_operands, process_bb_node_lives): Likewise.
16394         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
16395         Likewise.
16396         * ira-build.c (ira_objects_num): New variable.
16397         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16398         contains a vector of ira_object_t; all uses changed.
16399         (ira_object_id_map_vec): Corresponding change.
16400         (object_pool): New static variable.
16401         (initiate_allocnos): Initialize it.
16402         (finish_allocnos): Free it.
16403         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
16404         New functions.
16405         (ira_create_allocno): Don't set members that were removed.
16406         (ira_set_allocno_cover_class): Don't change conflict hard regs.
16407         (merge_hard_reg_conflicts): Changed to take into account that
16408         conflicts are now tracked for objects.
16409         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
16410         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
16411         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
16412         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
16413         setup_min_max_conflict_allocno_ids, ):  Likewise.
16414         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
16415         to ira_object_t; all callers changed.
16416         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
16417         to ira_object_t, all callers changed.
16418         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
16419         to ira_object_t, all callers changed.
16420         (conflict_check, curr_conflict_check_tick): Renamed from
16421         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
16422         changed.
16423         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
16424         arg changed to ira_object_t, all callers changed.
16425         (create_cap_allocno): Call ira_create_allocno_object.
16426         (finish_allocno): Free the corresponding object.
16427         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
16428         callers changed.  Adjusted for dealing with objects.
16429         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
16430         dealing with objects.
16431         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
16432
16433         * ira-int.h (struct live_range): Rename allocno member to object
16434         and change type to ira_object_t.
16435         (struct ira_object): New member live_ranges.
16436         (struct ira_allocno): Remove member live_ranges.
16437         (ALLOCNO_LIVE_RANGES): Remove.
16438         (OBJECT_LIVE_RANGES): New macro.
16439         (ira_create_live_range, ira_copy_live_range_list,
16440         ira_merge_live_range_list, ira_live_ranges_intersect_p,
16441         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
16442         * ira-build.c (ira_create_object): Initialize live ranges here.
16443         (ira_create_allocno): Not here.
16444         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
16445         changed to ira_object_t, all callers changed.
16446         (copy_live_range): Rename from copy_allocno_live_range, all callers
16447         changed.
16448         (ira_copy_live_range_list): Rename from
16449         ira_copy_allocno_live_range_list, all callers changed.
16450         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
16451         all callers changed.
16452         (ira_live_ranges_intersect_p): Rename from
16453         ira_allocno_live_ranges_intersect_p, all callers changed.
16454         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
16455         callers changed.
16456         (ira_finish_live_range_list): Rename from
16457         ira_finish_allocno_live_range_list, all callers changed.
16458         (change_object_in_range_list): Rename from change_allocno_in_range_list,
16459         last arg changed to ira_object_t, all callers changed.
16460         (finish_allocno): Changed to expect live ranges in the allocno's object.
16461         (move_allocno_live_ranges, copy_allocno_live_ranges,
16462         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
16463         ira_flattening, ira_build): Likewise.
16464         * ira-color.c (allocnos_have_intersected_live_ranges_p,
16465         slot_coalesced_allocno_live_ranges_intersect,
16466         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
16467         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16468         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
16469         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
16470         make_allocno_dead, create_start_finish_chains,
16471         remove_some_program_points_and_update_live_ranges,
16472         ira_debug_live_range_list): Likewise.
16473
16474         * ira-int.h (ira_object_conflict_iterator): Rename from
16475         ira_allocno_conflict_iterator.
16476         (ira_object_conflict_iter_init): Rename from
16477         ira_allocno_conflict_iter_init, second arg changed to
16478         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
16479         FOR_EACH_ALLOCNO_CONFLICT.
16480         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
16481         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
16482         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
16483         * ira-conflicts.c (print_allocno_conflicts): Likewise.
16484
16485 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
16486
16487         PR other/44874
16488         * tree-dump.c (dump_options): Add enumerate_locals entry.
16489         Add TDF_NOID exclusion to all entry.
16490         * tree-dump.h (dump_enumerated_decls): Declare.
16491         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
16492         Don't display type uid.
16493         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
16494         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
16495         * tree-ssa-live.c: Include gimple.h.
16496         (numbered_tree_d): New struct.
16497         (numbered_tree): New typedef.
16498         (DEF_VEC_O (numbered_tree): New.
16499         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
16500         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
16501         (dump_enumerated_decls): Likewise.
16502         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
16503         debug info and flag_dump_final_insns, call dump_enumerated_decls.
16504         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
16505         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
16506
16507 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
16508
16509         * expmed.h (MAX_BITS_PER_WORD): Move to...
16510         * defaults.h (MAX_BITS_PER_WORD): ...here.
16511
16512 2010-07-13  DJ Delorie  <dj@redhat.com>
16513
16514         * config/h8300/h8300.c (h8300_init_once): Default to
16515         -fstrict_volatile_bitfields.
16516
16517         * config/sh/sh.c (sh_override_options): Default to
16518         -fstrict_volatile_bitfields.
16519
16520         * config/rx/rx.c (rx_option_override): New.
16521
16522         * config/m32c/m32c.c (m32c_override_options): Default to
16523         -fstrict_volatile_bitfields.
16524
16525 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
16526
16527         * tree.h (build_function_call_expr): Delete.
16528         (build_call_expr_loc_array): New function.
16529         (build_call_expr_loc_vec): New function.
16530         * tree-flow.h (struct omp_region): Change type of ws_args field
16531         to a VEC.
16532         * builtins.c (build_function_call_expr): Delete.
16533         (build_call_expr_loc_array): New function.
16534         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
16535         (build_call_expr): Likewise.
16536         (build_call_expr_loc_vec): New function.
16537         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
16538         build_function_call_expr.
16539         * expr.c (emutls_var_address): Likewise.
16540         * varasm.c (emutls_common_1): Likewise.
16541         * omp-low.c (expand_omp_atomic_mutex): Likewise.
16542         (expand_omp_taskreg): Adjust for new type of region->ws_args.
16543         (get_ws_args_for): Return a VEC instead of a tree.
16544         (expand_parallel_call): Call build_call_expr_loc_vec instead of
16545         build_function_call_expr.
16546         * stor-layout.c (self_referential_size): Likewise.
16547
16548 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16549
16550         PR testsuite/44701
16551         * recog.c (constrain_operands): Allow side-effects in memory
16552         operands if either < or > constraint is used, rather than if
16553         both < and > is used.
16554
16555 2010-07-13  Richard Guenther  <rguenther@suse.de>
16556
16557         PR middle-end/44911
16558         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
16559         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
16560         without name.
16561
16562 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
16563
16564         PR target/44761
16565         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
16566         to variable emited.
16567         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
16568         * config/sh/sh.md (symGOT_load): Likewise.
16569         (symDTPOFF2reg): Likewise.
16570         (symTPOFF2reg): Likewise.
16571
16572 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16573
16574         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
16575         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
16576
16577 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16578
16579         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
16580         explanation.
16581         Find ucontext_t * on Solaris 11.
16582         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
16583         Handle new Solaris 11 __sighndlr patterns.
16584
16585 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16586
16587         PR debug/44901
16588         * vec.h (VEC_block_remove): Fix comment.
16589         * tree-ssa-live.c (remove_unused_locals): Don't use
16590         VEC_unordered_remove on local_decls, instead replace a single
16591         vector element in each iteration if at least one element had
16592         to be removed and VEC_truncate at the end.
16593         * omp-low.c (expand_omp_taskreg): Likewise.
16594
16595 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16596
16597         * c-decl.c (finish_function): Fix typo in comment.
16598
16599 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
16600
16601         PR bootstrap/44921
16602         * postreload.c (move2add_use_add3_insn): Silence gcc warning
16603         on min_regno.
16604
16605 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
16606
16607         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
16608         (simplify_stmt_using_ranges): Use it.
16609
16610 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16611
16612         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
16613         member.  Do not mark as GTY(()).
16614         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
16615         (spu_builtin_decls): New static variable.
16616         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
16617         (spu_init_builtins): Likewise.
16618         (spu_builtin_mul_widen_even): Likewise.
16619         (spu_builtin_mul_widen_odd): Likewise.
16620         (spu_builtin_mask_for_load): Likewise.
16621         (spu_builtin_vec_perm): Likewise.
16622         * config/spu/spu-c.c: Include "target.h".
16623         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
16624         of using spu_builtins[].fndecl.
16625
16626 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16627
16628         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
16629         imply -minterlink-mips16.
16630
16631 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16632
16633         * config/mips/mips.h (mips16_globals): Declare.
16634         (SWITCHABLE_TARGET): Define.
16635         * config/mips/mips.c: Include target-globals.h.
16636         (mips16_globals): New variable.
16637         (mips_set_mips16_mode): Use save_target_globals and
16638         restore_target_globals instead of target_reinit.
16639
16640 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16641
16642         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
16643         to say that the function can be called more than once.
16644         * target-globals.c (save_target_globals): Call init_reg_sets.
16645
16646 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16647
16648         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
16649         * bb-reorder.h: New file.
16650         * bb-reorder.c (default_target_bb_reorder): New variable.
16651         (this_target_bb_reorder): New conditional variable.
16652         (uncond_jump_length): Redefine as a macro.
16653         * target-globals.h (this_target_bb_reorder): Declare.
16654         (target_globals): Add a bb_reorder field.
16655         (restore_target_globals): Copy the bb_reorder field to
16656         this_target_bb-reorder.
16657         * target-globals.c: Include bb-reorder.h.
16658         (default_target_globals): Initialize the bb_reorder field.
16659         (save_target_globals): Likewise.
16660
16661 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16662
16663         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
16664         * gcse.h: New file.
16665         * gcse.c: Include gcse.h.
16666         (default_target_gcse): New variable.
16667         (this_target_gcse): New conditional variable.
16668         (can_copy): Redefine as a macro.
16669         (can_copy_init_p): New macro.
16670         (can_copy_p): Remove can_copy_init_p.
16671         * target-globals.h (this_target_gcse): Declare.
16672         (target_globals): Add a gcse field.
16673         (restore_target_globals): Copy the gcse field to this_target_gcse.
16674         * target-globals.c: Include gcse.h.
16675         (default_target_globals): Initialize the gcse field.
16676         (save_target_globals): Likewise.
16677
16678 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16679
16680         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
16681         and x_ira_prohibited_mode_move_regs_initialized_p.
16682         (ira_prohibited_mode_move_regs): Redefine as a macro.
16683         * ira.c (ira_prohibited_mode_move_regs): Delete.
16684         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
16685
16686 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16687
16688         * reload.h (target_reload): Add x_cached_reg_save_code and
16689         x_cached_reg_restore_code.
16690         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
16691         Redefine as macros.
16692
16693 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16694
16695         * Makefile.in (target-globals.o): Depend on builtins.h.
16696         * builtins.h: New file.
16697         * builtins.c: Include builtins.h.
16698         (default_target_builtins): New variable.
16699         (this_target_builtins): New conditional variable.
16700         (apply_args_mode, apply_result_mode): Redefine as macros.
16701         * target-globals.h (this_target_builtins): Declare.
16702         (target_globals): Add a builtins field.
16703         (restore_target_globals): Copy the builtins field to
16704         this_target_builtins.
16705         * target-globals.c: Include builtins.h.
16706         (default_target_globals): Initialize the builtins field.
16707         (save_target_globals): Likewise.
16708
16709 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16710
16711         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
16712         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
16713         from expmed.c.
16714         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
16715         (alg_hash, alg_hash_used_p): New macros.
16716         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
16717         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
16718         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
16719
16720 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16721
16722         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
16723         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
16724         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
16725         (this_op_costs, costs_classes): Redefine as macros.
16726         (record_reg_classes): Don't take op_costs as a parameter.
16727         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
16728         (scan_one_insn): Update call to record_operand_costs.
16729
16730 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16731
16732         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
16733         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
16734         (target_ira_int): New structure.
16735         (default_target_ira_int): Declare.
16736         (this_target_ira_int): Declare as a variable or define as a macro.
16737         (ira_reg_mode_hard_regset, ira_register_move_cost)
16738         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
16739         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
16740         (prohibited_class_mode_regs, ira_important_classes_num)
16741         (ira_important_classes, ira_reg_class_intersect)
16742         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
16743         (ira_reg_class_union): Redefine as macros.
16744         * ira.h (target_ira): New structure.
16745         (default_target_ira): Declare.
16746         (this_target_ira): Declare as a variable or define as a macro.
16747         (ira_available_class_regs, ira_hard_regno_cover_class)
16748         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
16749         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
16750         (ira_class_hard_regs_num): Redefine as macros.
16751         * ira.c (default_target_ira, default_target_ira_int): New variables.
16752         (this_target_ira, this_target_ira_int): New conditional variables.
16753         (ira_reg_mode_hard_regset, ira_memory_move_cost)
16754         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
16755         (ira_class_subset_p): Delete.
16756         (no_unit_alloc_regs): Redefine as a macro.
16757         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
16758         (ira_class_hard_regs_num, ira_class_hard_reg_index)
16759         (ira_available_class_regs): Delete.
16760         (alloc_reg_class_subclasses): Redefine as a macro.
16761         (ira_reg_class_cover_size, ira_reg_class_cover)
16762         (ira_important_classes_num, ira_important_classes)
16763         (ira_important_class_nums, ira_class_translate): Delete.
16764         (cover_class_order): Document the variable's lifetime.
16765         (reorder_important_classes): Don't set ira_important_class_nums.
16766         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
16767         (ira_reg_class_super_classes, ira_reg_class_union)
16768         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
16769         Delete.
16770         (setup_reg_class_nregs): Don't set ira_max_regs.
16771         (prohibited_class_mode_regs): Delete.
16772         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
16773         (target_globals): Add ira and ira_int fields.
16774         (restore_target_globals): Copy the ira field to this_target_ira
16775         and the ira_int field to this_target_ira_int.
16776         * target-globals.c: Include ira-int.h.
16777         (default_target_globals): Initialize the ira and ira_int fields.
16778         (save_target_globals): Likewise.
16779
16780 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16781
16782         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
16783         * cfgloop.h (target_cfgloop): New structure.
16784         (default_target_cfgloop): Declare.
16785         (this_target_cfgloop): Declare as a variable or define as a macro.
16786         (target_avail_regs, target_clobbered_regs, target_res_regs)
16787         (target_reg_cost, target_spill_cost): Redefine as macros.
16788         * cfgloopanal.c (default_target_cfgloop): New variable.
16789         (this_target_cfgloop): New conditional variable.
16790         (target_avail_regs, target_clobbered_regs, target_res_regs)
16791         (target_reg_cost, target_spill_cost): Delete.
16792         * target-globals.h (this_target_cfgloop): Declare.
16793         (target_globals): Add a cfgloop field.
16794         (restore_target_globals): Copy the cfgloop field to
16795         this_target_cfgloop.
16796         * target-globals.c: Include cfgloop.h.
16797         (default_target_globals): Initialize the cfgloop field.
16798         (save_target_globals): Likewise.
16799
16800 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16801
16802         * regs.h (target_regs): Add x_direct_load, x_direct_store and
16803         x_float_extend_from_mem.
16804         (direct_load, direct_store, float_extend_from_mem): New macros.
16805         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
16806
16807 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16808
16809         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
16810         (target-globals.o): Depend on $(LIBFUNCS_H).
16811         * libfuncs.h: Include hashtab.h.
16812         (libfunc_entry): Moved from optabs.c.
16813         (target_libfuncs): New structure.
16814         (default_target_libfuncs): Declare.
16815         (this_target_libfuncs): Declare as a variable or define as a macro.
16816         (libfunc_table): Redefine as a macro.
16817         * optabs.c (default_target_libfuncs): New variable.
16818         (this_target_libfuncs): New conditional variable.
16819         (libfunc_table): Delete.
16820         (libfunc_entry): Moved to optabs.h.
16821         (libfunc_hash): Redefine as a macro.
16822         (hash_libfunc, eq_libfunc): Fix comments.
16823         (init_optabs): Use libfunc_hash to detect cases where the function
16824         has already been called.  Clear the hash table instead of
16825         recreating it.
16826         * target-globals.h (this_target_libfuncs): Declare.
16827         (target_globals): Add a libfuncs field.
16828         (restore_target_globals): Copy the libfuncs field to
16829         this_target_libfuncs.
16830         * target-globals.c: Include libfuncs.h.
16831         (default_target_globals): Initialize the libfuncs field.
16832         (save_target_globals): Likewise.
16833
16834 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16835
16836         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
16837         in all dependency lists.
16838
16839 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16840
16841         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
16842         * optabs.h (target_optabs): New structure.
16843         (default_target_optabs): Declare.
16844         (this_target_optabs): Declare as a variable or define as a macro.
16845         (optab_table, convert_optab_table, direct_optab_table): Redefine
16846         as macros.
16847         * optabs.c (default_target_optabs): New variable.
16848         (this_target_optabs): New conditional variable.
16849         (optab_table, convert_optab_table, direct_optab_table): Delete.
16850         * target-globals.h (this_target_optabs): Declare.
16851         (target_globals): Add a optabs field.
16852         (restore_target_globals): Copy the optabs field to
16853         this_target_optabs.
16854         * target-globals.c: Include expr.h and optabs.h.
16855         (default_target_globals): Initialize the optabs field.
16856         (save_target_globals): Likewise.
16857
16858 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16859
16860         * flags.h (target_flagstate): Add x_flag_excess_precision.
16861         (flag_excess_precision): Redefine as a macro.
16862         * toplev.c (flag_excess_precision): Delete.
16863
16864 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16865
16866         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
16867         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
16868         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
16869         (no_caller_save_reg_set): Redefine as a macro.
16870         * reload.h (target_reload): Add x_caller_save_initialized_p and
16871         x_regno_save_mode.
16872         (caller_save_initialized_p): Redefine as a macro.
16873         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
16874         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
16875         (regno_save_mode): Redefine as a macro.
16876
16877 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16878
16879         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
16880         * expmed.h: New file.
16881         * expmed.c (default_target_costs): New variable.
16882         (this_target_costs): New conditional variable.
16883         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
16884         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
16885         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
16886         * target-globals.h (this_target_expmed): Declare.
16887         (target_globals): Add a expmed field.
16888         (restore_target_globals): Copy the expmed field to
16889         this_target_expmed.
16890         * target-globals.c: Include expmed.h.
16891         (default_target_globals): Initialize the expmed field.
16892         (save_target_globals): Likewise.
16893
16894 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16895
16896         * Makefile.in (target-globals.o): Depend on reload.h.
16897         * reload.h (target_reload): New structure.
16898         (default_target_reload): Declare.
16899         (this_target_reload): Declare as a variable or define as a macro.
16900         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
16901         * reload1.c (default_target_reload): New variable
16902         (this_target_reload): New conditional variable.
16903         (indirect_symref_ok, double_reg_address_ok): Delete.
16904         (spill_indirect_levels): Redefine as a macro.
16905         * target-globals.h (this_target_reload): Declare.
16906         (target_globals): Add a reload field.
16907         (restore_target_globals): Copy the reload field to
16908         this_target_reload.
16909         * target-globals.c: Include hard-reg-set.h.
16910         (default_target_globals): Initialize the reload field.
16911         (save_target_globals): Likewise.
16912
16913 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16914
16915         * rtl.h (target_rtl): Add x_static_reg_base_value.
16916         * alias.c (static_reg_base_value): Redefine as a macro.
16917
16918 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16919
16920         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
16921         (GTFILES): Remove reginfo.c.
16922         * rtl.h (target_rtl): Add x_top_of_stack.
16923         (top_of_stack): New macro.
16924         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
16925         (top_of_stack): Delete.
16926
16927 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16928
16929         * regs.h (target_regs): Add x_hard_regs_of_mode,
16930         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
16931         x_may_move_out_cost and x_last_mode_for_init_move_cost.
16932         (have_regs_of_mode, contains_reg_of_mode, move_cost)
16933         (may_move_in_cost, may_move_out_cost): Redefine as macros.
16934         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
16935         (may_move_in_cost, may_move_out_cost): Delete.
16936         (last_mode_for_init_move_cost): Redefine as a macro.
16937
16938 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16939
16940         * hard-reg-set.h (target_hard_regs): New structure.
16941         (default_target_hard_regs): Declare.
16942         (this_target_hard_regs): Declare as a variable or define as a macro.
16943         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
16944         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
16945         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
16946         (reg_class_size, reg_class_subclasses, reg_class_subunion)
16947         (reg_class_superunion, reg_names): Redefine as macros.
16948         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
16949         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
16950         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
16951         (reg_class_contents, reg_class_size, reg_class_subclasses)
16952         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
16953         (default_target_hard_regs): New variable
16954         (this_target_hard_regs, initial_call_really_used_regs)
16955         (initial_reg_alloc_order): New conditional variables.
16956         (initial_reg_names): New variable.
16957         (init_reg_sets): Assert that initial_call_really_used_regs,
16958         initial_reg_alloc_order and initial_reg_names
16959         are all the same size as their variable counterparts.  Use them to
16960         initialize those counterparts.
16961         * target-globals.h (this_target_hard_regs): Declare.
16962         (target_globals): Add a hard_regs field.
16963         (restore_target_globals): Copy the hard_regs field to
16964         this_target_hard_regs.
16965         * target-globals.c: Include hard-reg-set.h.
16966         (default_target_globals): Initialize the hard_regs field.
16967         (save_target_globals): Likewise.
16968
16969 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16970
16971         * Makefile.in (target-globals.o): Depend on $(RTL_H).
16972         * rtl.h (target_rtl): New structure.
16973         (default_target_rtl): Declare.
16974         (this_target_rtl): Declare as a variable or define as a macro.
16975         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
16976         Redefine as macros.
16977         * emit-rtl.c (default_target_rtl): New variable.
16978         (this_target_rtl): New conditional variable.
16979         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
16980         (return_address_pointer_rtx): Delete.
16981         (initial_regno_reg_rtx): New macro.
16982         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
16983         (init_emit_regs): Likewise.
16984         * target-globals.h (this_target_rtl): Declare.
16985         (target_globals): Add a rtl field.
16986         (restore_target_globals): Copy the rtl field to this_target_rtl.
16987         * target-globals.c: Include rtl.h.
16988         (default_target_globals): Initialize the rtl field.
16989         (save_target_globals): Likewise.
16990
16991 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16992
16993         * Makefile.in (target-globals.o): Depend on $(REGS_H).
16994         * regs.h (target_reg_modes): New structure.
16995         (default_target_reg_modes): Declare.
16996         (this_target_reg_modes): Declare as a variable or define as a macro.
16997         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
16998         * reginfo.c (default_target_reg_modes): New variable.
16999         (this_target_reg_modes): New conditional variable.
17000         (hard_regno_nregs, reg_raw_mode): Delete.
17001         * target-globals.h (this_target_regs): Declare.
17002         (target_globals): Add a regs field.
17003         (restore_target_globals): Copy the regs field to this_target_regs.
17004         * target-globals.c: Include regs.h.
17005         (default_target_globals): Initialize the regs field.
17006         (save_target_globals): Likewise.
17007
17008 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17009
17010         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
17011         * doc/tm.texi: Regenerate.
17012         * Makefile.in (OBJS-common): Add target-globals.o.
17013         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
17014         and target-globals.h.
17015         (target-globals.o): New rule.
17016         (GTFILES): Include $(srcdir)/target-globals.h.
17017         * defaults.h (SWITCHABLE_TARGET): Define.
17018         * gengtype.c (open_base_files): Add target-globals.h to the
17019         list of includes.
17020         * target-globals.h: New file.
17021         * target-globals.c: Likewise.
17022
17023         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
17024         * flags.h (target_flag_state): New structure.
17025         (default_target_flag_state): Declare.
17026         (this_target_flag_state): Declare as a variable or define as a macro.
17027         (align_loops_log): Redefine as a macro.
17028         (align_loops_max_skip, align_jumps_log): Likewise.
17029         (align_jumps_max_skip, align_labels_log): Likewise.
17030         (align_labels_max_skip, align_functions_log): Likewise.
17031         * toplev.c (default_target_flag_state): New variable.
17032         (this_target_flag_state): New conditional variable.
17033         (align_loops_log): Delete.
17034         (align_loops_max_skip, align_jumps_log): Likewise.
17035         (align_jumps_max_skip, align_labels_log): Likewise.
17036         (align_labels_max_skip, align_functions_log): Likewise.
17037         * target-globals.h (this_target_flag_state): Declare.
17038         (target_globals): Add a flag_state field.
17039         (restore_target_globals): Copy the flag_state field to
17040         this_target_flag_state.
17041         * target-globals.c: Include flags.h.
17042         (default_target_globals): Initialize the flag_state field.
17043         (save_target_globals): Likewise.
17044
17045 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17046
17047         * postreload.c (reg_symbol_ref[]): New.
17048         (move2add_use_add2_insn): New.
17049         (move2add_use_add3_insn): New.
17050         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
17051         (move2add_note_store): Likewise.
17052
17053 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
17054
17055         PR rtl-optimization/44752
17056         * genautomata.c (main): Don't emit an empty file even if there
17057         is no automaton.
17058
17059 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17060
17061         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
17062         ix86_solaris_return_in_memory.
17063         * config/i386-protos.h: Reflect this.
17064         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17065         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17066         Move ...
17067         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
17068
17069 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17070
17071         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
17072         align the stack when it's going to be saved.
17073
17074 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17075
17076         PR pch/14940
17077         * config/host-solaris.c (mmap_fixed): New function.
17078         (sol_gt_pch_get_address): Use it.
17079         (sol_gt_pch_use_address): Likewise.
17080
17081 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17082
17083         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17084         pentiumpro on Solaris 8 and 9/x86.
17085         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
17086         Document SSE/SSE2 support.
17087         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
17088
17089 2010-07-12  Andi Kleen  <ak@linux.intel.com>
17090
17091         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
17092         instead of gcc_assert to print better error message for multiple
17093         prevailing defs.
17094
17095 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
17096
17097         * config/i386/i386.c (ix86_asm_output_function_label): Change format
17098         string placeholder from 0x%x to %#x.
17099         (ix86_code_end): Use putc to output '\n'.
17100         (ix86_print_operand) <case ';'>: Use putc to output ';'.
17101
17102 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
17103
17104         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
17105         in directive -export.
17106
17107 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
17108
17109         * reginfo.h (reg_classes_intersect_p): Change arguments type to
17110         reg_class_t.
17111         * rtl.h (reg_classes_intersect_p): Adjust prototype.
17112
17113         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17114         Remove macros.
17115         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
17116         rs6000_memory_move_cost): Remove
17117         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
17118         TARGET_MEMORY_MOVE_COST): Define.
17119         (rs6000_register_move_cost): Make static. Change arguments type from
17120         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
17121         (rs6000_memory_move_cost): Make static. Change arguments type from
17122         'enum reg_class' to reg_class_t.
17123
17124 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
17125
17126         PR middle-end/42505
17127         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
17128         lookup code into....
17129         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
17130         new functions.
17131         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
17132         * cfgloopanal.c (target_clobbered_regs): Define.
17133         (init_set_costs): Initialize target_clobbered_regs.
17134         (estimate_reg_pressure_cost): Add call_p argument.  When true,
17135         adjust the number of available registers to exclude the
17136         call-clobbered registers.
17137         * cfgloop.h (target_clobbered_regs): Declare.
17138         (estimate_reg_pressure_cost): Adjust declaration.
17139         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
17140         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
17141         (determine_set_costs): Dump target_clobbered_regs.
17142         (loop_body_includes_call): New function.
17143         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
17144         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
17145         call_p flag through.
17146         (best_gain_for_invariant): Likewise.
17147         (find_invariants_to_move): Likewise.
17148         (move_single_loop_invariants): Likewise, using already-computed
17149         has_call field.
17150
17151 2010-07-10  Richard Guenther  <rguenther@suse.de>
17152             Joern Rennecke  <joern.rennecke@embecosm.com>
17153
17154         PR debug/44832
17155         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
17156         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
17157         unless they have DECL_IGNORED_P set.
17158
17159 2010-07-10  Richard Guenther  <rguenther@suse.de>
17160
17161         PR lto/44889
17162         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
17163         helper function.
17164         (gimple_types_compatible_p): Similar to pointed-to
17165         types allow and merge a mix of complete and incomplete aggregate.
17166         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
17167         (iterative_hash_gimple_type): Adjust for that.
17168
17169 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
17170
17171         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
17172
17173 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
17174
17175         PR objc/44140
17176         * config/darwin.c (output_objc_section_asm_op): Save and restore
17177         section when outputting ObjC section list.
17178
17179 2010-07-09  Jan Hubicka  <jh@suse.cz>
17180
17181         * lto-streamer-out.c (produce_symtab): Do not write alias
17182         cgraph/varpool nodes.
17183
17184 2010-07-09  Jan Hubicka  <jh@suse.cz>
17185
17186         * tree-inline.c (declare_return_variable): Fix ICE while
17187         inlining DECL_BY_VALUE function not in SSA form
17188
17189 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
17190
17191         PR tree-optimization/44576
17192         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
17193         New.  Pull out from is_loop_prefetching_profitable to implement
17194         the trip count to ahead ratio heuristic.
17195         (mem_ref_count_reasonable_p): New.  Pull out from
17196         is_loop_prefetching_profitable to implement the instruction to
17197         memory reference ratio heuristic.  Also consider not reasonable if
17198         the memory reference count is above a threshold (to avoid
17199         explosive compilation time.
17200         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
17201         is_loop_prefetching_profitable to implement the instruction to
17202         prefetch ratio heuristic.
17203         (is_loop_prefetching_profitable): Removed.
17204         (loop_prefetch_arrays): Distribute the cost analysis across the
17205         function to allow early exit of the prefetch analysis.
17206         is_loop_prefetching_profitable is splitted into three functions,
17207         with each one called as early as possible.
17208         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
17209         number of memory references in a loop is considered too many.
17210
17211 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
17212
17213         * reload.c (find_reloads): Don't clear badop if we have a winreg
17214         alternative, but not win, and the class only has fixed regs.
17215         * hard-reg-set.h (class_only_fixed_regs): Declare.
17216         * reginfo.c (class_only_fixed_regs): New array.
17217         (init_reg_sets_1): Initialize it.
17218         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
17219         discourage alternatives using the stack pointer.
17220
17221         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
17222
17223         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
17224
17225         * config/arm/arm.md (cbranchqi4): Fix array size.
17226         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
17227         calculating length.
17228
17229 2010-07-09  Richard Guenther  <rguenther@suse.de>
17230
17231         * gimple.c (struct type_fixup_s): New struct and VEC type.
17232         (gimple_register_type_fixups): New static global.
17233         (gimple_queue_type_fixup): New function.
17234         (gimple_types_compatible_p): Queue type fixups instead of
17235         applying them here.
17236         (gimple_register_type): Apply queued fixups for the
17237         canonical type.  Empty the type fixup queue.
17238
17239 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17240
17241         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
17242         * configure: Regenerate.
17243         * config.in: Ditto.
17244
17245 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17246             Denys Vlasenko  <dvlasenk@redhat.com>
17247             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17248
17249         PR tree-optimization/28632
17250         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
17251         (extract_range_from_binary_expr): Further optimize
17252         BIT_AND_EXPR and BIT_IOR_EXPR.
17253
17254 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
17255
17256         * tree-if-conv.c (fold_or_predicates): New.
17257         (add_to_predicate_list): Call it.
17258
17259 2010-07-09  Richard Guenther  <rguenther@suse.de>
17260
17261         PR middle-end/44890
17262         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
17263         if base is a pointer.
17264         * tree-cfg.c (verify_expr): Update MEM_REF checking.
17265
17266 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
17267
17268         PR target/44877
17269         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
17270         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
17271         builtin mask for load/store builtins.
17272
17273 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17274
17275         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
17276         for "lock addl".
17277         * configure: Regenerate.
17278         * config/i386/i386.c (ix86_print_operand) <case ';'>:
17279         Remove TARGET_MACHO.
17280
17281 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
17282
17283         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
17284         default ISA flags.
17285         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
17286
17287 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
17288
17289         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
17290
17291 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17292
17293         * config/picochip/picochip.md (commsTestPort): Emit more
17294         efficient sequence for tstport instruction.
17295
17296 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17297
17298         * config/i386/i386.c (ix86_veclib_handler): Make static.
17299
17300 2010-07-09  Richard Guenther  <rguenther@suse.de>
17301
17302         PR tree-optimization/44852
17303         * tree-ssa-alias.c: Include toplev.h for exact_log2.
17304         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
17305         in MEM_REF.
17306         (indirect_refs_may_alias_p): Likewise.
17307         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
17308
17309 2010-07-09  Richard Guenther  <rguenther@suse.de>
17310
17311         PR tree-optimization/44882
17312         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
17313         sets do conflict.
17314         (vectorizable_load): Likewise.
17315
17316 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
17317
17318         PR target/40657
17319         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
17320         All callers changed.
17321         Handle the case when we're called for the epilogue.
17322         (thumb_unexpanded_epilogue): Use it.
17323         (thumb1_expand_epilogue): Likewise.
17324
17325 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17326
17327         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
17328         both ranges are range_int_cst_p with non-negative minimum,
17329         try harder to derive smaller range.
17330
17331 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17332
17333         * genrecog.c: Include diagnostic-core.h before toplev.h.
17334         * genoutput.c: Likewise.
17335         * genextract.c: Likewise.
17336         * genautomata.c: Likewise.
17337         * genemit.c: Likewise.
17338         * genpeep.c: Likewise.
17339         * genattrtab.c: Likewise.
17340         * genconditions.c: Likewise.
17341         * genpreds.c: Likewise.
17342
17343 2010-07-08  Andi Kleen  <ak@linux.intel.com>
17344
17345         * lto-section-in.c (lto_section_name): Add missing comma.
17346
17347 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
17348
17349         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
17350         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
17351         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
17352         (ia64_override_options): Rename to...
17353         (ia64_option_override): ... this one. Make static.
17354
17355 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17356
17357         PR middle-end/44843
17358         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
17359         pointed-to type of the offset in a MEM_REF to compute the alignment.
17360
17361 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
17362
17363         * final.c (final_scan_insn): Replace
17364         TARGET_UNWIND_INFO macro check by unwind_emit
17365         hook NULL check.
17366         * targhooks.c (default_unwind_emit): Removed.
17367         * targhooks.h (default_unwind_emit): Likewise.
17368         * target.def (unwind_emit): Set default value to NULL.
17369
17370         * config/i386/i386-protos.h (ix86_asm_output_function_label):
17371         New prototype.
17372         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
17373         for NULL fntype argument and allow 64-bit targets.
17374         (ix86_asm_output_function_label): New function.
17375         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
17376         (ix86_handle_fndecl_attribute): Likewise.
17377         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
17378         * doc/doc/tm.texi: Regenerated.
17379         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
17380         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
17381         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
17382         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
17383         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17384         * config/elfos.h: Likewise.
17385         * config/i386/cygming.h: Likewise.
17386         * config/netbsd-aout.h: Likewise.
17387         * config/openbsd.h: Likewise.
17388         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
17389         by ix86_asm_output_function_label function call.
17390         * varasm.c (assemble_start_function): Use
17391         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17392
17393 2010-07-08  Jan Hubicka  <jh@suse.cz>
17394
17395         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
17396         New function.
17397         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
17398         Declare.
17399         * ipa-cp.c (ipcp_estimate_growth): Use it.
17400         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
17401         Likewise.
17402
17403 2010-07-08  Jan Hubicka  <jh@suse.cz>
17404
17405         * tree-inline.c (declare_return_variable): Allocate annotation for new
17406         temporary.
17407
17408 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17409
17410         PR tree-optimization/44710
17411         * tree-if-conv.c (parse_predicate): New.
17412         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
17413         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
17414
17415 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17416
17417         * common.opt (ftree-loop-if-convert): New flag.
17418         * doc/invoke.texi (ftree-loop-if-convert): Documented.
17419         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
17420         when flag_tree_loop_if_convert is set.
17421
17422 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
17423
17424         * config/i386/i386.c: Use short syntax for function calls
17425         through function pointers.
17426         * config/i386/i386.md: Ditto.
17427
17428 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17429
17430         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
17431
17432 2010-07-08  Richard Guenther  <rguenther@suse.de>
17433
17434         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
17435         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
17436
17437 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
17438
17439         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
17440         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
17441         (loc_list_from_tree): Likewise.
17442         (output_loc_operands): Handle outputting DW_OP_const[48]u
17443         with loc->dtprel set.
17444         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
17445
17446 2010-07-08  Jan Hubicka  <jh@suse.cz>
17447
17448         * ipa.c: Include pointer-set.h
17449         (cgraph_externally_visible_p): New attribute ALIASED;
17450         when in LTO, hidden symbols are local unless they are aliased.
17451         (function_and_variable_visibility): Compute aliased nodes;
17452         handle LTO and hidden symbol on functions and vars.
17453         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
17454         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
17455
17456 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17457
17458         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
17459         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17460         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17461         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17462         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17463         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
17464         (ix86_gen_probe_stack_range): Likewise.
17465         (override_options): Set them.
17466         (ix86_target_stack_probe): New function.
17467         (ix86_compute_frame_layout): Force use of push instructions to
17468         save registers if stack checking with probes is enabled.
17469         (get_scratch_register_on_entry): New function.
17470         (release_scratch_register_on_entry): Likewise.
17471         (ix86_adjust_stack_and_probe): Likewise.
17472         (output_adjust_stack_and_probe): Likewise.
17473         (ix86_emit_probe_stack_range): Likewise.
17474         (output_probe_stack_range): Likewise.
17475         (ix86_expand_prologue): Emit stack checking code if static built-in
17476         stack checking is enabled.
17477         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
17478         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
17479         (output_adjust_stack_and_probe): Likewise.
17480         (output_probe_stack_range): Likewise.
17481         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
17482         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
17483         TARGET_STACK_PROBE.
17484         (allocate_stack_worker_64): Likewise.
17485         (allocate_stack): Likewise.
17486         (adjust_stack_and_probe): New insn.
17487         (probe_stack_range): Likewise.
17488
17489 2010-07-08  Richard Guenther  <rguenther@suse.de>
17490
17491         PR tree-optimization/44831
17492         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
17493         a MEM_REF preserving TBAA info of the original dereference.
17494         Dereference the original pointer if the address is not invariant.
17495         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
17496         at least one invariant address that we are going to dereference.
17497
17498 2010-07-08  Richard Guenther  <rguenther@suse.de>
17499
17500         PR tree-optimization/44861
17501         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
17502         information when building MEM_REFs.
17503         (vectorizable_load): Likewise.
17504         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
17505
17506 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17507
17508         * config/sol2-c.c: Do not include diagnostic-core.h.
17509
17510 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17511
17512         PR bootstrap/44768
17513         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
17514         with respect to current_function_decl. Pass decl of the function.
17515         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
17516         * ipa-inline.c (compute_inline_parameters): Pass decl to
17517         estimated_stack_frame_size.
17518
17519 2010-07-08  Richard Guenther  <rguenther@suse.de>
17520
17521         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
17522         New function.
17523         (valueize_refs): Call it.
17524
17525 2010-07-08  Richard Guenther  <rguenther@suse.de>
17526
17527         PR rtl-optimization/44838
17528         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
17529         SSA form do not use pointer equivalence.
17530
17531 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17532
17533         * dwarf2out.c (AT_linkage_name): Delete.
17534         (add_linkage_attr): New function.
17535         (add_linkage_name): Call it to emit the linkage attribute.
17536         (dwarf2out_finish): Likewise.
17537         (move_linkage_attr): Explicitly accept both attribute variants.
17538
17539 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17540
17541         * toplev.h: Do not include diagnostic-core.h.
17542         Include diagnostic-core.h in every file that includes toplev.h.
17543         * c-tree.h: Do not include toplev.h.
17544         * pretty-print.h: Update comment.
17545         * Makefile.in: Update dependencies.
17546         * alias.c: Include diagnostic-core.h in every file that includes
17547         toplev.h.
17548         * attribs.c: Likewise.
17549         * auto-inc-dec.c: Likewise.
17550         * bb-reorder.c: Likewise.
17551         * bt-load.c: Likewise.
17552         * caller-save.c: Likewise.
17553         * calls.c: Likewise.
17554         * cfg.c: Likewise.
17555         * cfganal.c: Likewise.
17556         * cfgbuild.c: Likewise.
17557         * cfgcleanup.c: Likewise.
17558         * cfghooks.c: Likewise.
17559         * cfgloop.c: Likewise.
17560         * combine.c: Likewise.
17561         * config/alpha/alpha.c: Likewise.
17562         * config/arc/arc.c: Likewise.
17563         * config/arm/arm.c: Likewise.
17564         * config/arm/pe.c: Likewise.
17565         * config/avr/avr.c: Likewise.
17566         * config/bfin/bfin.c: Likewise.
17567         * config/cris/cris.c: Likewise.
17568         * config/crx/crx.c: Likewise.
17569         * config/darwin-c.c: Likewise.
17570         * config/darwin.c: Likewise.
17571         * config/fr30/fr30.c: Likewise.
17572         * config/frv/frv.c: Likewise.
17573         * config/h8300/h8300.c: Likewise.
17574         * config/host-darwin.c: Likewise.
17575         * config/i386/i386.c: Likewise.
17576         * config/i386/netware.c: Likewise.
17577         * config/i386/nwld.c: Likewise.
17578         * config/i386/winnt-cxx.c: Likewise.
17579         * config/i386/winnt-stubs.c: Likewise.
17580         * config/i386/winnt.c: Likewise.
17581         * config/ia64/ia64-c.c: Likewise.
17582         * config/ia64/ia64.c: Likewise.
17583         * config/iq2000/iq2000.c: Likewise.
17584         * config/lm32/lm32.c: Likewise.
17585         * config/m32c/m32c-pragma.c: Likewise.
17586         * config/m32c/m32c.c: Likewise.
17587         * config/m32r/m32r.c: Likewise.
17588         * config/m68hc11/m68hc11.c: Likewise.
17589         * config/m68k/m68k.c: Likewise.
17590         * config/mcore/mcore.c: Likewise.
17591         * config/mep/mep-pragma.c: Likewise.
17592         * config/mep/mep.c: Likewise.
17593         * config/mmix/mmix.c: Likewise.
17594         * config/mn10300/mn10300.c: Likewise.
17595         * config/moxie/moxie.c: Likewise.
17596         * config/pa/pa.c: Likewise.
17597         * config/pdp11/pdp11.c: Likewise.
17598         * config/picochip/picochip.c: Likewise.
17599         * config/rs6000/rs6000-c.c: Likewise.
17600         * config/rs6000/rs6000.c: Likewise.
17601         * config/rx/rx.c: Likewise.
17602         * config/s390/s390.c: Likewise.
17603         * config/score/score.c: Likewise.
17604         * config/score/score3.c: Likewise.
17605         * config/score/score7.c: Likewise.
17606         * config/sh/sh.c: Likewise.
17607         * config/sh/symbian-base.c: Likewise.
17608         * config/sh/symbian-c.c: Likewise.
17609         * config/sh/symbian-cxx.c: Likewise.
17610         * config/sol2-c.c: Likewise.
17611         * config/sol2.c: Likewise.
17612         * config/sparc/sparc.c: Likewise.
17613         * config/spu/spu.c: Likewise.
17614         * config/stormy16/stormy16.c: Likewise.
17615         * config/v850/v850-c.c: Likewise.
17616         * config/v850/v850.c: Likewise.
17617         * config/vax/vax.c: Likewise.
17618         * config/vxworks.c: Likewise.
17619         * config/xtensa/xtensa.c: Likewise.
17620         * convert.c: Likewise.
17621         * cse.c: Likewise.
17622         * cselib.c: Likewise.
17623         * dbgcnt.c: Likewise.
17624         * dbxout.c: Likewise.
17625         * ddg.c: Likewise.
17626         * dominance.c: Likewise.
17627         * emit-rtl.c: Likewise.
17628         * explow.c: Likewise.
17629         * expmed.c: Likewise.
17630         * fixed-value.c: Likewise.
17631         * fold-const.c: Likewise.
17632         * fwprop.c: Likewise.
17633         * gcse.c: Likewise.
17634         * ggc-common.c: Likewise.
17635         * ggc-page.c: Likewise.
17636         * ggc-zone.c: Likewise.
17637         * gimple-low.c: Likewise.
17638         * gimplify.c: Likewise.
17639         * graph.c: Likewise.
17640         * haifa-sched.c: Likewise.
17641         * ifcvt.c: Likewise.
17642         * implicit-zee.c: Likewise.
17643         * integrate.c: Likewise.
17644         * ira-build.c: Likewise.
17645         * ira-color.c: Likewise.
17646         * ira-conflicts.c: Likewise.
17647         * ira-costs.c: Likewise.
17648         * ira-lives.c: Likewise.
17649         * ira.c: Likewise.
17650         * lists.c: Likewise.
17651         * loop-doloop.c: Likewise.
17652         * loop-iv.c: Likewise.
17653         * lto-opts.c: Likewise.
17654         * lto-symtab.c: Likewise.
17655         * main.c: Likewise.
17656         * modulo-sched.c: Likewise.
17657         * optabs.c: Likewise.
17658         * params.c: Likewise.
17659         * plugin.c: Likewise.
17660         * postreload-gcse.c: Likewise.
17661         * postreload.c: Likewise.
17662         * predict.c: Likewise.
17663         * profile.c: Likewise.
17664         * real.c: Likewise.
17665         * regcprop.c: Likewise.
17666         * reginfo.c: Likewise.
17667         * regmove.c: Likewise.
17668         * reorg.c: Likewise.
17669         * resource.c: Likewise.
17670         * rtl.c: Likewise.
17671         * rtlanal.c: Likewise.
17672         * sched-deps.c: Likewise.
17673         * sched-ebb.c: Likewise.
17674         * sched-rgn.c: Likewise.
17675         * sdbout.c: Likewise.
17676         * sel-sched-dump.c: Likewise.
17677         * sel-sched-ir.c: Likewise.
17678         * simplify-rtx.c: Likewise.
17679         * stmt.c: Likewise.
17680         * stor-layout.c: Likewise.
17681         * store-motion.c: Likewise.
17682         * targhooks.c: Likewise.
17683         * tree-cfg.c: Likewise.
17684         * tree-cfgcleanup.c: Likewise.
17685         * tree-dump.c: Likewise.
17686         * tree-eh.c: Likewise.
17687         * tree-inline.c: Likewise.
17688         * tree-nomudflap.c: Likewise.
17689         * tree-object-size.c: Likewise.
17690         * tree-optimize.c: Likewise.
17691         * tree-outof-ssa.c: Likewise.
17692         * tree-phinodes.c: Likewise.
17693         * tree-profile.c: Likewise.
17694         * tree-ssa-ccp.c: Likewise.
17695         * tree-ssa-coalesce.c: Likewise.
17696         * tree-ssa-live.c: Likewise.
17697         * tree-ssa-loop-niter.c: Likewise.
17698         * tree-ssa-loop-prefetch.c: Likewise.
17699         * tree-ssa-loop.c: Likewise.
17700         * tree-ssa-structalias.c: Likewise.
17701         * tree-ssa-uninit.c: Likewise.
17702         * tree-ssa.c: Likewise.
17703         * tree-vect-data-refs.c: Likewise.
17704         * tree-vect-loop-manip.c: Likewise.
17705         * tree-vect-loop.c: Likewise.
17706         * tree-vect-patterns.c: Likewise.
17707         * tree-vect-stmts.c: Likewise.
17708         * tree-vrp.c: Likewise.
17709         * varasm.c: Likewise.
17710         * vec.c: Likewise.
17711         * web.c: Likewise.
17712         * xcoffout.c: Likewise.
17713
17714 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
17715
17716         * gengtype.c (write_field_root): New function.
17717         (write_root): Use it.
17718
17719 2010-07-07  Wei Guozhi  <carrot@google.com>
17720
17721         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17722         of lowest bits to lshift/compare): Add a missing line.
17723
17724 2010-07-07  Wei Guozhi  <carrot@google.com>
17725
17726         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17727         of lowest bits to lshift/compare): New.
17728
17729 2010-07-07  Tom Tromey  <tromey@redhat.com>
17730
17731         * doc/tm.texi: Update.
17732         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
17733         Add @hook.
17734         * target.def (want_debug_pub_sections): New hook.
17735         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
17736         * dwarf2out.c (add_pubname_string): Check
17737         targetm.want_debug_pub_sections.
17738         (add_pubname): Likewise.
17739         (add_pubtype): Likewise.
17740
17741 2010-07-07  Jie Zhang  <jie@codesourcery.com>
17742
17743         * genautomata.c (output_automata_list_min_issue_delay_code):
17744         Correctly decompress min_issue_delay.
17745
17746 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17747
17748         PR rtl-optimization/44404
17749         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
17750         possible, use reg_overlap_mentioned_p instead.
17751
17752 2010-07-07  Duncan Sands  <baldrick@free.fr>
17753
17754         PR middle-end/41355
17755         * tree.c (build_function_type_skip_args): Copy the original type using
17756         build_distinct_type_copy rather than copy_node.
17757
17758 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17759
17760         PR target/44850
17761         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
17762         revision 161876.
17763         (ix86_expand_prologue): Likewise.
17764         (ix86_handle_fndecl_attribute): Likewise.
17765         (ix86_asm_declare_function_name): Likewise.
17766         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17767         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17768         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
17769         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
17770         * doc/extend.texi: Likewise.
17771
17772 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17773
17774         PR target/44844
17775         * config/i386/i386.md (rdrand<mode>): Changed to expand to
17776         retry if the carry flag isn't valid.
17777         (rdrand<mode>_1): New.
17778
17779 2010-07-07  Richard Guenther  <rguenther@suse.de>
17780
17781         PR middle-end/44790
17782         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
17783         for expanding the constant offset for MEM_REFs.
17784
17785 2010-07-07  Richard Guenther  <rguenther@suse.de>
17786
17787         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
17788         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
17789         * gimple.h (is_gimple_operand): Remove.
17790         * gimple.c (is_gimple_operand): Likewise.
17791         (walk_gimple_op): Fix wi->val_only setting for calls.
17792         * tree-cfg.c (verify_gimple_call): Fix argument validation.
17793         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
17794         invalid gimple calls.
17795
17796 2010-07-06  Jan Hubicka  <jh@suse.cz>
17797
17798         * lto-cgraph.c (output_cgraph): Add missing declaration.
17799
17800 2010-07-06  Jan Hubicka  <jh@suse.cz>
17801
17802         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
17803         partition.
17804
17805 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
17806
17807         * doc/gimple.texi (GIMPLE_DEBUG): Document.
17808         * doc/rtl.texi (Debug Information): New node.
17809         (NOTE_INSN_VAR_LOCATION): Document.
17810         (debug_insn): Likewise.
17811         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
17812
17813 2010-07-07  Jan Hubicka  <jh@suse.cz>
17814
17815         With parts by Richard Guenther.
17816
17817         PR middle-end/44813
17818         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
17819         for functions passed by reference.
17820         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
17821         in memory when passed by reference.
17822         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
17823         beggining.
17824         * ipa-split.c (split_function): Cleanup way return value is passed;
17825         handle SSA DECL_BY_REFERENCE retvals.
17826         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
17827         DECL_BY_REFERENCE is set.
17828         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
17829         find_what_p_points_to): Handle RESULT_DECL.
17830         * tree-inline.c (declare_return_variable): Get new entry_block argument;
17831         when passing by reference ensure that RESULT_DECL is gimple_val.
17832         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
17833         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
17834
17835 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17836
17837         PR rtl-optimization/44787
17838         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
17839         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
17840
17841 2010-07-06  Jan Hubicka  <jh@suse.cz>
17842
17843         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
17844         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
17845         with body can prevail.
17846         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
17847         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
17848         * cgraph.c (cgraph_get_node_or_alias): New function.
17849         * cgraph.h (cgraph_get_node_or_alias): Declare.
17850
17851 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
17852
17853         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
17854         support.
17855         (ix86_expand_prologue): Likewise.
17856         (ix86_handle_fndecl_attribute): Likewise.
17857         (ix86_asm_declare_function_name): New function for
17858         ASM_DECLARE_FUNCTION_NAME.
17859         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
17860         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
17861         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
17862         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
17863         * doc/extend.texi: Adjust documentation about ms_hook_prologue
17864         attribute.
17865
17866 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17867
17868         * config/i386/i386.md (immediate_operand): New mode attribute.
17869
17870         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
17871         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
17872         using P mode iterator.
17873         (pro_epilogue_adjust_stack_di_2): Rename from
17874         pro_epilogue_adjust_stack_rex64_2.
17875
17876         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
17877
17878 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17879
17880         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
17881         through gen_mov_insv_1 function pointer.
17882         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
17883         gen_truncxf<mode>2 through gen_truncxf function pointer.
17884         (remainder<mode>3): Ditto.
17885         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
17886         (allocate_stack): Call gen_allocate_stack_worker_64 or
17887         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
17888         function pointer.
17889         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
17890         function pointer.
17891
17892 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
17893
17894         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
17895         operand constraint instead of <r><i>m.
17896
17897 2010-07-06  Richard Guenther  <rguenther@suse.de>
17898
17899         PR middle-end/44828
17900         * convert.c (convert_to_integer): Watch out for overflowing
17901         MULT_EXPR as well.
17902
17903 2010-07-05  Jan Hubicka  <jh@suse.cz>
17904
17905         * lto-streamer.c (write_symbol_vec): Rename to ...
17906         (write_symbol) ... this one; write only symbol given and when
17907         present in cache. Sanity check that what is defined is present
17908         in cgraph/varpool with body/finalized decl.
17909         (write_symbols_of_kind): Remove.
17910         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
17911         pairs to produce symtab.
17912         (produce_asm_for_decls): Update call of produce_symtab; don't do so
17913         when doing WPA streaming.
17914
17915 2010-07-05  Jan Hubicka  <jh@suse.cz>
17916
17917         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
17918         function is still available to fold into.
17919
17920 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
17921
17922         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
17923         * function.h (struct_function): Change type of local_decls field
17924         to a VEC.
17925         (add_local_decl): New function.
17926         (FOR_EACH_LOCAL_DECL): New macro.
17927         * cfgexpand.c (init_vars_expansion): Adjust for new type of
17928         cfun->local_decls.
17929         (estimated_stack_frame_size): Likewise.
17930         (expand_used_vars): Likewise.
17931         * cgraphbuild.c (build_cgraph_edges): Likewise.
17932         * function.c (instantiate_decls_1): Likewise.
17933         * ipa-struct-reorg.c (build_data_structure): Likewise.
17934         * ipa-type-escape.c (analyze_function): Likewise.
17935         * lto-streamer-in.c (input_function): Likewise.
17936         * lto-streamer-out.c (output_function): Likewise.
17937         * tree-ssa-live.c (remove_unused_locals): Likewise.
17938         * tree.c (free_lang_data_in_decl): Likewise.
17939         (find_decls_types_in_node): Likewise.
17940         * omp-low.c (remove_exit_barrier): Likewise.
17941         (expand_omp_taskreg): Likewise.
17942         (list2chain): Rename to...
17943         (vec2chain): ...this.  Adjust.
17944         * cgraphunit.c (assemble_thunk): Call add_local_decl.
17945         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
17946         * gimple-low.c (record_vars_into): Likewise.
17947         * tree-inline.c (remap_decls): Likewise.
17948         (declare_return_variable): Likewise.
17949         (declare_inline_vars): Likewise.
17950         (copy_forbidden): Adjust for new type of cfun->local_decls.
17951         (add_local_variables): New function.
17952         (expand_call_inline): Call it.
17953         (tree_function_versioning): Likewise.
17954
17955 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
17956
17957         AVX Programming Reference (June, 2010)
17958         * config/i386/cpuid.h (bit_F16C): New.
17959         (bit_RDRND): Likewise.
17960         (bit_FSGSBASE): Likewise.
17961
17962         * config/i386/i386-builtin-types.def: Add
17963         "DEF_FUNCTION_TYPE (UINT16)", function types for
17964         float16 <-> float conversions and
17965         "DEF_FUNCTION_TYPE (VOID, UINT64)".
17966
17967         * config/i386/i386-c.c (ix86_target_macros_internal): Support
17968         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
17969         OPTION_MASK_ISA_F16C.
17970
17971         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
17972         (OPTION_MASK_ISA_RDRND_SET): Likewise.
17973         (OPTION_MASK_ISA_F16C_SET): Likewise.
17974         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
17975         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
17976         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
17977         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
17978         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
17979         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
17980         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
17981         (override_options): Handle them.
17982         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
17983         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
17984         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
17985         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
17986         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
17987         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
17988         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
17989         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
17990         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
17991         (bdesc_args): Likewise.
17992         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
17993         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
17994         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
17995         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
17996         Handle non-memory store.
17997
17998         * config/i386/i386.h (TARGET_FSGSBASE): New.
17999         (TARGET_RDRND): Likewise.
18000         (TARGET_F12C): Likewise.
18001
18002         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
18003         (UNSPEC_VCVTPS2PH): Likewise.
18004         (UNSPECV_RDFSBASE): Likewise.
18005         (UNSPECV_RDGSBASE): Likewise.
18006         (UNSPECV_WRFSBASE): Likewise.
18007         (UNSPECV_WRGSBASE): Likewise.
18008         (UNSPECV_RDRAND): Likewise.
18009         (rdfsbase<mode>): Likewise.
18010         (rdgsbase<mode>): Likewise.
18011         (wrfsbase<mode>): Likewise.
18012         (wrgsbase<mode>): Likewise.
18013         (rdrand<mode>): Likewise.
18014
18015         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
18016
18017         * config/i386/immintrin.h (_rdrand_u16): New.
18018         (_rdrand_u32): Likewise.
18019         (_readfsbase_u32): Likewise.
18020         (_readfsbase_u64): Likewise.
18021         (_readgsbase_u32): Likewise.
18022         (_readgsbase_u64): Likewise.
18023         (_writefsbase_u32): Likewise.
18024         (_writefsbase_u64): Likewise.
18025         (_writegsbase_u32): Likewise.
18026         (_writegsbase_u64): Likewise.
18027         (_rdrand_u64): Likewise.
18028         (_cvtsh_ss): Likewise.
18029         (_mm_cvtph_ps): Likewise.
18030         (_mm256_cvtph_ps): Likewise.
18031         (_cvtss_sh): Likewise.
18032         (_mm_cvtps_ph): Likewise.
18033         (_mm256_cvtps_ph): Likewise.
18034
18035         * config/i386/sse.md (vcvtph2ps): New.
18036         (*vcvtph2ps_load): Likewise.
18037         (vcvtph2ps256): Likewise.
18038         (vcvtps2ph): Likewise.
18039         (*vcvtps2ph): Likewise.
18040         (*vcvtps2ph_store): Likewise.
18041         (vcvtps2ph256): Likewise.
18042
18043         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
18044
18045         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
18046
18047 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18048
18049         PR bootstrap/44512
18050         * genenums.c (main): Output include of insn-constants.h
18051         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
18052
18053 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
18054
18055         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
18056         (override_options): Initialize it.
18057         (ix86_expand_prologue): Use it.
18058
18059 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18060
18061         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
18062
18063 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18064
18065         * double-int.h (fit_double_type): Remove declaration.
18066         * double-int.c (fit_double_type): Remove function.
18067         * tree.h (int_fits_type_p): Adjust prototype.
18068         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
18069         instead of fit_double_type.
18070         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
18071         instead of fit_double_type and build_int_cst_wide.
18072         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
18073         instead of fit_double_type and build_int_cst_wide.
18074         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
18075         of fit_double_type.
18076
18077 2010-07-05  Jan Hubicka  <jh@suse.cz>
18078
18079         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
18080         in_other_partition.
18081         * lto-cgraph.c (referenced_from_other_partition_p,
18082         reachable_from_other_partition_p): Use in_other_partition flags.
18083         (output_node, output_varpool_node): COMDAT nodes always have private
18084         copies and thus are never used from other partition.
18085
18086 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18087
18088         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
18089         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
18090         * config/ia64/ia64.c Include reload.h.
18091         (ia64_memory_move_cost): New function.
18092         (TARGET_MEMORY_MOVE_COST): Define.
18093         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
18094         memory_move_cost.
18095
18096 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
18097
18098         PR middle-end/42505
18099         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
18100         comments about cost model.
18101         (try_add_cand_for):  Add second strategy for choosing initial set
18102         based on original IVs, controlled by ORIGINALP argument.
18103         (get_initial_solution): Add ORIGINALP argument.
18104         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
18105         (find_optimal_iv_set): Try two different strategies for choosing
18106         the IV set, and return the one with lower cost.
18107
18108 2010-07-05  Richard Guenther  <rguenther@suse.de>
18109
18110         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
18111
18112 2010-07-05  Richard Guenther  <rguenther@suse.de>
18113
18114         * tree.c (reference_alias_ptr_type): New function.
18115         * tree.h (reference_alias_ptr_type): Declare.
18116         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
18117         allow non-TARGET_MEM_REF new refs.
18118         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
18119         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
18120         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
18121         (create_mem_ref): Get alias pointer type.  Adjust calls to
18122         create_mem_ref_raw.
18123         (maybe_fold_tmr): Likewise.
18124         * tree-flow.h (create_mem_ref): Adjust prototype.
18125
18126 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18127
18128         PR c++/44808
18129         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
18130         *from_p is VAR_DECL.
18131
18132 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18133
18134         * tree.h (build_call_list): Remove.
18135         * tree.c (build_call_list): Remove.
18136
18137 2010-07-05  Richard Guenther  <rguenther@suse.de>
18138
18139         * double-int.h (double_int_sub): Declare.
18140         * double-int.c (double_int_sub): New function.
18141         * dwarf2out.c (field_byte_offset): Use it.
18142         * fixed-value.c (do_fixed_add): Likewise.
18143         (do_fixed_multiply): Likewise.
18144         (do_fixed_divide): Likewise.
18145         * tree-predcom.c (add_ref_to_chain): Likewise.
18146         (determine_roots_comp): Likewise.
18147         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
18148
18149 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18150
18151         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
18152         implementations.
18153
18154 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
18155
18156         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
18157         * arm-modes.def (CC_NOTB): Don't define.
18158         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
18159         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
18160         (LTUGEU): New code_iterator.
18161         (cnb, optab): New corresponding code_attrs.
18162         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
18163         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
18164         using LTUGEU.
18165         (addsi3_carryin_shift_<optab>): Likewise.
18166         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
18167         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
18168         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
18169         (subsi3_compare): Renamed from subsi3_compare0_c.
18170         Change CC_NOTB to CC.
18171         (arm_subsi3_insn): Allow constants for operand 0.
18172         (compare_scc peephole for eq case): New.
18173         (compare_scc splitters): Change CC_NOTB to CC.
18174
18175 2010-07-05  Richard Guenther  <rguenther@suse.de>
18176
18177         * tree-ssa-loop-im.c (for_each_index): Do not handle
18178         ALIGN_INDIRECT_REF.
18179         (gen_lsm_tmp_name): Likewise.
18180         * tree-dump.c (dequeue_and_dump): Likewise.
18181         * tree-pretty-print.c (dump_generic_node): Likewise.
18182         (op_code_prio): Likewise.
18183         (op_symbol_code): Likewise.
18184         * tree.c (staticp): Likewise.
18185         (build1_stat): Likewise.
18186         * tree.h (INDIRECT_REF_P): Likewise.
18187         * fold-const.c (maybe_lvalue_p): Likewise.
18188         (operand_equal_p): Likewise.
18189         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
18190         (ao_ref_init_from_vn_reference): Likewise.
18191         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
18192         (find_interesting_uses_address): Likewise.
18193         * dwarf2out.c (loc_list_from_tree): Likewise.
18194         * gimplify.c (gimplify_expr): Likewise.
18195         * tree-eh.c (tree_could_trap_p): Likewise.
18196         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18197         * cfgexpand.c (expand_debug_expr): Likewise.
18198         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18199         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
18200         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
18201         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
18202         * tree-ssa-operands.c (get_expr_operands): Likewise.
18203         * expr.c (safe_from_p): Likewise.
18204         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
18205         * tree-vect-data-refs.c (vect_setup_realignment): Build
18206         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
18207         * tree-vect-stmts.c (vectorizable_load): Likewise.
18208         * tree.def (ALIGN_INDIRECT_REF): Remove.
18209
18210 2010-07-05  Richard Guenther  <rguenther@suse.de>
18211
18212         PR tree-optimization/44784
18213         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
18214         for inserted stmts.
18215         (find_or_generate_expression): Fix SCCVN insertion check.
18216
18217 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18218
18219         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
18220         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
18221         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
18222         directives.
18223
18224 2010-07-05  Ira Rosen  <irar@il.ibm.com>
18225
18226         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
18227         statements that are not vectorized.
18228         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
18229         in INSIDE_COST.
18230
18231 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
18232
18233         PR bootstrap/44820
18234         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
18235
18236 2010-07-05  Richard Guenther  <rguenther@suse.de>
18237
18238         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
18239         RESULT_DECLs properly.
18240
18241 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
18242
18243         PR rtl-optimization/44695
18244         * config/i386/i386.md (extract_code): Removed.
18245         (<u>divmodqi4): Likewise.
18246         (divmodqi4): New.
18247         (udivmodqi4): Likewise.
18248         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
18249         (udivmodhiqi3): Likewise.
18250
18251 2010-07-04  Jan Hubicka  <jh@suse.cz>
18252
18253         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
18254
18255 2010-07-04  Jan Hubicka  <jh@suse.cz>
18256
18257         * cgraphunit.c (init_cgraph): Only initialize dump file if it
18258         is not already initialized.
18259
18260 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18261
18262         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
18263         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
18264         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
18265         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
18266         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
18267         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
18268         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
18269         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
18270         (sync_new_nand_optab): Redefine as macros.
18271         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
18272         Delete.
18273         (direct_optab_index): New enum.
18274         (direct_optab_d): New structure.
18275         (direct_optab): New typedef.
18276         (direct_optab_table): Declare.
18277         (direct_optab_handler, set_direct_optab_handler): New functions.
18278         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
18279         (sync_lock_release_optab): New macros.
18280         * optabs.c (direct_optab_table): New variable.
18281         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
18282         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
18283         cmpstr_optab and cmpstrn_optab.
18284         (emit_conditional_move): Likewise for movcc_optab.
18285         (can_conditionally_move_p): Likewise for movcc_gen_code.
18286         (init_insn_codes): Clear direct_optab_table.
18287         (init_optabs): Don't initialize the new "direct optabs" here.
18288         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
18289         vcond_gen_code.
18290         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
18291         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
18292         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
18293         (expand_sync_operation): Likewise other sync_*_optabs.
18294         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
18295         to sync_compare_and_swap_optab.
18296         (expand_sync_lock_test_and_set): Use direct_optab_handler for
18297         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
18298         to the names of both.
18299         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
18300         cmpstr_optab and cmpstrn_optab.
18301         (expand_builtin_lock_release): Likewise sync_lock_release.
18302         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
18303         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
18304         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
18305         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
18306         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
18307         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
18308         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
18309         (sync_lock_test_and_set, sync_lock_release): Delete.
18310         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
18311         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
18312         * genopinit.c (optabs): Use set_direct_optab_handler for the new
18313         macro optabs.
18314         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
18315         the "optab" local variable.  Use direct_optab_handler for optab and
18316         sync_compare_and_swap_optab.
18317         * reload1.c (reload_in_optab, reload_out_optab): Delete.
18318         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
18319         reload_in_optab and reload_out_optab.
18320         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
18321         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
18322         * config/pa/pa.c (pa_secondary_reload): Likewise.
18323         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
18324         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
18325         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
18326         (VMSupportsCS8_builtin): Likewise.
18327
18328 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18329
18330         * optabs.h (optab_handlers): Change type of insn_code to int.
18331         (optab_handler, set_optab_handler, convert_optab_handler)
18332         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
18333         CODE_FOR_nothing".
18334         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
18335         (init_insn_codes): Zero both the above arrays.
18336         (init_optabs): Never call init_insn_codes first time around.
18337
18338 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18339
18340         * optabs.h (optab_handler, convert_optab_handler): Turn into
18341         inline functions that return an insn code.
18342         (set_optab_handler, set_convert_optab_handler): New functions.
18343         * builtins.c: Replace optab_handler(X)->insn_code with
18344         optab_handler or set_optab_handler thoughout.  Likewise
18345         convert_optab_handler(X)->insn_code with convert_optab_handler
18346         and set_convert_optab_handler.
18347         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
18348         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
18349         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
18350         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
18351         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
18352         config/spu/spu.c: Likewise.
18353
18354 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18355
18356         PR target/44531
18357         * config.gcc (sh*-*-*): Use regular expressions instead of
18358         the 'i' modifier for sed substitutions.
18359
18360 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
18361
18362         * gimple.c (gimple_body): Comments added.
18363
18364 2010-07-04  Richard Guenther  <rguenther@suse.de>
18365
18366         PR middle-end/44809
18367         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
18368         of an INDIRECT_REF.
18369
18370 2010-07-04  Richard Guenther  <rguenther@suse.de>
18371
18372         PR tree-optimization/44479
18373         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
18374         extra SSA name copy statements which preserves points-to
18375         information.
18376         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18377         Copy points-to information for all pointers.  Properly handle
18378         MEM_REFs.
18379         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
18380         copy statements.
18381         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
18382         dependency.
18383
18384 2010-07-04  Richard Guenther  <rguenther@suse.de>
18385
18386         PR middle-end/44785
18387         * tree-inline.c (initialize_inlined_parameters): Do not
18388         re-use pointer-map slot over remap_type call.
18389
18390 2010-07-04  Richard Guenther  <rguenther@suse.de>
18391
18392         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
18393
18394 2010-07-04  Richard Guenther  <rguenther@suse.de>
18395
18396         PR tree-optimization/44656
18397         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
18398         again after value-replacing in the defintions lhs.
18399
18400 2010-07-04  Ira Rosen  <irar@il.ibm.com>
18401             Revital Eres  <eres@il.ibm.com>
18402
18403         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
18404         Document new arguments.
18405         * doc/tm.texi: Regenerate.
18406         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
18407         Handle unaligned store.
18408         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
18409         * target.def (builtin_vectorization_cost): Add new arguments.
18410         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
18411         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
18412         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
18413         (vect_vfa_segment_size): Fix indentation.
18414         * tree-vectorizer.h (struct _vect_peel_info): New.
18415         (struct _vect_peel_extended_info): New.
18416         (struct _loop_vec_info): Add new field for peeling hash table and a
18417         macro for its access.
18418         (VECT_MAX_COST): Define.
18419         (vect_get_load_cost): Declare.
18420         (vect_get_store_cost, vect_get_known_peeling_cost,
18421         vect_get_single_scalar_iteraion_cost): Likewise.
18422         (vect_supportable_dr_alignment): Add new argument.
18423         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
18424         field.
18425         (destroy_loop_vec_info): Free peeling hash table.
18426         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
18427         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
18428         vect_analyze_slp. Fix indentation.
18429         (vect_get_single_scalar_iteraion_cost): New function.
18430         (vect_get_known_peeling_cost): Likewise.
18431         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
18432         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
18433         statement. Move outside cost calculation inside unknown peeling case.
18434         Call vect_get_known_peeling_cost for known amount of peeling.
18435         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
18436         reference to the print message of forced alignment.
18437         (vect_verify_datarefs_alignment): Update call to
18438         vect_supportable_dr_alignment.
18439         (vect_get_data_access_cost): New function.
18440         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
18441         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
18442         vect_peeling_hash_choose_best_peeling): Likewise.
18443         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
18444         to store all the accesses in the loop and find best possible access to
18445         align using peeling for known alignment case. For unknown alignment
18446         check if stores are preferred or if peeling is worthy.
18447         (vect_find_same_alignment_drs): Analyze pairs of loads too.
18448         (vect_supportable_dr_alignment): Add new argument and check aligned
18449         accesses according to it.
18450         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
18451         (cost_for_stmt): Call vect_get_stmt_cost.
18452         (vect_model_simple_cost): Likewise.
18453         (vect_model_store_cost): Call vect_get_stmt_cost. Call
18454         vect_get_store_cost to calculate the cost of the statement.
18455         (vect_get_store_cost): New function.
18456         (vect_model_load_cost): Call vect_get_stmt_cost. Call
18457         vect_get_load_cost to calculate the cost of the statement.
18458         (vect_get_load_cost): New function.
18459         (vectorizable_store): Update call to vect_supportable_dr_alignment.
18460         (vectorizable_load): Likewise.
18461         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
18462         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
18463         arguments. Handle unaligned store.
18464         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
18465         (rs6000_builtin_support_vector_misalignment): Return true for word and
18466         double word alignments for VSX.
18467         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
18468         vect_supportable_dr_alignment and builtin_vectorization_cost.
18469
18470 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18471
18472         PR target/44597
18473         * config/pa/predicates.md (prefetch_cc_operand): Remove.
18474         (prefetch_nocc_operand): Likewise.
18475         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
18476         (prefetch_20): New insn.
18477         (prefetch_cc): Remove.
18478         (prefetch_nocc): Likewise.
18479
18480 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18481
18482         * expr.c (vector_mode_valid_p): Move to c-common.c.
18483         * expr.h (vector_mode_valid_p): Do not declare here.
18484         * system.h: Poison GCC_EXPR_H in front-ends.
18485         * Makefile.in: Update dependencies.
18486
18487 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18488
18489         PR target/44705
18490         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
18491
18492 2010-07-03  Jan Hubicka  <jh@suse.cz>
18493
18494         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
18495         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
18496         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
18497         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
18498         Likewise.
18499
18500         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
18501         Update timevars.V
18502         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
18503         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
18504         TV_IPA_LTO_DECL_OUT): New.
18505         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
18506
18507 2010-07-03  Jan Hubicka  <jh@suse.cz>
18508
18509         * ipa-inline.c (update_edge_key): Break out from ...
18510         update_callers_keys): ... here;
18511         (update_callee_keys): Update only the edges from caller to callee.
18512         (update_all_calle_keys): Do what update_calle_keys did.
18513         (decide_inlining_of_small_functions): Avoid recomputing of all
18514         callees when badness increase.
18515
18516 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18517
18518         * config/arm/arm.c (arm_attr_length_move_neon): New.
18519         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
18520         * config/arm/neon.md (define_mode_attr V_slen): Remove.
18521         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
18522         to compute length attribute.
18523
18524 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18525
18526         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
18527         as predicate for operand 1 and remove its constraint.
18528         * config/arm/predicates.md (vfp_register_operand): New.
18529         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
18530         (*push_fp_multi): Likewise.
18531
18532 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
18533
18534         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
18535
18536 2010-07-03  Jan Hubicka  <jh@suse.cz>
18537
18538         * config/i386/i386.c (override_options): Revert accidental commit.
18539
18540 2010-07-02  Le-Chun Wu  <lcwu@google.com>
18541
18542         PR c++/44128
18543         * doc/invoke.texi: Update documentation of -Wshadow.
18544
18545 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
18546             Julian Brown  <julian@codesourcery.com>
18547             Sandra Loosemore  <sandra@codesourcery.com>
18548
18549         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
18550         comparisons.  Adjust to take both operands.
18551         (arm_select_cc_mode): Handle DImode comparisons.
18552         (arm_gen_compare_reg): Generate a scratch register for DImode
18553         comparisons which require one.  Use xor for Thumb equality checks.
18554         (arm_const_double_by_immediates): New.
18555         (arm_print_operand): Allow 'Q' and 'R' for constants.
18556         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
18557         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
18558         arm_canonicalize_comparison.
18559         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
18560         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
18561         prototype.
18562         (arm_const_double_by_immediates): Declare.
18563         * config/arm/constraints.md (Di): New constraint.
18564         * config/arm/predicates.md (arm_immediate_di_operand)
18565         (arm_di_operand, cmpdi_operand): New.
18566         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
18567         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
18568         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
18569         (cstoredi4): Handle non-Cirrus also.
18570
18571 2010-07-02  Julian Brown  <julian@codesourcery.com>
18572             Sandra Loosemore  <sandra@codesourcery.com>
18573
18574         PR target/43703
18575         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
18576         (smax<mode>3): Disable for NEON float modes when
18577         flag_unsafe_math_optimizations is false.
18578         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
18579         (*mul<mode>3_neon)
18580         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
18581         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
18582         for NEON float modes when flag_unsafe_math_optimizations is false.
18583         (quad_halves_<code>v4sf): Only enable if
18584         flag_unsafe_math_optimizations is true.
18585         * doc/invoke.texi (ARM Options): Add note about floating point
18586         vectorization requiring -funsafe-math-optimizations.
18587
18588 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18589             Julian Brown  <julian@codesourcery.com>
18590
18591         * config/arm/neon.md (UNSPEC_VABA): Delete.
18592         (UNSPEC_VABAL): Delete.
18593         (UNSPEC_VABS): Delete.
18594         (UNSPEC_VMUL_N): Delete.
18595         (adddi3_neon): New.
18596         (subdi3_neon): New.
18597         (mul<mode>3add<mode>_neon): Make the pattern named.
18598         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
18599         (neon_vadd<mode>): Replace with define_expand, and move the remaining
18600         unspec parts...
18601         (neon_vadd<mode>_unspec): ...to this.
18602         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
18603         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
18604         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
18605         (neon_vaba<mode>): Rewrite in terms of vabd.
18606         (neon_vabal<mode>): Rewrite in terms of vabdl.
18607         (neon_vabs<mode>): Rewrite without unspec.
18608         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
18609         (*arm_subdi3): Likewise.
18610         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
18611         No_op attribute to disable assembly output checks.
18612         * config/arm/arm_neon.h: Regenerated.
18613         * doc/arm-neon-intrinsics.texi: Regenerated.
18614
18615 2010-07-02  Jan Hubicka  <jh@suse.cz>
18616
18617         * ipa-split.c (split_function): For aggregate values, set the return
18618         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
18619         *<retval> = fncall.part ().
18620         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
18621
18622 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18623
18624         * config/arm/neon.md (UNSPEC_VAND): Delete.
18625         (UNSPEC_VBIC): Delete.
18626         (UNSPEC_VCLZ): Delete.
18627         (UNSPEC_VCNT): Delete.
18628         (UNSPEC_VEOR): Delete.
18629         (UNSPEC_VORN): Delete.
18630         (UNSPEC_VORR): Delete.
18631         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
18632         core registers too.
18633         (anddi3_neon): Likewise.
18634         (orndi3_neon): Likewise.
18635         (bicdi3_neon): Likewise.
18636         (xordi3_neon): Likewise.
18637         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
18638         rid of unspec and handle unused operand.
18639         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
18640         * config/arm/predicates.md (imm_for_neon_logic_operand):
18641         Require TARGET_NEON.
18642         (imm_for_neon_inv_logic_operand): Likewise.
18643         * config/arm/arm.md (define_split for logical_binary_operator):
18644         Disable for NEON registers.
18645         (anddi3): Add new define_expand, and rename the insn.  Disable
18646         this insn for NEON, where anddi3_neon now applies.
18647         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
18648         (iordi3): As for anddi3.
18649         (xordi3): Likewise.
18650         * config/arm/neon.ml (Vand): Split DImode variants and mark them
18651         as No_op to disable testing for exact instruction match.
18652         (Vorr): Likewise.
18653         (Veor): Likewise.
18654         (Vbic): Likewise.
18655         (Vorn): Likewise.
18656         * config/arm/arm_neon.h: Regenerated.
18657         * doc/arm-neon-intrinsics.texi: Regenerated.
18658
18659 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18660
18661         * expr.h (emit_stack_probe): Declare.
18662         * explow.c (emit_stack_probe): Make global.
18663         (anti_adjust_stack_and_probe): Fix comments.
18664         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18665         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18666         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18667         * config/sparc/sparc.c: Include except.h.
18668         (sparc_emit_probe_stack_range): New function.
18669         (output_probe_stack_range): Likewise.
18670         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
18671         built-in stack checking is enabled.
18672         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
18673         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18674         (probe_stack_range): New insn.
18675
18676 2010-07-02  Richard Guenther  <rguenther@suse.de>
18677
18678         PR target/43958
18679         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
18680         for argument alignment.
18681
18682 2010-07-02  Jan Hubicka  <jh@suse.cz>
18683
18684         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
18685         walk backwards from entry_bb to check only those basic block of header
18686         that might lead to execution of split part.
18687         (consider_split) ... here.
18688         (find_return_bb): Allow assignment in return BB.
18689         (find_retval): New.
18690         (split_function): Fix name of cloned function; take care of updating
18691         return value in return_bb containing move.
18692
18693 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
18694
18695         PR target/44771
18696         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
18697         used variable insn.
18698
18699 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18700
18701         * implicit-zee.c (combine_reaching_defs): Fix long lines.
18702         (is_set_with_extension_DI): Delete.
18703         (struct zero_extend_info): New structure.
18704         (add_removable_zero_extend): New function.
18705         (find_removable_zero_extends): Use note_stores to find SETs.
18706         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
18707
18708 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18709
18710         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
18711         is_miss_rate_acceptable. Pull total_positions computation
18712         out of the loops.  Early return if miss_positions exceeds
18713         the acceptable threshold.
18714         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
18715         is_miss_rate_acceptable after renaming of compute_miss_rate.
18716
18717 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18718
18719         PR middle-end/44576
18720         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
18721         of 1000) for miss rate if the address diference is greater than or
18722         equal to the cache line size (the two reference will never hit the
18723         same cache line).
18724
18725 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
18726
18727         PR target/42835
18728         * config/arm/arm-modes.def (CC_NOTB): New mode.
18729         * config/arm/arm.c (get_arm_condition_code): Handle it.
18730         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
18731         * config/arm/arm.md (subsi3_compare0_c): New pattern.
18732         (compare_scc): Now a define_and_split.  Add a number of extra
18733         splitters before it.
18734
18735         PR target/42172
18736         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
18737         and ZERO_EXTEND.
18738         (arm_rtx_costs_1): Likewise.
18739         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
18740         * config/arm/arm.md (is_arch6): New attribute.
18741         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
18742         extendqisi2): Tighten the code somewhat, avoiding invalid
18743         RTL to occur in the expander patterns.
18744         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
18745         (thumb1_zero_extendhisi2_v6): Delete.
18746         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
18747         (thumb1_extendhisi2_v6): Delete.
18748         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
18749         (thumb1_extendqisi2_v6): Delete.
18750         (zero_extendhisi2 for register input splitter): New.
18751         (zero_extendqisi2 for register input splitter): New.
18752         (thumb1_extendhisi2 for register input splitter): New.
18753         (extendhisi2 for register input splitter): New.
18754         (extendqisi2 for register input splitter): New.
18755         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
18756         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
18757         and add support for a register alternative requiring a split.
18758         (thumb1_zero_extendqisi2): Likewise.
18759         (arm_zero_extendqisi2): Likewise.
18760         (arm_extendhisi2): Likewise.
18761         (arm_extendqisi2): Likewise.
18762
18763 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18764
18765         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
18766         instead of an unspec.
18767         (neon_expand_vector_init): Likewise.
18768         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
18769         (UNSPEC_VDUP_LANE): Delete.
18770         (UNSPEC VDUP_N): Delete.
18771         (UNSPEC_VGET_HIGH): Delete.
18772         (UNSPEC_VGET_LANE): Delete.
18773         (UNSPEC_VGET_LOW): Delete.
18774         (UNSPEC_VMVN): Delete.
18775         (UNSPEC_VSET_LANE): Delete.
18776         (V_double_vector_mode): New.
18777         (vec_set<mode>_internal): Make code emitted match that for the
18778         corresponding intrinsics.
18779         (vec_setv2di_internal): Likewise.
18780         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
18781         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
18782         (neon_vset_lane<mode>): Combine double and quad patterns and
18783         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
18784         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
18785         (neon_vdup_n<mode>): Rewrite RTL without unspec.
18786         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
18787         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
18788         with neon_vdup_lanev2di, adjusting the pattern from the latter
18789         to be predicable for consistency.
18790         (neon_vdup_lane<mode>_internal): New.
18791         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
18792         to avoid using an unspec.
18793         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
18794         (neon_vdup_lanev2di): Turn into a define_expand.
18795         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
18796         (neon_vget_high<mode>): Replace with....
18797         (neon_vget_highv16qi): New pattern using canonical RTL.
18798         (neon_vget_highv8hi): Likewise.
18799         (neon_vget_highv4si): Likewise.
18800         (neon_vget_highv4sf): Likewise.
18801         (neon_vget_highv2di): Likewise.
18802         (neon_vget_low<mode>): Replace with....
18803         (neon_vget_lowv16qi): New pattern using canonical RTL.
18804         (neon_vget_lowv8hi): Likewise.
18805         (neon_vget_lowv4si): Likewise.
18806         (neon_vget_lowv4sf): Likewise.
18807         (neon_vget_lowv2di): Likewise.
18808
18809         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
18810         test for this emitting vmov.
18811         (Vset_lane): Likewise.
18812         (Vdup_n): Likewise.
18813         (Vmov_n): Likewise.
18814
18815         * doc/arm-neon-intrinsics.texi: Regenerated.
18816
18817 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18818
18819         * config/arm/neon.md (vec_extractv2di): Correct error in register
18820         numbering to reconcile with neon_vget_lanev2di.
18821
18822 2010-07-02  Richard Guenther  <rguenther@suse.de>
18823
18824         * tree-ssa-structalias.c (pt_solution_set_var): New function.
18825         * tree-ssa-alias.h (pt_solution_set_var): Declare.
18826         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
18827         points-to information.
18828
18829 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
18830
18831         * config/s390/s390.c (override_options): Adopt prefetching
18832         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
18833
18834 2010-07-02  Jan Hubicka  <jh@suse.cz>
18835
18836         * df-problems.c (df_kill_notes): Do not collect dead  notes.
18837         (df_set_note): Just call add_reg_note.
18838         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
18839         df_create_unused_note): Do not deal with lists of old notes.
18840         (df_note_bb_compute): Likewise.
18841
18842 2010-07-02  Richard Guenther  <rguenther@suse.de>
18843
18844         * tree-ssa-structalias.c (find_func_aliases): Handle
18845         pointer alignment via BIT_AND_EXPR.
18846         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
18847
18848 2010-07-02  Richard Guenther  <rguenther@suse.de>
18849
18850         * tree-data-ref.c (initialize_data_dependence_relation): Handle
18851         mismatching number of dimensions properly.
18852
18853 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18854
18855         PR target/44707
18856         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
18857         (lo_sum (high ...) ...) patterns generated by earlier passes.
18858
18859 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18860
18861         * doc/install.texi (Prerequisites): Document Perl requirement on
18862         Solaris 2.
18863         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
18864
18865 2010-07-02  Richard Guenther  <rguenther@suse.de>
18866
18867         PR middle-end/44777
18868         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
18869
18870 2010-07-02  Jan Hubicka  <jh@suse.cz>
18871
18872         PR middle-end/44706
18873         * predict.c (predict_paths_for_bb): Handle case when control dependence
18874         BB has only abnormal edges.
18875
18876 2010-07-02  Richard Guenther  <rguenther@suse.de>
18877
18878         PR tree-optimization/44748
18879         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
18880         the embedded conversion in MEM_REFs.
18881
18882 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
18883
18884         * reload.c: Include toplev.h.
18885         * recog.c:  Likewise.
18886         * Makefile.in: Adjust dependencies.
18887
18888 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
18889
18890         PR debug/44694
18891         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
18892         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
18893
18894 2010-07-01  Richard Guenther  <rguenther@suse.de>
18895
18896         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
18897         types for offsets.
18898
18899 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
18900
18901         PR target/44732
18902         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
18903         Fix argument types.
18904
18905 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
18906
18907         PR target/44727
18908         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
18909         Make sure operand 0 dies.
18910
18911 2010-07-01  Richard Guenther  <rguenther@suse.de>
18912
18913         PR middle-end/42834
18914         PR middle-end/44468
18915         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
18916         * doc/generic.texi (References to storage): Document MEM_REF.
18917         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
18918         (print_call_name): Likewise.
18919         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
18920         (build_simple_mem_ref_loc): New function.
18921         (mem_ref_offset): Likewise.
18922         * tree.h (build_simple_mem_ref_loc): Declare.
18923         (build_simple_mem_ref): Define.
18924         (mem_ref_offset): Declare.
18925         * fold-const.c: Include tree-flow.h.
18926         (operand_equal_p): Handle MEM_REF.
18927         (build_fold_addr_expr_with_type_loc): Likewise.
18928         (fold_comparison): Likewise.
18929         (fold_unary_loc): Fold
18930         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
18931         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
18932         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
18933         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
18934         (ptr_deref_may_alias_ref_p_1): Likewise.
18935         (ao_ref_base_alias_set): Properly differentiate base object for
18936         offset and TBAA.
18937         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
18938         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
18939         (indirect_refs_may_alias_p): Likewise.
18940         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
18941         chasing code.
18942         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
18943         (call_may_clobber_ref_p_1): Likewise.
18944         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
18945         * expr.c (expand_assignment): Handle MEM_REF.
18946         (store_expr): Handle MEM_REFs from STRING_CSTs.
18947         (store_field): If expanding a MEM_REF of a non-addressable
18948         decl use bitfield operations.
18949         (get_inner_reference): Handle MEM_REF.
18950         (expand_expr_addr_expr_1): Likewise.
18951         (expand_expr_real_1): Likewise.
18952         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
18953         * alias.c (ao_ref_from_mem): Handle MEM_REF.
18954         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
18955         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
18956         (dr_analyze_indices): Likewise.
18957         (dr_analyze_alias): Likewise.
18958         (object_address_invariant_in_loop_p): Likewise.
18959         * gimplify.c (mark_addressable): Handle MEM_REF.
18960         (gimplify_cond_expr): Build MEM_REFs.
18961         (gimplify_modify_expr_to_memcpy): Likewise.
18962         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
18963         (gimple_fold_indirect_ref): Adjust.
18964         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
18965         * tree.def (MEM_REF): New tree code.
18966         * tree-dfa.c: Include toplev.h.
18967         (get_ref_base_and_extent): Handle MEM_REF.
18968         (get_addr_base_and_unit_offset): New function.
18969         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
18970         * gimple-fold.c (may_propagate_address_into_dereference): Handle
18971         MEM_REF.
18972         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
18973         accesses if the array has just one dimension.  Remove always true
18974         parameter.  Do not require type compatibility here.
18975         (maybe_fold_offset_to_component_ref): Remove.
18976         (maybe_fold_stmt_indirect): Remove.
18977         (maybe_fold_reference): Remove INDIRECT_REF handling.
18978         Fold back to non-MEM_REF.
18979         (maybe_fold_offset_to_address): Simplify.  Deal with type
18980         mismatches here.
18981         (maybe_fold_reference): Likewise.
18982         (maybe_fold_stmt_addition): Likewise.  Also handle
18983         &ARRAY + I in addition to &ARRAY[0] + I.
18984         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
18985         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
18986         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
18987         * tree-ssa.c (useless_type_conversion_p): Make most pointer
18988         conversions useless.
18989         (warn_uninitialized_var): Handle MEM_REF.
18990         (maybe_rewrite_mem_ref_base): New function.
18991         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
18992         to SSA form.
18993         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
18994         INDIRECT_REF handling.
18995         (copy_tree_body_r): Handle MEM_REF.
18996         * gimple.c (is_gimple_addressable): Adjust.
18997         (is_gimple_address): Likewise.
18998         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
18999         invariant base are invariant.
19000         (is_gimple_min_lval): Adjust.
19001         (is_gimple_mem_ref_addr): New function.
19002         (get_base_address): Handle MEM_REF.
19003         (count_ptr_derefs): Likewise.
19004         (get_base_loadstore): Likewise.
19005         * gimple.h (is_gimple_mem_ref_addr): Declare.
19006         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
19007         * tree-cfg.c (verify_address): New function, split out from ...
19008         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
19009         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
19010         INDIRECT_REFs.
19011         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
19012         INDIRECT_REF.  Allow conversions.
19013         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
19014         a register does not change its size.
19015         (verify_types_in_gimple_reference): Verify MEM_REF.
19016         (verify_gimple_assign_single): Disallow INDIRECT_REF.
19017         Handle MEM_REF.
19018         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
19019         New.
19020         (mark_address_taken): Handle MEM_REF.
19021         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
19022         (get_asm_expr_operands): Pass opf_not_non_addressable.
19023         (get_expr_operands): Handle opf_[not_]non_addressable.
19024         Handle MEM_REF.  Remove INDIRECT_REF handling.
19025         * tree-vrp.c (check_array_ref): Handle MEM_REF.
19026         (search_for_addr_array): Likewise.
19027         (check_array_bounds): Likewise.
19028         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
19029         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
19030         (ref_always_accessed_p): Likewise.
19031         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
19032         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
19033         Handle MEM_REF.
19034         * cgraphbuild.c (mark_load): Properly check for NULL result
19035         from get_base_address.
19036         (mark_store): Likewise.
19037         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
19038         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
19039         handling for MEM_REF.
19040         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
19041         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
19042         * builtins.c (stabilize_va_list_loc): Use the function ABI
19043         valist type if we couldn't canonicalize the argument type.
19044         Always dereference with the canonical va-list type.
19045         (maybe_emit_free_warning): Handle MEM_REF.
19046         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
19047         memmove to memcpy.
19048         * builtins.c (fold_builtin_memory_op): Use ref-all types
19049         for all memcpy foldings.
19050         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
19051         (build_outer_var_ref): Likewise.
19052         (scan_omp_1_op): Likewise.
19053         (lower_rec_input_clauses): Likewise.
19054         (lower_lastprivate_clauses): Likewise.
19055         (lower_reduction_clauses): Likewise.
19056         (lower_copyprivate_clauses): Likewise.
19057         (expand_omp_atomic_pipeline): Likewise.
19058         (expand_omp_atomic_mutex): Likewise.
19059         (create_task_copyfn): Likewise.
19060         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
19061         Remove old union trick.  Initialize constant offsets.
19062         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
19063         INDIRECT_REF.  Init base_alias_set properly.
19064         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
19065         (vn_reference_fold_indirect): Adjust for MEM_REFs.
19066         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
19067         for ARRAY_REFs.
19068         (may_insert): Remove.
19069         (visit_reference_op_load): Do not test may_insert.
19070         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
19071         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
19072         a field to store the constant offset this op applies.
19073         (run_scc_vn): Adjust prototype.
19074         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
19075         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
19076         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
19077         bother about volatile qualifiers on pointers.
19078         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
19079         * tree-ssa-loop-ivopts.c
19080         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
19081         (strip_offset_1): Likewise.
19082         (find_interesting_uses_address): Replace INDIRECT_REF handling with
19083         MEM_REF handling.
19084         (get_computation_cost_at): Likewise.
19085         * ipa-pure-const.c (check_op): Handle MEM_REF.
19086         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
19087         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
19088         and constants.
19089         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
19090         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
19091         (eliminate_local_variables_1): Likewise.
19092         (create_call_for_reduction_1): Likewise.
19093         (create_loads_for_reductions): Likewise.
19094         (create_loads_and_stores_for_name): Likewise.
19095         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
19096         (ssa_accessed_in_tree): Handle MEM_REF.
19097         (ssa_accessed_in_assign_rhs): Likewise.
19098         (update_type_size): Likewise.
19099         (analyze_accesses_for_call_stmt): Likewise.
19100         (analyze_accesses_for_assign_stmt): Likewise.
19101         (transform_access_sites): Likewise.
19102         (transform_allocation_sites): Likewise.
19103         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
19104         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
19105         not handle INDIRECT_REF.
19106         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
19107         (cond_store_replacement): Likewise.
19108         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
19109         MEM_REF, no not handle INDIRECT_REFs.
19110         (insert_into_preds_of_block): Properly initialize avail.
19111         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
19112         for ARRAY_REFs.  Properly handle reference lookups that
19113         require a bit re-interpretation.
19114         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
19115         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
19116         (build_ref_for_offset_1): Remove.
19117         (build_ref_for_offset): Build MEM_REFs.
19118         (gate_intra_sra): Disable for now.
19119         (sra_ipa_modify_expr): Handle MEM_REF.
19120         (ipa_early_sra_gate): Disable for now.
19121         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
19122         MEM_REF handling.
19123         (disqualify_base_of_expr): Likewise.
19124         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
19125         MEM_REF handling.
19126         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
19127         Use mem_ref_offset.  Remove bogus folding.
19128         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
19129         (make_fancy_name_1): Add support for MEM_REF.
19130         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
19131         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
19132         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
19133         (compute_complex_ancestor_jump_func): Likewise.
19134         (ipa_analyze_virtual_call_uses): Likewise.
19135         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
19136         INDIRECT_REF folding with more generalized MEM_REF folding.
19137         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
19138         (forward_propagate_addr_into_variable_array_index): Also handle
19139         &ARRAY + I in addition to &ARRAY[0] + I.
19140         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
19141         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
19142         creates assignments with overlap.
19143         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
19144         (get_frame_field): Likewise.
19145         (get_nonlocal_debug_decl): Likewise.
19146         (convert_nonlocal_reference_op): Likewise.
19147         (struct nesting_info): Add mem_refs pointer-set.
19148         (create_nesting_tree): Allocate it.
19149         (convert_local_reference_op): Insert to be folded mem-refs.
19150         (fold_mem_refs): New function.
19151         (finalize_nesting_tree_1): Perform defered folding of mem-refs
19152         (free_nesting_tree): Free the pointer-set.
19153         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
19154         (vectorizable_load): Likewise.
19155         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
19156         (propagate_with_phi): Likewise.
19157         * tree-object-size.c (addr_object_size): Handle MEM_REFs
19158         instead of INDIRECT_REFs.
19159         (compute_object_offset): Handle MEM_REF.
19160         (plus_stmt_object_size): Handle MEM_REF.
19161         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
19162         for &MEM_REF.
19163         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
19164         (symbol_marked_for_renaming): Likewise.
19165         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
19166         (fold-const.o): Add $(TREE_FLOW_H).
19167         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
19168         (find_func_clobbers): Likewise.
19169         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
19170         (decompose_access): Likewise.
19171         (replace_field_acc): Likewise.
19172         (replace_field_access_stmt): Likewise.
19173         (insert_new_var_in_stmt): Likewise.
19174         (get_stmt_accesses): Likewise.
19175         (reorg_structs_drive): Disable.
19176         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
19177         (ix86_canonical_va_list_type): Likewise.
19178
19179 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
19180
19181         PR other/44566
19182         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
19183         * target.def (struct gcc_target): Replace enum reg_class with
19184         reg_class_t in hook argument / return types.
19185         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
19186         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
19187         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
19188         * targhooks.h (default_branch_target_register_class): Likewise.
19189         (default_ira_cover_classes, default_secondary_reload): Likewise.
19190         (default_memory_move_cost, default_register_move_cost): Likewise.
19191         * targhooks.c (default_branch_target_register_class): Likewise.
19192         (default_ira_cover_classes, default_secondary_reload): Likewise.
19193         (default_memory_move_cost, default_register_move_cost): Likewise.
19194         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
19195         * bt-load.c (branch_target_load_optimize): Likewise.
19196         * ira.c (setup_cover_and_important_classes): Likewise.
19197         * ira-costs.c (copy_cost): Likewise.
19198         * reload1.c (emit_input_reload_insns): Likewise.
19199         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19200         * config/frv/frv.c (frv_secondary_reload): Likewise.
19201         * config/s390/s390.c (s390_secondary_reload): Likewise.
19202         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
19203         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
19204         (ix86_register_move_cost): Likewise.
19205         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
19206         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
19207         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
19208         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
19209         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
19210         (rs6000_ira_cover_classes): Likewise.
19211         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
19212         * config/picochip/picochip-protos.h (picochip_secondary_reload):
19213         Likewise.
19214         * config/pa/pa.c (pa_secondary_reload): Likewise.
19215         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
19216         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
19217         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
19218         * doc/tm.texi: Regenerate.
19219
19220 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
19221
19222         PR bootstrrap/44726
19223         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
19224         use.
19225         (build_alias_set_optimal_p): Likewise.
19226         (build_base_obj_set_for_drs): Likewise.
19227
19228 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
19229
19230         * target.def: Remove comment about licensing problems of function
19231         declarations.
19232
19233         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
19234         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
19235         * doc/tm.texi: Regenerate.
19236
19237         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
19238         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
19239
19240         * target.def (enum_va_list_p): Use DEFHOOK.
19241         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
19242         Rename ptype to ptree.
19243         * doc/tm.texi: Regenerate.
19244
19245         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
19246         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
19247         * doc/tm.texi: Regenerate.
19248
19249         * target.def (memory_move_cost): Use DEFHOOK.
19250         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
19251         Rename regclass AKA class to rclass.
19252         * doc/tm.texi: Regenerate.
19253
19254         * target.def (pragma_parse): Use DEFHOOK.
19255         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
19256         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
19257         * doc/tm.texi: Regenerate.
19258
19259         * target.def (pass_by_reference): Use DEFHOOK.
19260         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
19261         * doc/tm.texi: Regenerate.
19262
19263         * target.def (resolve_overloaded_builtin): Rename params to arglist.
19264         Use DEFHOOK.
19265         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
19266         * doc/tm.texi: Regenerate.
19267
19268         * target.def (return_pops_args): Use DEFHOOK.
19269         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
19270         Rename stack-size to size.
19271         * doc/tm.texi: Regenerate.
19272
19273         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
19274         last-sched_cycle to last_clock, cur_cycle to clock.
19275         * doc/tm.texi.in: Use @hook.
19276         * doc/tm.texi: Regenerate.
19277
19278         * target.def (print_operand, print_operand_address): Update comment.
19279         (print_operand_punct_valid_p): Likewise.
19280
19281 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19282
19283         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
19284         to rtl.h.
19285         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
19286         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
19287         * rtl-error.h: New.
19288         * regrename.c: Do not include toplev.h. Include rtl-error.h.
19289         * rtl-error.c: Likewise.
19290         * reload.c: Likewise.
19291         * recog.c:  Likewise.
19292         * sel-sched.c: Likewise.
19293         * function.c: Likewise.
19294         * reg-stack.c: Likewise.
19295         * cfgrtl.c: Likewise.
19296         * reload1.c: Likewise.
19297         * final.c: Include rtl-error.
19298         * Makefile.in: Adjust dependencies.
19299
19300 2010-06-30  Jan Hubicka  <jh@suse.cz>
19301
19302         PR middle-end/PR44706
19303         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
19304         to return the value.
19305
19306 2010-06-30  Michael Matz  <matz@suse.de>
19307
19308         PR bootstrap/44699
19309         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
19310         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
19311         a gimple reg, attach the original VDEF to the last store in the
19312         sequence.
19313
19314 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
19315
19316         PR other/44034
19317         * config/darwin.c (darwin_override_options): Use renamed
19318         targetm.asm_out.emit_unwind_label.
19319
19320 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19321
19322         PR tree-optimization/39799
19323         * tree-inline.c (remap_ssa_name): Initialize variable only if
19324         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
19325
19326 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
19327
19328         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
19329
19330 2010-06-30  Richard Guenther  <rguenther@suse.de>
19331
19332         PR target/44722
19333         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
19334         against oscillation with reverse peephole2.
19335
19336 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
19337
19338         PR target/44721
19339         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19340         Fix last commit.
19341
19342 2010-06-30  Nick Clifton  <nickc@redhat.com>
19343
19344         * config/rx/rx-modes.def: New file.
19345         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
19346         (CC_REGNUM): Define.
19347         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
19348         register.
19349         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
19350         (SELECT_CC_MODE): Define.
19351         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
19352         (reg:CC CC_REG) instead of (cc0).
19353         (attr "cc"): Delete.
19354         (cbranchsi4): Do not split compare and branch here. Instead move
19355         it to...
19356         (cbranchsi4_<code>): ... here.  New patterns.
19357         (cmpsi): Call rx-compare_redundant to find out if it is necessary
19358         to emit the compare instruction.
19359         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
19360         cc_status flags.
19361         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
19362         FIRST_PSEUDO_REGNUM.
19363         (rx_expand_prologue, rx_expand_epilogue): Likewise.
19364         (rx_notice_update_cc): Delete.
19365         (rx_cc_modes_compatible): New function.
19366         (flags_needed_for_conditional): New function.
19367         (flags_from_mode): New function.
19368         (rx_compare_redundant): New function - scans backwards through
19369         insn list to find out if condition flags are already set correctly.
19370         (TARGET_CC_MODES_COMPATIBLE): Define.
19371         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
19372
19373         * config/rx/rx.h (BRANCH_COST): Define.
19374         (REGISTER_MOVE_COST): Define.
19375         * config/rx/predicates (rx_source_operand): Allow all constant types.
19376         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
19377         (tstsi4): New pattern.
19378         * config/rx/rx.c (rx_memory_move_cost): Define.
19379         (TARGET_MEMORY_MOVE_COST): Define.
19380
19381 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19382
19383         * tree.h (block_may_fallthru): Declare here.
19384         * tree-flow.h (block_may_fallthru): Do not declare here.
19385         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
19386         bitmap.h
19387         * Makefile.in (c-typeck.o): Update dependencies.
19388
19389 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
19390
19391         PR debug/44694
19392         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
19393         * cselib.c (cfa_base_preserved_regno): New static variable.
19394         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
19395         of REGNO (cfa_base_preserved_val->locs->loc).
19396         (cselib_preserve_cfa_base_value): Add regno argument, set
19397         cfa_base_preserved_regno to it.
19398         (cselib_invalidate_regno): Allow removal of registers other than
19399         cfa_base_preserved_regno from cfa_base_preserved_val.
19400         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
19401         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
19402         of MEM addresses, if not on LHS.
19403         (reverse_op): Don't add reverse ops for cfa_base_rtx.
19404         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
19405
19406 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19407
19408         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
19409         static variables.
19410         (peep2_buf_position): New static function.
19411         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
19412         peephole2_optimize): Use it.
19413         (peep2_attempt, peep2_update_life): New static functions, broken out
19414         of peephole2_optimize.
19415         (peep2_fill_buffer): New static function.
19416         (peephole2_optimize): Change the main loop to try to fill the buffer
19417         with the maximum number of insns before matching them against
19418         peepholes.  Use a forward scan.  Remove special case for targets with
19419         conditional execution.
19420         * genrecog.c (change_state): Delete dead code.
19421         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19422         Rewrite so as not to expect the second insn to have had a peephole
19423         applied yet.
19424
19425 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19426
19427         * genhooks.c (emit_findices): Cast field precision to int.
19428         (emit_documentation): Likewise.
19429
19430 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
19431
19432         PR tree-optimization/43801
19433         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
19434         if old_decl was DECL_ONE_ONLY.
19435
19436         PR debug/44668
19437         * dwarf2out.c (add_accessibility_attribute): New function.
19438         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
19439         instead of adding DW_AT_accessibility manually.
19440         (gen_enumeration_type_die, gen_struct_or_union_type_die,
19441         gen_typedef_die): Use it.
19442
19443 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19444
19445         * vmsdbgout.c (full_name): Just output the file name if not native.
19446
19447 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19448
19449         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
19450         (funcnam_table): New static table.
19451         (funcnum_table): New static table.
19452         (write_rtnbeg): Write value saved in funcnum_table.
19453         (write_rtnend): Write value saved in funcnum_table.
19454         (vmsdbgout_begin_function): Save current function info in
19455         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
19456         (vmsdbgout_finish): Iterate over funcnum_table.
19457
19458 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19459
19460         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
19461         (vmsdbgout_type_decl): Declare
19462         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
19463         (FUNC_EPILOGUE_LABEL): New macro
19464         (vmsdbgout_begin_epilogue): New function.
19465         (vmsdbgout_type_decl): New function.
19466
19467 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19468
19469         * vmsdbg.h: Update copyright.
19470
19471 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19472
19473         * vmsdbg.h (DST_K_TBG): New DST constant.
19474         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
19475         (write_modbeg): Cast module_language to avoid warning.
19476         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
19477
19478 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19479
19480         PR other/44034
19481         * target.def, doc/tm.texi.in, genhooks.c: New files.
19482         * target.h: Instead of defining individual hook members,
19483         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
19484         include target.def.
19485         * target-def.h: Instead of defining individual hook initializers,
19486         include target-hooks-def.h.
19487         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
19488         targetm.live_on_entry -> targetm.extra_live_on_entry
19489         targetm.sched.md_finish ->targetm.sched.finish
19490         targetm.sched.md_init -> targetm.sched.init
19491         targetm.sched.md_init_global -> targetm.sched.init_global
19492         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
19493         targetm.asm_out.except_table_label ->
19494           targetm.asm_out.emit_except_table_label
19495         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
19496         targetm.target_help -> targetm.help
19497         targetm.vectorize.builtin_support_vector_misalignment ->
19498           targetm.vectorize.support_vector_misalignment
19499         targetm.file_start_app_off -> targetm.asm_file_start_app_off
19500         targetm.file_start_file_directive ->
19501          targetm.asm_file_start_file_directive
19502         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
19503         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
19504         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
19505         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
19506           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
19507         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
19508           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
19509         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
19510         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
19511         * Makefile.in (TARGET_H): Depend on target.def.
19512         (TARGET_DEF_H): Depend on target-hooks-def.h.
19513         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
19514         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
19515         * doc/tm.texi: Regenerate.
19516
19517         * Makefile.in (s-tm-texi): Remove stray tab / rule.
19518
19519         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
19520         (targetm.sched.init): Likewise.
19521
19522 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19523
19524         PR bootstrap/44713
19525         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
19526         (function_arg_advance_32): Const-ify TYPE parameter.
19527         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
19528         (ix86_function_arg_advance): Change type of NAMED to bool.
19529         (function_arg_32): Const-ify CUM and TYPE parameters.
19530         (function_arg_64): Likewise.  Change type of NAMED to bool.
19531         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
19532         to bool.
19533         (ix86_function_arg): Change type of NAMED to bool.
19534         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
19535         last argument as a bool.
19536
19537 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19538
19539         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
19540         (OVERRIDE_OPTIONS): Add note of obsolescence.
19541         Replace references with references to TARGET_OPTION_OVERRIDE.
19542         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
19543          the macro).
19544         * targhooks.c (default_target_option_override): New function.
19545         * targhooks.h (default_target_option_override): Declare.
19546         * target.h (struct gcc_target): Add override member to
19547         target_option member.
19548         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
19549         targetm.target_option.override call.
19550         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
19551         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
19552
19553 2010-06-29  Jan Hubicka  <jh@suse.cz>
19554
19555         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
19556
19557 2010-06-29  Jan Hubicka  <jh@suse.cz>
19558
19559         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
19560         unreachable.
19561         (rebuild_frequencies): New function.
19562         * predict.h (rebuild_frequencies): Declare.
19563         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
19564         entry block and edge reaching new_entry.
19565         (tree_function_versioning): When doing partial cloning, rebuild
19566         frequencies when done.
19567         * passes.c (execute_function_todo): Use rebild_frequencies.
19568
19569 2010-06-29  Richard Guenther  <rguenther@suse.de>
19570
19571         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
19572         * tree-flow.h (enum noalias_state): Remove.
19573         (struct var_ann_d): Remove noalias_state member.
19574
19575 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
19576
19577         PR target/43902
19578         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
19579         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
19580         (maddhidi4): Likewise.
19581
19582         Revert parts of the change for PR25130.
19583         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
19584         MEM_ALIAS_SET.
19585
19586 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19587
19588         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
19589         targetm.calls.function_incoming_arg, and
19590         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
19591         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
19592         * target.h (struct gcc_target): Add function_arg_advance,
19593         function_arg, and function_incoming_arg fields.
19594         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
19595         (TARGET_FUNCTION_INCOMING_ARG): Define.
19596         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
19597         and TARGET_FUNCTION_INCOMING_ARG.
19598         * targhooks.h (default_function_arg_advance): Declare.
19599         (default_function_arg, default_function_incoming_arg): Declare.
19600         * targhooks.c (default_function_arg_advance): New function.
19601         (default_function_arg, default_function_incoming_arg): New function.
19602         * config/i386/i386.c (function_arg_advance): Rename to...
19603         (ix86_function_arg_advance): ...this.  Make static.
19604         (function_arg): Rename to...
19605         (ix86_function_arg): ...this.  Make static.
19606         (TARGET_FUNCTION_ARG_ADVANCE): Define.
19607         (TARGET_FUNCTION_ARG): Define.
19608         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
19609         (FUNCTION_ARG): Delete.
19610         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
19611         (function_arg): Delete prototype.
19612
19613 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19614
19615         * reginfo.c (init_reg_sets_1): Adjust comments.
19616         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
19617         * calls.c (prepare_call_address): Likewise.
19618         (emit_call_1): Use targetm.calls.return_pops_args.
19619         (expand_call): Likewise.
19620         * function.c (assign_parms): Likewise.
19621         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
19622         * target.h (struct gcc_target) [struct calls]: Add
19623         return_pops_args field.
19624         * targhooks.h (default_return_pops_args): Declare.
19625         * targhooks.c (default_return_pops_args): Define.
19626         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
19627         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
19628         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
19629         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
19630         documentation.
19631         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
19632         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
19633         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
19634         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
19635         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
19636         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
19637         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
19638         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
19639         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
19640         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
19641         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
19642         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
19643         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
19644         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
19645         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
19646         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
19647         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
19648         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
19649         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
19650         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
19651         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
19652         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
19653         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
19654         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
19655         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
19656         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
19657         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
19658         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
19659         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
19660         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
19661         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
19662         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
19663         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
19664         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
19665         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
19666         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
19667         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
19668         * config/i386/i386.c (ix86_return_pops_args): Make static.
19669         Constify arguments.
19670         (TARGET_RETURN_POPS_ARGS): Define.
19671         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
19672         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
19673         (TARGET_RETURN_POPS_ARGS): Define.
19674         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
19675         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
19676         (TARGET_RETURN_POPS_ARGS): Define.
19677
19678 2010-06-29  Richard Guenther  <rguenther@suse.de>
19679
19680         PR middle-end/44667
19681         * tree-inline.c (initialize_inlined_parameters): Make sure
19682         to remap the inlined parameter variable substitutions types.
19683
19684 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19685
19686         PR rtl-optimization/44659
19687         * combine.c (make_compound_operation) <SUBREG>: Do not return the
19688         result of force_to_mode if it partially re-expanded the compound.
19689
19690 2010-06-28  Jan Hubicka  <jh@suse.cz>
19691
19692         PR middle-end/44671
19693         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
19694         RESULT_DECL.
19695
19696 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
19697
19698         * double-int.h (force_fit_type_double): Remove declaration.
19699         * double-int.c (force_fit_type_double): Move to tree.c.
19700         * tree.h (force_fit_type_double): Declare.
19701         * tree.h (force_fit_type_double): Moved from double-int.c. Use
19702         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
19703         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
19704         * convert.c (convert_to_pointer): Adjust call to
19705         force_fit_type_double.
19706         * tree-vrp.c (extract_range_from_assert,
19707         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
19708         * fold-const.c: Update comment.
19709         (int_const_binop, fold_convert_const_int_from_int,
19710         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
19711         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
19712         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
19713         round_up_loc): Adjust call to force_fit_type_double.
19714
19715 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19716
19717         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
19718
19719 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19720
19721         * tree-sra.c (convert_callers): New parameter, change fndecls of
19722         recursive calls.
19723         (modify_function): Pass the old decl to convert_callers.
19724
19725 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19726
19727         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
19728         ipa_check_create_node_params and ipa_initialize_node_params with
19729         checking asserts they are not necessary.
19730
19731 2010-06-28  Jan Hubicka  <jh@suse.cz>
19732
19733         PR tree-optimization/44687
19734         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
19735
19736 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19737
19738         PR c++/44535
19739         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
19740         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
19741         instead of BINFO_BASE_BINFO.
19742
19743 2010-06-28  Michael Matz  <matz@suse.de>
19744
19745         PR middle-end/44592
19746         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
19747         proper VDEF chain for intermediate stores in the sequence.
19748
19749 2010-06-28  Jan Hubicka  <jh@suse.cz>
19750
19751         PR tree-optimization/44357
19752         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
19753         uninlinable functions.
19754
19755 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19756
19757         * config.gcc (powerpc*-*-*): Handle titan.
19758         * config/rs6000/rs6000.c (titan_cost): New costs.
19759         (rs6000_override_options): Add "titan" to processor_target_table.
19760         Add Titan to branch alignment logic.
19761         Correctly set rs6000_cost for titan.
19762         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
19763         * config/rs6000/titan.md: New file.
19764         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
19765
19766 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19767
19768         * tree-browser.c (TB_history_stack): Convert to a VEC.
19769         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
19770         (TB_history_prev): Likewise.
19771
19772 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19773
19774         * vec.h (vec_heap_free): Add parentheses around free.
19775
19776 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
19777
19778         * system.h: Poison GCC_EXCEPT_H for front-end files.
19779
19780         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
19781         langhook.
19782         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
19783         Define to NULL by default.
19784         * except.h: Define GCC_EXCEPT_H.
19785         (doing_eh): Remove prototype.
19786         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
19787         (lang_protect_cleanup_actions): Remove.
19788         * except.c (lang_protect_cleanup_actions): Remove.
19789         (doing_eh): Remove.
19790         (gen_eh_region): Don't check doing_eh here.
19791         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
19792         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
19793         instead of lang_protect_cleanup_actions.
19794         * omp-low.c (maybe_catch_exception): Likewise.
19795         * Makefile.in: Update dependencies.
19796
19797 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
19798
19799         * cgraph.h (struct varpool_node): new used_from_object_file flag.
19800         (struct cgraph_local_info): new used_from_object_file flag.
19801         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
19802         (cgraph_clone_node): initialize used_from_object_file.
19803         (cgraph_create_virtual_clone): initialize used_from_object_file.
19804         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
19805         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
19806         when compiling with -fwhole-program.
19807         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
19808         internal resolver.
19809         * ipa.c (function_and_variable_visibility): Set externally_visible
19810         flag of varpool_node if used_from_object_file flag is set.
19811         (cgraph_externally_visible_p): check used_from_object_file flag.
19812         * doc/invoke.texi (-fwhole-program option): Change description of
19813         externally_visible attribute accordingly.
19814         * doc/extend.texi (externally_visible): Ditto.
19815
19816 2010-06-27  Jan Hubicka  <jh@suse.cz>
19817
19818         * params.def (max-inline-insns-auto): Default to 40.
19819         * doc/invoke.texi (max-inline-insns-auto): Document the change.
19820
19821 2010-06-27  Jan Hubicka  <jh@suse.cz>
19822
19823         PR middle-end/44671
19824         PR middle-end/44686
19825         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
19826         signature change.
19827         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
19828         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
19829
19830 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
19831
19832         * target.h (struct gcc_target): Add register_move_cost field.
19833         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
19834         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
19835         * targhooks.c (default_register_move_cost): New function.
19836         * targhooks.h (default_register_move_cost): Declare function.
19837         * defaults.h (REGISTER_MOVE_COST): Delete.
19838         * ira-int.h (ira_register_move_cost): Update comment.
19839         * ira.c (ira_register_move_cost): Update comment.
19840         * reload.h (register_move_cost): Declare.
19841         * reginfo.c (register_move_cost): New function.
19842         (move_cost): Update comment.
19843         (init_move_cost, memory_move_secondary_cost): Replace
19844         REGISTER_MOVE_COST with register_move_cost.
19845         * postreload.c (reload_cse_simplify_set): (Ditto.).
19846         * reload.c (find_valid_class, find_reloads): (Ditto.).
19847         * reload1.c (choose_reload_regs): (Ditto.).
19848         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
19849         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
19850         * doc/md.texi (can_create_pseudo_p): Update documentation.
19851
19852         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
19853         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
19854         * config/i386/i386.h (ix86_memory_move_cost): Make static.
19855         (TARGET_MEMORY_MOVE_COST): Define.
19856
19857         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
19858         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
19859         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
19860         (TARGET_MEMORY_MOVE_COST): Define.
19861
19862 2010-06-27  Richard Guenther  <rguenther@suse.de>
19863
19864         PR tree-optimization/44683
19865         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
19866         false edge from the inverted condition.
19867
19868 2010-06-27  Richard Guenther  <rguenther@suse.de>
19869
19870         PR middle-end/44684
19871         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
19872         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
19873         for register LHS.  Or non-store assignments.
19874
19875 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
19876
19877         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
19878         (sparc_emit_set_const64): Likewise.  Remove disabled code.
19879         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
19880         (sparc_emit_set_const64): Likewise.
19881
19882 2010-06-26  Catherine Moore  <clm@codesourcery.com>
19883
19884         * config/mips/mips.md (alu_type): New attribute.
19885         (type): Infer type from alu_type.
19886         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
19887         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
19888         *subsi3_extended, negsi2, negdi2, *low<mode>,
19889         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
19890         xor<mode>3, *nor<mode>3,
19891         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
19892         *zero_extendhi_truncqi):  Set alu_type instead of type.
19893
19894 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
19895
19896         * config/alpha/alpha.c (alpha_need_linkage): Adjust
19897         splay_tree_new_ggc call.
19898         (alpha_use_linkage): Likewise.
19899
19900 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19901
19902         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
19903         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
19904         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
19905         (static_specs): Remove switches_need_spaces.
19906         (process_command, do_self_spec): Hardcode handling "-o" instead of
19907         checking switches_need_spaces.
19908         * system.h (SWITCHES_NEED_SPACES): Poison.
19909
19910 2010-06-26  Richard Guenther  <rguenther@suse.de>
19911
19912         PR tree-optimization/44393
19913         * tree-loop-distribution.c (generate_loops_for_partition): Fix
19914         stmt removal and VOP renaming.
19915         (generate_memset_zero): Remove redundant stmt updating.
19916         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
19917         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
19918
19919 2010-06-26  Jan Hubicka  <jh@suse.cz>
19920
19921         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
19922         edges comming from header are equivalent.
19923         (visit_bb): Handle PHIs correctly.
19924         * tree-inline.c (copy_phis_for_bb): Be able to copy
19925         PHI from entry edge.
19926         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
19927
19928 2010-06-26  Richard Guenther  <rguenther@suse.de>
19929
19930         PR middle-end/44674
19931         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
19932         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
19933
19934 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
19935
19936         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
19937         add_infile, alloc_switch): New.
19938         (process_command): Remove variable lang_n_infiles.  Process
19939         options in a single pass.  Use new functions for allocating
19940         infiles and switches arrays.  Properly skip operands of
19941         -Xpreprocessor and -Xassembler.
19942
19943 2010-06-26  Jan Hubicka  <jh@suse.cz>
19944
19945         PR middle-end/44671
19946         * cgraphunit.c (cgraph_function_versioning): Remove wrong
19947         cgraph_make_decl_local call; fix typo copying RTL data.
19948
19949 2010-06-25  DJ Delorie  <dj@redhat.com>
19950
19951         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
19952         (m32c_output_aligned_common): Likewise.
19953         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
19954         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
19955         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
19956         (m32c_register_pragmas): Register it.
19957         * config/m32c/m32c.c (m32c_get_pragma_address): New.
19958         (m32c_insert_attributes): Set #pragma address decls volatile.
19959         (pragma_entry_eq): New.
19960         (pragma_entry_hash): New.
19961         (m32c_note_pragma_address): New.
19962         (m32c_get_pragma_address): New.
19963         (m32c_output_aligned_common): New.
19964         * doc/extend.texi: Document the new pragma.
19965
19966         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
19967         also.
19968         * config/m32c/predicates.md (m32c_any_operand): Check the code
19969         instead of memory_operand so as to allow matching volatile MEMs.
19970         (m32c_nonimmediate_operand): Likewise.
19971         (mra_operand): Allow volatiles.
19972
19973 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
19974
19975         PR debug/44610
19976         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
19977         address if the offset is unknown.
19978
19979 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
19980
19981         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
19982         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
19983         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
19984         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
19985         to ia64_start_function. Invoke it.
19986         * config/ia64/ia64.c (ia64_start_function): Call new function
19987         dwarf2out_vms_debug_main_pointer.
19988
19989 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19990
19991         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
19992         statements computing the true predicate.
19993
19994 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
19995
19996         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
19997         to boolean_true_node.
19998         (reset_bb_predicate): New.
19999         (predicate_bbs): Call reset_bb_predicate.
20000
20001 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20002
20003         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
20004         (tree_if_conversion): Returns true when something has been changed.
20005         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
20006         changed something.
20007
20008 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20009
20010         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
20011         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
20012         * tree-if-conv.c: Include dbgcnt.h.
20013         (tree_if_conversion): Use if_conversion_tree to count the number of
20014         if-convertible loops.
20015
20016 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
20017
20018         * common.opt (fprefetch-loop-arrays): Re-define
20019         -fprefetch-loop-arrays as a tri-state option with the initial
20020         value of -1.
20021         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
20022         pass only when flag_prefetch_loop_arrays > 0.
20023         * toplev.c (process_options): Note that, with tri-states,
20024         flag_prefetch_loop_arrays>0 means prefetching is enabled.
20025         * config/i386/i386.c (override_options): Enable prefetching at -O3
20026         for a set of CPUs that sw prefetching is helpful.
20027         (software_prefetching_beneficial_p): New.  Return TRUE if software
20028         prefetching is beneficial for the given CPU.
20029
20030 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
20031
20032         PR rtl-optimization/44326
20033         * implicit-zee.c (find_removable_zero_extends): Replace
20034         INSN_P with NONDEBUG_INSN_P.
20035
20036 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20037
20038         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
20039         (struct ipa_node_params): Removed the modification_analysis_done flag.
20040         (ipa_is_param_modified): Removed.
20041         (ipa_analyze_node): Declare.
20042         (ipa_compute_jump_functions): Remove declaration.
20043         (ipa_count_arguments): Likewise.
20044         (ipa_detect_param_modifications): Likewise.
20045         (ipa_analyze_params_uses): Likewise.
20046         * ipa-prop.c (struct param_analysis_info): New type.
20047         (visit_store_addr_for_mod_analysis): Removed.
20048         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
20049         moved down in the file.
20050         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
20051         (ipa_count_arguments): Made static.
20052         (mark_modified): New function.
20053         (is_parm_modified_before_call): New function.
20054         (compute_pass_through_member_ptrs): New parameter parms_info, call
20055         is_parm_modified_before_call instead of ipa_is_param_modified.
20056         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
20057         it to compute_pass_through_member_ptrs.
20058         (ipa_compute_jump_functions): New parameter parms_info, pass it to
20059         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
20060         on the callee if it is analyzed.  Made static.
20061         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
20062         is_parm_modified_before_call instead of ipa_is_param_modified.
20063         (ipa_analyze_call_uses): New parameter parms_info, pass it to
20064         ipa_analyze_indirect_call_uses.
20065         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
20066         ipa_analyze_call_uses.
20067         (ipa_analyze_params_uses): New parameter parms_info, pass it to
20068         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
20069         (ipa_analyze_node): New function.
20070         (ipa_print_node_params): Do not dump the modified flag.
20071         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
20072         it.  Do not stream the modified parameter flag.
20073         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
20074         it.  Do not stream the modified parameter flag.
20075         * ipa-cp.c (ipcp_analyze_node): Removed.
20076         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
20077         with only a call to ipa_analyze_node.
20078         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
20079         node with only a call to ipa_analyze_node.
20080
20081 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20082
20083         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
20084
20085 2010-06-25  Jan Hubicka  <jh@suse.cz>
20086
20087         * tree-pass.h (pass_split_functions): Declare.
20088         * opts.c (decode_options): Enable function splitting at -O2
20089         * timevar.def (TV_IPA_FNSPLIT): New macro.
20090         * ipa-split.c: New file.
20091         * common.opt (-fpartial-inlining): New flag.
20092         * Makefile.in (ipa-split.o): New object file.
20093         * passes.c (init_optimization_passes): Add ipa-split.
20094         * params.def (partial-inlining-entry-probability): New parameters.
20095         * doc/invoke.texi (-fpartial-inlining): New.
20096
20097 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20098
20099         PR 44665
20100         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
20101         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
20102         (gimplify_expr): Likewise.
20103
20104 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20105
20106         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
20107         statements instead of bailing out on them.
20108         (ipa_analyze_indirect_call_uses): Do not require that loads from the
20109         parameter are in the same BB as the condition.  Update comments.
20110
20111 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
20112
20113         PR middle-end/43866
20114         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
20115         true or always false, return NULL_TREE.
20116         (tree_unswitch_single_loop): Optimize conditions even when reaching
20117         max-unswitch-level parameter.  If num > 0, optimize first all conditions
20118         using entry checks, then do still reachable block discovery and consider
20119         only conditions in still reachable basic blocks in the loop.
20120
20121         PR tree-optimization/44539
20122         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
20123         the call doesn't have LHS, but has VDEF.
20124
20125 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
20126
20127         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
20128         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
20129         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
20130         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
20131         * system.h (MODIFY_TARGET_NAME): Poison.
20132
20133 2010-06-25  Alan Modra  <amodra@gmail.com>
20134
20135         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
20136         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
20137         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
20138         CMODEL_LARGE as default.
20139         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
20140         (offsettable_ok_by_alignment): Delete.
20141         (rs6000_emit_move): Remove mcmodel=medium optimization.
20142
20143 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
20144
20145         With large parts from Jim Wilson:
20146         PR target/43902
20147         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
20148         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
20149         * optabs.c (optab_for_tree_code): Likewise.
20150         (expand_widen_pattern_expr): Likewise.
20151         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
20152         out of execute_optimize_widening_mul.
20153         (convert_plusminus_to_widen): New function.
20154         (execute_optimize_widening_mul): Use the two new functions.
20155         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
20156         Remove code to generate widening multiply-accumulate.  Add support
20157         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
20158         * gimple-pretty-print.c (dump_ternary_rhs): New function.
20159         (dump_gimple_assign): Call it when appropriate.
20160         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
20161         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
20162         (expand_gimple_stmt_1): Likewise.
20163         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
20164         WIDEN_MULT_MINUS_EXPR.
20165         * tree-ssa-operands.c (get_expr_operands): Likewise.
20166         * tree-inline.c (estimate_operator_cost): Likewise.
20167         * gimple.c (extract_ops_from_tree_1): Renamed from
20168         extract_ops_from_tree.  Add new arg for a third operand; fill it.
20169         (gimple_build_assign_stat): Support operations with three operands.
20170         (gimple_build_assign_with_ops_stat): Likewise.
20171         (gimple_assign_set_rhs_from_tree): Likewise.
20172         (gimple_assign_set_rhs_with_ops_1): Renamed from
20173         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
20174         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
20175         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
20176         WIDEN_MULT_MINUS_EXPR.
20177         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
20178         (extract_ops_from_tree_1): Adjust declaration.
20179         (gimple_assign_set_rhs_with_ops_1): Likewise.
20180         (gimple_build_assign_with_ops): Pass NULL for last operand.
20181         (gimple_build_assign_with_ops3): New macro.
20182         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
20183         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
20184         functions.
20185         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
20186         (verify_gimple_assign): Call it.
20187         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
20188         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
20189         functions for dealing with three-operand statements.
20190         * tree.c (commutative_ternary_tree_code): New function.
20191         * tree.h (commutative_ternary_tree_code): Declare it.
20192         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
20193         ternary statements.
20194         (gimple_assign_nonzero_warnv_p): Likewise.
20195         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
20196         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
20197         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
20198         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
20199         (struct hashtable_expr): New member ternary in the union.
20200         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
20201         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
20202         (iterative_hash_hashable_expr): Likewise.
20203         (print_expr_hash_elt): Handle EXPR_TERNARY.
20204         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
20205         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
20206         statements.  Handle GIMPLE_TERNARY_RHS.
20207
20208 2010-06-25  Jan Hubicka  <jh@suse.cz>
20209
20210         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
20211
20212 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
20213
20214         PR c/44517
20215         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
20216         parameters are not good.
20217         (c_parser_parameter_declaration): Error unknown type name if the type
20218         name can't start declaration specifiers.
20219
20220 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
20221
20222         * gcc.c (translate_options): Don't mention +e in comment.
20223         (process_command): Don't handle +e specially.
20224
20225 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
20226
20227         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
20228
20229         * ira-build.c (merge_hard_reg_conflicts): New function.
20230         (create_cap_allocno, copy_info_to_removed_store_destinations,
20231         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
20232         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
20233         (remove_unnecessary_allocnos, remove_low_level_allocnos)
20234         copy_nifo_to_removed_store_destination): Use them.
20235         * ira-lives.c (make_hard_regno_born): New function, split out of
20236         make_regno_born.
20237         (make_allocno_born): Likewise.
20238         (make_hard_regno_dead): New function, split out of make_regno_dead.
20239         (make_allocno_dead): Likewise.
20240         (inc_register_pressure): New function, split out of set_allocno_live.
20241         (dec_register_pressure): New function, split out of clear_allocno_live.
20242         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
20243         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
20244         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
20245         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
20246         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
20247         mark_pseudo_regno_live.
20248         (process_bb_node_lives): Use mark_pseudo_regno_live,
20249         make_hard_regno_born and make_allocno_dead.
20250         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
20251         set_allocno_live, clear_allocno_live): Delete functions.
20252
20253         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
20254         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
20255         functions.
20256         (ira_flattening): Use ira_parent_allocno.
20257         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
20258         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
20259
20260         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
20261         statement.
20262
20263         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
20264         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
20265         minmax_set_iter_cond, minmax_set_iter_next,
20266         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
20267         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
20268         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
20269         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
20270         uses changed.
20271
20272         * ira-int.h (struct live_range, live_range_t): Renamed from struct
20273         ira_allocno_live_range and allocno_live_range_t; all uses changed.
20274         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
20275         All uses changed.
20276
20277 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
20278
20279         * thumb2.md (thumb2_tlobits_cbranch): Delete.
20280         (peephole2 to convert zero_extract/compare of single bit to
20281          lshift/compare): New.
20282
20283 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
20284
20285         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
20286         recursive call and call to 'int_const_binop'.
20287         (build_range_check, fold_cond_expr_with_comparison, unextend,
20288         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
20289         multiple_of_p): Adjust call to const_binop.
20290
20291 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
20292
20293         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
20294         determine size of XFmode operand.
20295         (XFmode extended DFmode push splitter): Ditto.
20296         (XFmode extended SFmode push splitter): Ditto.
20297
20298 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20299
20300         PR target/44588
20301         * config/i386/i386.md (extract_code): New.
20302         (<u>divmodqi4): Likewise.
20303         (divmodhiqi3): Likewise.
20304         (udivmodhiqi3): Likewise.
20305         (<u>divqi3): Remvoved.
20306
20307 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
20308
20309         PR middle-end/44492
20310         * recog.h (struct recog_data): Add is_asm field.
20311         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
20312         present in constraints of inline-asm operand and memory operand
20313         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
20314         (extract_insn): Initialize recog_data.is_asm.
20315         * doc/md.texi (Constraints): Document operand side-effect rules.
20316
20317 2010-06-24  Andi Kleen  <ak@linux.intel.com>
20318
20319         * c-parser.c (c_parser_conditional_expression): Call
20320         warn_for_omitted_condop.
20321         * doc/invoke.texi: Document omitted condop warning.
20322
20323 2010-06-24  Nick Clifton<nickc@redhat.com>
20324
20325         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
20326         insn in the sequence is a jump insn before setting its label.
20327
20328 2010-06-24  Alan Modra  <amodra@gmail.com>
20329
20330         * collect2.c (main): Match exactly --version and --help.
20331
20332 2010-06-24  DJ Delorie  <dj@redhat.com>
20333
20334         * config/m32c/m32c-pragma.c: Don't include rtl.h.
20335
20336 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
20337
20338         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
20339         using X87MODEF mode iterator.
20340         (pushsf splitter): Macroize splitter using P mode iterator.
20341         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
20342         mode iterator.
20343
20344         (*movxf_internal): Rename from *movxf_integer.
20345         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
20346         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
20347         (*movdf_internal): Rename from *movdf_integer.
20348         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
20349         (*movsf_internal): Rename from *movdf_1.
20350
20351 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
20352
20353         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
20354         (const_gimple_seq_node): Removed typedefs.
20355
20356         * gimple.h (gimple_seq_node_d, gimple_seq_node)
20357         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
20358
20359 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20360
20361         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
20362         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
20363         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
20364         and CODE_FOR_vec_extract_lo_v4df.
20365
20366         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
20367         Changed to define_insn_and_split.
20368         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
20369         (vec_extract_lo_v16hi): Likewise.
20370         (vec_extract_lo_v32qi): Likewise.
20371         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
20372         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
20373
20374 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
20375
20376         PR target/44640
20377         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
20378         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
20379         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
20380         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
20381         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
20382
20383         PR target/44640
20384         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
20385
20386         PR other/44644
20387         * df-core.c (struct df): Rename to df_d.
20388         * df.h (struct df): Likewise.
20389         * dse.h (struct df): Remove forward declaration.
20390         * recog.h (struct insn_data): Rename to:
20391         (struct_insn_data_d).  Adjusted all users.
20392
20393 2010-06-23  Arnaud Charlet  <charlet@adacore.com
20394
20395         PR ada/22220
20396         * doc/install.texi: Update requirements to build GNAT.
20397
20398 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
20399
20400         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
20401         enum type.
20402         (m68k_sched_attr_opx_type): Remove unreachable return.
20403         (m68k_sched_attr_opy_type): Likewise.
20404         (m68k_sched_attr_size): Likewise.
20405         (sched_get_opxy_mem_type): Likewise.
20406         (m68k_sched_attr_op_mem): Likewise.
20407
20408 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
20409
20410         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
20411         new statement and adjust VDEF only if necessary.  Remove superfluous
20412         call to maybe_clean_or_replace_eh_stmt.
20413         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
20414         copy the flags.
20415         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
20416         * tree-inline.c (copy_bb): ...and not there.
20417
20418 2010-06-22  Cary Coutant  <ccoutant@google.com>
20419
20420         * dwarf2out.c (is_nested_in_subprogram): New function.
20421         (should_move_die_to_comdat): Use it.
20422         (copy_ancestor_tree): Don't mark DIEs here.
20423         (copy_decls_walk): Start walk from root of newly-added tree;
20424         mark DIEs here instead.
20425
20426 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
20427
20428         * config/i386/i386.md (unit): Also check sseishft1.
20429
20430 2010-06-22  Jan Hubicka  <jh@suse.cz>
20431
20432         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
20433         enabled.
20434
20435 2010-06-22  Jan Hubicka  <jh@suse.cz>
20436
20437         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
20438         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
20439         Return true if something changed.
20440         * df.h (df_confluence_function_n): Return bool.
20441         * df-core.c (df_worklist_propagate_forward,
20442         df_worklist_propagate_backward): Track changes and ages.
20443         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
20444         track ages.
20445         * dse.c (dse_confluence_n): Return always true.
20446
20447 2010-06-22  Jan Hubicka  <jh@suse.cz>
20448
20449         * bitmap.c (bitmap_clear_bit): Micro optimize.
20450
20451 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
20452
20453         * config/i386/i386.md (SWI1248x): New mode iterator.
20454         (SWI48x): Ditto.
20455         (SWI12): Ditto.
20456         (SWI24): Ditto.
20457
20458         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
20459         SWI1248x mode iterator.
20460         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
20461         using SWI124 mode iterator.
20462         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
20463         mode iterator.
20464         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
20465         *pushdi2_prologue_rex64 using P mode iterator.
20466         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
20467         using SWI48 mode iterator.
20468         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
20469         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
20470         using SWI1248x mode iterator.
20471         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
20472         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
20473         SWI48 mode iterator.
20474         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
20475         iterator.
20476         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
20477         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
20478         SWI12 mode iterator.
20479         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
20480         SWI12 mode iterator.
20481         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
20482         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
20483         SWI24 mode iterator.
20484         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
20485         SWI48 mode iterator.
20486         (mov<mode>_insn_1): New expander.
20487         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
20488         using SWI48x mode iterator.
20489
20490         (*movoi_internal_avx): Rename from *movoi_internal.
20491         (*movti_internal_rex64): Rename from *movti_rex64.
20492         (*movti_internal_sse): Rename from *movti_sse.
20493         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
20494         (*movdi_internal): Rename from *movdi_2.
20495         (*movsi_internal): Rename from *movsi_1.
20496         (*movhi_internal): Rename from *movhi_1.
20497         (*movqi_internal): Rename from *movqi_1.
20498
20499         (insv): Update the call to gen_movsi_insv_1 for rename.
20500         * config/i386/i386.c (promote_duplicated_reg): Ditto.
20501
20502 2010-06-22  Jan Hubicka  <jh@suse.cz>
20503
20504         * passes.c (execute_function_todo): Move call of statistics_fini_pass
20505         to ...
20506         (execute_todo) ... this one.
20507
20508 2010-06-22  Alan Modra  <amodra@gmail.com>
20509
20510         PR target/44364
20511         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20512         * caller-save.c (insert_restore, insert_save): Use non-validate
20513         form of adjust_address.
20514
20515 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20516
20517         PR target/39690
20518         * config/pa/pa.c (override_options): Disable
20519         -freorder-blocks-and-partition.
20520
20521 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
20522
20523         PR target/44615
20524         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
20525
20526         * config/i386/i386.md (type): Add sseishft1
20527
20528         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
20529         (ppro_insn_load): Likewise.
20530         (ppro_insn_store): Likewise.
20531         (ppro_insn_both): Likewise.
20532
20533         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
20534         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
20535         for type.
20536         (*vec_extractv2di_1_avx): Likewise.
20537         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
20538         type.  Remove atom_unit.
20539         (*vec_extractv2di_1_sse2): Likewise.
20540
20541 2010-06-21  DJ Delorie  <dj@redhat.com>
20542
20543         * diagnostic.h (diagnostic_classification_change_t): New.
20544         (diagnostic_context): Add history and push/pop list.
20545         (diagnostic_push_diagnostics): Declare.
20546         (diagnostic_pop_diagnostics): Declare.
20547         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
20548         from pragmas in a history chain instead of the global table.
20549         (diagnostic_push_diagnostics): New.
20550         (diagnostic_pop_diagnostics): New.
20551         (diagnostic_report_diagnostic): Scan history chain to find state
20552         of diagnostics as of the diagnostic location.
20553         * opts.c (set_option): Pass UNKNOWN_LOCATION to
20554         diagnostic_classify_diagnostic.
20555         (enable_warning_as_error): Likewise.
20556         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
20557         use in the history chain.
20558         * doc/extend.texi: Document pragma GCC diagnostic changes.
20559
20560 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
20561
20562         * dwarf2out.c (add_linkage_name): New function.  Don't add
20563         anything to DW_TAG_member DIEs.
20564         (add_name_and_src_coords_attributes): Use it.
20565         (gen_variable_die): Call it for C++ static data members if
20566         specification is DW_TAG_member.
20567
20568         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
20569         C++ char16_t and char32_t.
20570
20571         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
20572         * genattrtab.c: Include vecprim.h.
20573         (cached_attrs, cached_attr_count, attrs_seen_once,
20574         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
20575         attrs_cached_after): New variables.
20576         (find_attrs_to_cache): New function.
20577         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
20578         (write_test_expr): Add attrs_cached argument, return it too,
20579         attempt to cache non-const attributes used more than once in
20580         a single case handling.
20581         (write_attr_get): Use find_attrs_to_cache, for caching candidates
20582         emit cached_* variables.  Adjust write_attr_set callers.
20583         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
20584         to find attributes that should be cached in this block.  Adjust
20585         write_test_expr callers.
20586         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
20587         callers.
20588         (make_automaton_attrs): Adjust write_test_expr caller.
20589
20590         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
20591         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
20592         (make_automaton_attrs): If find_tune_attr returns non-NULL,
20593         write separate internal_dfa_insn_code_* and insn_default_latency_*
20594         functions for each attribute's value and emit init_sched_attrs
20595         function and function pointers.
20596         * genattr.c (const_attrs, reservations): New variables.
20597         (gen_attr): Add const attributes to const_attrs vector.
20598         (check_tune_attr, find_tune_attr): New functions.
20599         (main): Add reservations to reservations vector.  If find_tune_attr
20600         returns true, add prototype for init_sched_attrs and make
20601         internal_dfa_insn_code and insn_default_latency function pointers,
20602         otherwise define init_sched_attrs as dummy macro.
20603         * cfgexpand.c: Include insn-attr.h.
20604         (gimple_expand_cfg): Call init_sched_attrs.
20605
20606         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
20607
20608         PR target/44575
20609         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
20610         va_arg from a set of register save slots into a temporary,
20611         if the container is bigger than type size, do the copying
20612         using smaller mode or using memcpy.
20613
20614         PR bootstrap/44426
20615         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
20616         prototype.
20617         (sel_print_to_dot): Remove macro.
20618         (sel_print): Likewise.  New prototype.
20619         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
20620         (sel_print): New function.
20621
20622 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20623
20624         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
20625         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
20626
20627 2010-06-21  Nick Clifton  <nickc@redhat.com>
20628
20629         * config/rx/rx.h (PTRDIFF_TYPE): Define.
20630         (SMALL_REGISTER_CLASS): Define (to zero).
20631         (PRINT_OPERAND): Delete.
20632         (PRINT_OPERAND_ADDRESS): Delete.
20633         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
20634         (rx_print_operand_address): Delete prototype.
20635         * config/rx/rx.c (rx_print_operand): Make static.
20636         Allow %H and %L to handle CONST_DOUBLEs.
20637         (rx_print_operand_address): Make static.
20638         (rx_gen_move_template): Rename local variable 'template' to
20639         out_template.
20640         (rx_function_arg): Do not pass unknown sized objects in registers.
20641         (TARGET_PRINT_OPERAND): Define.
20642         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20643
20644 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
20645
20646         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
20647
20648 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
20649
20650         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
20651         stack-alignment for simple leaf-functions.
20652
20653 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20654
20655         * doc/install.texi: Document bootstrap-lto.
20656
20657 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20658
20659         PR debug/44248
20660         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
20661         (input_function): Drop them here, if VTA is disabled.
20662
20663 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
20664
20665         PR target/44546
20666         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
20667         New predicate.
20668         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
20669         ix86_swapped_fp_comparsion_operator instead of
20670         ix86_fp_comparison_operator.
20671
20672         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
20673         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
20674         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
20675         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
20676         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
20677         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
20678
20679 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
20680
20681         PR other/32998
20682         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
20683         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
20684         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
20685         (decode_cmdline_option): Update for this return value.  Set
20686         orig_option_with_args_text field.  Set arg field for unknown
20687         options.  Make static.
20688         (decode_cmdline_options_to_array): New.
20689         (prune_options): Update handling of find_opt return value.
20690         * opts.c (read_cmdline_option): Take decoded option.  Return void.
20691         (read_cmdline_options): Take decoded options.
20692         (decode_options): Add parameters for decoded options.  Use
20693         decode_cmdline_options_to_array.  Use decoded options for -O
20694         scan.  Use integral_argument for -O parameters.  Update call to
20695         read_cmdline_options.
20696         (enable_warning_as_error): Update handling of find_opt return value.
20697         * opts.h: Update comment on unknown options.
20698         (struct cl_decoded_option): Update comments on opt_index and arg.
20699         Add orig_option_with_args_text.
20700         (decode_cmdline_option): Remove.
20701         (decode_cmdline_options_to_array): Declare.
20702         (decode_options): Update prototype.
20703         * toplev.c (save_argv): Remove.
20704         (save_decoded_options, save_decoded_options_count): New.
20705         (read_integral_parameter): Remove.
20706         (print_switch_values): Use decoded options.
20707         (toplev_main): Don't set save_argv.  Update call to decode_options.
20708         * toplev.h (read_integral_parameter): Remove.
20709         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
20710
20711 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
20712
20713         PR target/44072
20714         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
20715         immediate.
20716         * constraints.md (Pw, Px): New constraints.
20717         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
20718
20719 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
20720
20721         * config/i386/sse.md (fma4modesuffixf4): Removed.
20722         (ssemodesuffixf2s): Likewise.
20723         (ssemodesuffixf4): Likewise.
20724         (ssemodesuffixf2c): Likewise.
20725         (ssescalarmodesuffix2s): Likewise.
20726         (avxmodesuffixf2c): Likewise.
20727         (ssemodesuffix): New.
20728         (ssescalarmodesuffix): Likewise.
20729         Update patterns with ssemodesuffix and ssescalarmodesuffix.
20730
20731 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
20732
20733         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
20734
20735 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20736
20737         * stor-layout.c (debug_rli): Remove unused local variables.
20738
20739 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
20740
20741         PR rtl-optimization/40900
20742         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
20743         original expression for later reuse.
20744         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
20745         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
20746
20747 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
20748
20749         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
20750         double_int_fits_in_uhwi_p): Implement as static inline.
20751         (double_int_xor): New inline function.
20752         (double_int_lrotate, double_int_rrotate, double_int_max,
20753         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20754         double_int_smin): Declare.
20755         (lrotate_double, rrotate_double): Remove declaration.
20756         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
20757         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
20758         (double_int_lrotate, double_int_rrotate, double_int_max,
20759         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20760         double_int_smin): New function.
20761         * fold-const.c (int_const_binop): Clean up, use double_int_*
20762         functions.
20763         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
20764         double_int_* and immed_double_int_const functions.
20765
20766 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20767
20768         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
20769         * function.c (types_used_by_cur_var_decl): Likewise.
20770         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
20771
20772 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20773
20774         * tree.h (record_layout_info): Change type of pending_statics field
20775         to a VEC.
20776         * stor-layout.c (start_record_layout): Store NULL into
20777         pending_statics.
20778         (debug_rli): Call debug_vec_tree instead of debug_tree.
20779         (place_field): Likewise.
20780         (finish_record_layout): Likewise.
20781
20782 2010-06-18  Alan Modra  <amodra@gmail.com>
20783
20784         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
20785
20786 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20787
20788         PR target/43740
20789         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
20790         for SET source operand from SET destination operand.
20791
20792 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
20793
20794         PR rtl-optimization/39871
20795         * reload1.c (init_eliminable_invariants): For flag_pic, disable
20796         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
20797         (function_invariant_p): Rule out a plus of frame or arg pointer with
20798         a SYMBOL_REF.
20799         * ira.c (find_reg_equiv_invariant_const): Likewise.
20800
20801 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
20802
20803         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
20804         print_operand_address and puts to output the operand for CONST.
20805
20806 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
20807
20808         PR debug/44572
20809         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
20810         hook.
20811
20812 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20813
20814         * v850-protos.h (print_operand): Delete.
20815         (print_operand_address): Delete.
20816         * v850.h (PRINT_OPERAND): Delete.
20817         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20818         (PRINT_OPERAND_ADDRESS): Delete.
20819         * v850.c (print_operand_address): Rename to...
20820         (v850_print_operand_address): ...this.  Make static. Call
20821         v850_print_operand.
20822         (print_operand): Rename to...
20823         (v850_print_operand): ...this.  Make static.  Call
20824         v850_print_operand_address.
20825         (v850_print_operand_punct_valid_p): New function.
20826         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20827         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20828
20829 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20830
20831         * config/sh/sh-protos.h (print_operand): Delete.
20832         (print_operand_address): Delete.
20833         * config/sh/sh.h (PRINT_OPERAND): Delete.
20834         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20835         (PRINT_OPERAND_ADDRESS): Delete.
20836         * config/sh/sh.c (sh_print_operand_address): Make static.
20837         (sh_print_operand): Make static.  Call sh_print_operand_address
20838         and sh_print_operand.
20839         (sh_print_operand_punct_valid_p): New function.
20840         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20841         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20842
20843 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20844
20845         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
20846         (mcore_print_operand_address): Delete.
20847         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
20848         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20849         (PRINT_OPERAND_ADDRESS): Delete.
20850         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
20851         (mcore_print_operand): Make static.
20852         (mcore_print_operand_punct_valid_p): New function.
20853         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
20854         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20855
20856 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20857
20858         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
20859         (print_operand_address): Delete.
20860         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
20861         (PRINT_OPERAND_ADDRESS): Delete.
20862         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
20863         static.
20864         (m68hc11_print_operand): Make static.
20865         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20866
20867 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20868
20869         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
20870         (m32r_print_operand_address): Delete.
20871         * config/m32r/m32r.h (m32r_punct_chars): Delete.
20872         (PRINT_OPERAND): Delete.
20873         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20874         (PRINT_OPERAND_ADDRESS): Delete.
20875         * config/m32r/m32r.c (m32r_punct_chars): Make static.
20876         (m32r_print_operand_address): Make static.
20877         (m32r_print_operand): Make static.
20878         (m32r_print_operand_punct_valid_p): New function.
20879         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20880         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20881
20882 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20883
20884         * config/iq2000/iq2000-protos.h (print_operand): Delete.
20885         (print_operand_address): Delete.
20886         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
20887         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20888         (PRINT_OPERAND_ADDRESS): Delete.
20889         (iq2000_print_operand_punct): Delete.
20890         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
20891         (iq2000_print_operand_address): Make static.
20892         (iq2000_print_operand): Make static.
20893         (iq2000_print_operand_punct_valid_p): New function.
20894         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20895         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20896
20897 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20898
20899         * config/frv/frv-protos.h (frv_print_operand): Delete.
20900         (frv_print_operand_address): Delete.
20901         * config/frv/frv.h (PRINT_OPERAND): Delete.
20902         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20903         (PRINT_OPERAND_ADDRESS): Delete.
20904         * config/frv/frv.c (frv_print_operand_address): Make static.
20905         (frv_print_operand): Make static.
20906         (frv_print_operand_punct_valid_p): New function.
20907         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
20908         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20909
20910 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20911
20912         * tree.h (vec_member): Declare.
20913         * tree.c (vec_member): Define.
20914
20915 2010-06-17  Richard Guenther  <rguenther@suse.de>
20916
20917         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
20918         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
20919
20920 2010-06-17  Richard Guenther  <rguenther@suse.de>
20921
20922         * tree-inline.c (declare_return_variable): Remove bogus code.
20923
20924 2010-06-17  Richard Guenther  <rguenther@suse.de>
20925
20926         * gimplify.c (gimplify_bind_expr): Always promote complex
20927         and vector variables to registers if possible.
20928
20929 2010-06-17  Richard Guenther  <rguenther@suse.de>
20930
20931         * expr.c (get_inner_reference): Use double_int for bit_offset
20932         calculation.
20933
20934 2010-06-16  DJ Delorie  <dj@redhat.com>
20935
20936         * common.opt (-fstrict-volatile-bitfields): new.
20937         * doc/invoke.texi: Document it.
20938         * fold-const.c (optimize_bit_field_compare): For volatile
20939         bitfields, use the field's type to determine the mode, not the
20940         field's size.
20941         * expr.c (expand_assignment): Likewise.
20942         (get_inner_reference): Likewise.
20943         (expand_expr_real_1): Likewise.
20944         * expmed.c (store_fixed_bit_field): Likewise.
20945         (extract_bit_field_1): Likewise.
20946         (extract_fixed_bit_field): Likewise.
20947
20948 2010-06-16  Richard Guenther  <rguenther@suse.de>
20949
20950         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
20951
20952 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
20953
20954         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
20955         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
20956         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
20957         * debug.c: Likewise.
20958         * sdbout.c: Likewise.
20959         * vmsdbgout.c: Likewise.
20960         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
20961         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
20962         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
20963         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
20964         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
20965         * dwarf2out.c (dw_fde_struct): New fields
20966         dw_fde_vms_{end,begin}_prologue.
20967         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
20968         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
20969         (dwarf2out_vms_end_prologue): New function.
20970         (dwarf2out_vms_begin_epilogue): New function.
20971         (dw_val_struct): New value dw_val_class_vms_delta.
20972         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
20973         begin_epilogue for VMS.
20974         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
20975         new static functions.
20976         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
20977         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
20978         static functions.
20979         (print_die): New case dw_val_class_vms_delta.
20980         (attr_checksum): Likewise.
20981         (same_dw_val_p: Likewise.
20982         (size_of_die): Likewise.
20983         (value_format): Likewise.
20984         (output_die): Likewise.
20985         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
20986         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
20987         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
20988         dwarf2out_cfi_begin_epilogue
20989         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
20990
20991 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
20992
20993         * config/cris/cris-protos.h (cris_print_operand): Delete.
20994         (cris_print_operand_address): Delete.
20995         * config/cris/cris.h (PRINT_OPERAND): Delete.
20996         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20997         (PRINT_OPERAND_ADDRESS): Delete.
20998         * config/cris/cris.c (cris_print_operand_address): Make static.
20999         (cris_print_operand): Make static.
21000         (cris_print_operand_punct_valid_p): New function.
21001         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21002         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21003
21004 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21005
21006         * config/arm/arm-protos.h (arm_print_operand): Delete.
21007         (arm_print_operand_address): Delete.
21008         * config/arm/arm.h (PRINT_OPERAND): Delete.
21009         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21010         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
21011         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
21012         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
21013         (arm_print_operand): Make static.
21014         (arm_print_operand_punct_valid_p): New function.
21015         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21016         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21017
21018 2010-06-16  Nick Clifton  <nickc@redhat.com>
21019
21020         * config/rx/constraints.md (NEGint4): New constraint.
21021         * config/rx/rx.md (attr cc): Add set_zsc.
21022         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
21023         initialised.
21024         (cmpsf): Likewise.
21025         (call_internal): Clobber the cc0 register.
21026         (call_value_internal): Likewise.
21027         (cstoresi4): Likewise.
21028         (movsieq): Likewise.
21029         (movsine): Likewise.
21030         (addsi3): Add alternative to handle small negative constants.
21031         (sunsi3): Likewise.
21032         (addsi3): Do not set the O bit in the cc0 register.
21033         (adddi3): Likewise.
21034         (subsi3): Likewise.
21035         (subdi3): Likewise.
21036         (andsi3): Reorder alternatives to prefer shorter forms.
21037         (mulsi3): Likewise.
21038         (iorsi3): Likewise.
21039         (negsi2): Note that the cc0 flags are set.
21040         (rotlsi3): Note that only the Z and S bits are set in cc0.
21041         (lshrsi3): Likewise.
21042         (ashlsi3): Likewise.
21043         (subsf3): Use %Q for the MEM operand.
21044         (fix_truncsfsi2): Likewise.
21045         (floatsisf2): Likewise.
21046         (bitset): Remove early clobber from destination.
21047         (bitset_in_memory): Likewise.
21048         (lrintsf2): Clobber the cc0 register.
21049         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
21050         (rx_print_operand): Handle %N.
21051
21052 2010-06-16  Jan Hubicka  <jh@suse.cz>
21053
21054         * df-core.c (df_compact_blocks): Free problem_temps vector.
21055
21056 2010-06-16  Martin Jambor  <mjambor@suse.cz>
21057
21058         PR tree-optimization/43905
21059         * tree-sra.c: Include tree-inline.h.
21060         (create_abstract_origin): Removed.
21061         (modify_function): Version the call graph node instead of creating
21062         abstract origins and dealing with same_body aliases.
21063         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
21064         function is versionable.
21065         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
21066
21067 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
21068
21069         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
21070         (CHOOSE_DYNAMIC_LINKER): Update.
21071
21072 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
21073
21074         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
21075         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
21076         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
21077         *prefetch_3dnow_rex.
21078
21079 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
21080
21081         * target.h (struct asm_out):Add declare_constant_name field.
21082         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21083         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
21084         * output.h (default_asm_declare_constant_name): Declare.
21085         (assemble_label): Update prototype.
21086         * varasm.c (assemble_constant_contents): Use
21087         targetm.asm_out.declare_constant_name target hook.
21088         (assemble_label): Add 'file' argument.
21089         (default_asm_declare_constant_name): New function.
21090         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
21091         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
21092         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
21093
21094         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
21095         * config/darwin.c (darwin_asm_declare_constant_name): New function.
21096         (machopic_output_indirection): Update assemble_label argument list.
21097         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
21098         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21099
21100 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
21101
21102         PR middle-end/44391
21103         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
21104         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
21105
21106 2010-06-15  Richard Guenther  <rguenther@suse.de>
21107
21108         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
21109
21110 2010-06-15  Paul Brook  <paul@codesourcery.com>
21111
21112         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
21113         hard-float ABI.
21114
21115 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
21116
21117         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
21118         don't get a vector type for output.
21119
21120 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
21121
21122         PR fortran/44536
21123         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
21124         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
21125         (LANG_HOOKS_DECLS): Add it.
21126         * gimplify.c (omp_notice_variable): Call
21127         lang_hooks.decls.omp_report_decl.
21128
21129 2010-06-15  Martin Jambor  <mjambor@suse.cz>
21130
21131         PR lto/44464
21132         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
21133         on the newly dead SSA name.
21134
21135 2010-06-15  Alan Modra  <amodra@gmail.com>
21136
21137         * doc/invoke.texi: Add mcmodel to powerpc options.
21138         * configure.ac: Add HAVE_LD_LARGE_TOC test.
21139         * configure: Regenerate.
21140         * config.in: Regenerate.
21141         * config/rs6000/linux64.opt (mcmodel): New.
21142         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
21143         (TARGET_CMODEL, SET_CMODEL): Define.
21144         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
21145         select CMODEL_MEDIUM default.
21146         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
21147         (TARGET_CMODEL): Define default.
21148         * config/rs6000/rs6000.c (cmodel): New variable.
21149         (rs6000_explicit_options): Add cmodel field.
21150         (rs6000_handle_option): Handle -mcmodel.
21151         (create_TOC_reference): Add largetoc_reg param.  Generate high,
21152         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
21153         (rs6000_delegitimize_address): Recognise new toc reference rtl
21154         and minimal-toc rtl.
21155         (rs6000_legitimize_reload_address): Handle new toc references.
21156         (print_operand_address): Handle legitimate_constant_pool_address_p
21157         match before lo_sum.
21158         (rs6000_eliminate_indexed_memrefs): Tidy.
21159         (rs6000_emit_move): Tweak threshold for inlining constants.
21160         Keep rs6000_emit_allocate_stack large stack frame offsets
21161         loaded into r0 inline.
21162         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
21163         (tocrel_base, tocrel_offset): New variables.
21164         (toc_relative_expr_p): Set them here.
21165         (print_operand_address): Skip over any offset on constant pool address.
21166         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
21167         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
21168         (offsettable_ok_by_alignment): New function.
21169         (rs6000_emit_move): Address suitably aligned local symbol_refs
21170         relative to the toc pointer for -mcmodel=medium.
21171         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
21172         strict param.  Allow lo_sum version of addressing.  Verify reg
21173         used for -mminimal-toc and -mcmodel != small.  Update all callers.
21174         * config/rs6000/constraints.md: Update for above change.
21175         * config/rs6000/predicates.md: Likewise.
21176         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
21177         code.
21178         (tls_gd): Split for -mcmodel=medium/large.
21179         (tls_gd_high, tls_gd_low): New.
21180         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
21181         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
21182         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
21183         (largetoc_high, largetoc_low): New.
21184         (cmptf_internal2): Add clobber.
21185         * config/rs6000/rs6000-protos.h: Update.
21186
21187 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
21188
21189         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
21190         true if no prefetch is going to be generated for a given group.
21191         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
21192         estimate the prefetch_count.
21193         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
21194         prefetch count by considering the unroll_factor and prefetch_mod
21195         for is_loop_prefetching_profitable.
21196
21197 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
21198
21199         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
21200         anything if the argument is not a MEM.
21201
21202 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
21203
21204         PR debug/43650
21205         PR debug/44181
21206         PR debug/44247
21207         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
21208         debug stmts.
21209         (canonicalize_loop_ivs): Likewise.
21210
21211 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
21212
21213         PR debug/43656
21214         * haifa-sched.c (setup_insn_reg_pressure_info,
21215         update_register_pressure): Reject debug insns.
21216         (ready_sort): Don't setup reg pressure for debug insns.
21217         (schedule_insn): Don't update reg pressure for debug insns.
21218
21219 2010-06-14  Richard Guenther  <rguenther@suse.de>
21220
21221         * lto-streamer.c (cached_bp): Remove.
21222         (bitpack_delete): Likewise.
21223         (bitpack_create): Likewise.
21224         (bp_get_next_word): Likewise.
21225         (bp_pack_value, bp_unpack_value): Move ...
21226         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
21227         Re-implement.
21228         (struct bitpack_d): Likewise.
21229         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
21230         New inline functions.
21231         * lto-streamer-out.c (lto_output_bitpack): Remove.
21232         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21233         (pack_value_fields): Adjust.
21234         (lto_write_tree): Likewise.
21235         (output_gimple_stmt): Likewise.
21236         (output_function): Likewise.
21237         * lto-streamer-in.c (input_gimple_stmt): Adjust.
21238         (input_function): Likewise.
21239         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21240         (lto_input_bitpack): Remove.
21241         (lto_materialize_tree): Adjust.
21242         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
21243         * lto-cgraph.c (lto_output_edge): Adjust.
21244         (lto_output_node): Likewise.
21245         (lto_output_varpool_node): Likewise.
21246         (lto_output_ref): Likewise.
21247         (input_node): Likewise.
21248         (input_varpool_node): Likewise.
21249         (input_ref): Likewise.
21250         (input_edge): Likewise.
21251         (output_node_opt_summary): Likewise.
21252         (input_node_opt_summary): Likewise.
21253         * ipa-pure-const.c (pure_const_write_summary): Likewise.
21254         (pure_const_read_summary): Likewise.
21255         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
21256         (ipa_read_indirect_edge_info): Likewise.
21257         (ipa_write_node_info): Likewise.
21258         (ipa_read_node_info): Likewise.
21259
21260 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21261
21262         PR target/44534
21263         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
21264         (vec_extract_lo_v16hi): Likewise.
21265         (vec_extract_lo_v32qi): Likewise.
21266
21267 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21268
21269         PR bootstrap/44426
21270         * tree.h (build_call_expr): Don't define as vararg macro, instead
21271         add a prototype.
21272         * builtins.c (build_call_nofold): Remove.
21273         (expand_builtin_int_roundingfn, expand_builtin_pow,
21274         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
21275         expand_builtin_memset_args, expand_builtin_strcmp,
21276         expand_builtin_strncmp, expand_builtin_memory_chk): Use
21277         build_call_nofold_loc instead of build_call_nofold.
21278         (build_call_expr): New function.
21279
21280         PR tree-optimization/44508
21281         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
21282         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
21283         don't eliminate trivially dead stmts.
21284         * tree-vrp.c (vrp_finalize): Pass false as last argument
21285         to substitute_and_fold.
21286         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
21287         to substitute_and_fold.
21288         * tree-ssa-ccp.c (ccp_finalize): Likewise.
21289
21290         PR bootstrap/44509
21291         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
21292
21293 2010-06-14  Ira Rosen  <irar@il.ibm.com>
21294
21295         PR tree-optimization/44507
21296         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
21297         to build initial vector for BIT_AND_EXPR.
21298         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
21299
21300 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21301
21302         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
21303         adjust z10prop set_attr.
21304
21305 2010-06-13  Jan Hubicka  <jh@suse.cz>
21306
21307         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
21308         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
21309         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
21310         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
21311         datastructure checks into checking asserts.
21312         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
21313         * tree-ssa-sccvn.c (VN_INFO): Likewise.
21314         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
21315         df_ref_create_structure): Likewise.
21316         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
21317         pool_free): Use gcc_checking_assert.
21318         * alias.c (get_alias_set): Likewise.
21319         * var-tracking.c (variable_htab_free, shared_hash_copy,
21320         canonicalize_values_mark, variable_merge_over_cur): Likewise.
21321         * lto-streamer.c (bp_unpack_value): Likewise.
21322
21323 2010-06-13  Richard Guenther  <rguenther@suse.de>
21324
21325         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
21326         Do not stream but initialize TYPE_CANONICAL to NULL.
21327         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
21328         * gimple.c (gimple_types_compatible_p): Disregard
21329         TYPE_STRUCTURAL_EQUALITY_P.
21330         (gimple_register_type): Use TYPE_CANONICAL as cache.
21331         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
21332         before registering common types.
21333         * config/i386/i386.c (ix86_function_arg_boundary): Do not
21334         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
21335         * tree.h (TYPE_CANONICAL): Clarify documentation.
21336
21337 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
21338
21339         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
21340         LIBCALL_VALUE): Remove macros.
21341         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
21342         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21343         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21344         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
21345         (ia64_function_value): Make static. Handle receiving the function
21346         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
21347
21348 2010-06-12  Jan Hubicka  <jh@suse.cz>
21349
21350         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
21351         at correct place.
21352
21353 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
21354
21355         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
21356
21357 2010-06-12  Jan Hubicka  <jh@suse.cz>
21358
21359         * df-core.c (df_clear_bb_info): New function.
21360         (df_set_blocks): bb_info is always allocated.
21361         (df_get_bb_info): Use block_info_elt_size.
21362         (df_set_bb_info): Likewise.
21363         (df_compact_blocks): Update for new block_info.
21364         (grow_bb_info): New function.
21365         * df-problems.c (df_grow_bb_info): Move to df-core.c
21366         (df_rd_set_bb_info): Remove.
21367         (df_rd_free_bb_info): Do not free block pool.
21368         (df_rd_alloc): Do not create pool, use check for
21369         obstack presence instead of NULL pointer for new blocks.
21370         (df_rd_free): DO not free alloc pool; clear block_info.
21371         (problem_RD): Add size of block info structure.
21372         (df_lr_set_bb_info): Remove.
21373         (df_lr_free_bb_info): Do not free block pool.
21374         (df_lr_alloc): Do not create pool, use check for
21375         obstack presence instead of NULL pointer for new blocks.
21376         (df_lr_free): DO not free alloc pool; clear block_info.
21377         (problem_LR): Add size of block info structure.
21378         (df_live_set_bb_info): Remove.
21379         (df_live_free_bb_info): Do not free block pool.
21380         (df_live_alloc): Do not create pool, use check for
21381         obstack presence instead of NULL pointer for new blocks.
21382         (df_live_free): DO not free alloc pool; clear block_info.
21383         (problem_LIVE): Add size of block info structure.
21384         (problem_CHAIN): Add size of block info structure.
21385         (df_byte_lr_set_bb_info): Remove.
21386         (df_byte_lr_free_bb_info): Do not free block pool.
21387         (df_byte_lr_alloc): Do not create pool, use check for
21388         obstack presence instead of NULL pointer for new blocks.
21389         (df_byte_lr_free): DO not free alloc pool; clear block_info.
21390         (problem_BYTE_LR): Add size of block info structure.
21391         (problem_NOTE): Add size of block info structure.
21392         (df_byte_MD_set_bb_info): Remove.
21393         (df_byte_MD_free_bb_info): Do not free block pool.
21394         (df_byte_MD_alloc): Do not create pool, use check for
21395         obstack presence instead of NULL pointer for new blocks.
21396         (df_byte_MD_free): DO not free alloc pool; clear block_info.
21397         (problem_BD): Add size of block info structure.
21398         * df-scan.c (df_scan_free_internal): Free block pool.
21399         (df_scan_set_bb_info): Remove.
21400         (df_scan_free_bb_info): Check for artificial_defs instead
21401         of bb_info being non-NULL.
21402         (df_scan_alloc): DO not create df_scan_block pool.
21403         (problem_SCAN): Set size of block info.
21404         (df_bb_refs_record): Do not allocate bb_info.
21405         * df.h (df_problem): Add block_info_elt_size.
21406         (struct dataflow): Change block_info to void *.
21407         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
21408         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
21409         in-line structures.
21410
21411 2010-06-12  Jan Hubicka  <jh@suse.cz>
21412
21413         PR tree-optimize/44485
21414         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
21415         containing use of return value of noreturn function.
21416
21417 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
21418
21419         * targhooks.c (default_function_value): Don't use
21420         FUNCTION_OUTGOING_VALUE.
21421         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
21422         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
21423
21424 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
21425
21426         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
21427         Add crtfastmath.o to extra_parts.
21428         * config/mips/crtfastmath.c: New.
21429         * config/mips/linux.h (ENDFILE_SPEC): New.
21430
21431 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
21432
21433         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
21434         old_type in parameter.
21435         (gcc_type_for_value): Update call to gcc_type_for_interval.
21436         (compute_type_for_level_1): Renamed compute_type_for_level.
21437         Update call to gcc_type_for_interval.
21438
21439 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21440
21441         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
21442         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
21443
21444 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21445
21446         * opts-common.c: Include options.h.
21447         (integral_argument): Move from opts.c.
21448         (decode_cmdline_option): New.  Based on read_cmdline_option.
21449         * opts.c (integral_argument): Move to opts-common.c.
21450         (read_cmdline_option): Move most contents to
21451         decode_cmdline_option.  Use %qs in diagnostics.
21452         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
21453         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
21454         decode_cmdline_option): New.
21455
21456 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21457
21458         PR target/44481
21459         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
21460         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
21461         (partiysi2_cmp): Ditto.
21462         (*partiyhi2_cmp): Ditto.
21463         (*parityqi2_cmp): Remove.
21464
21465 2010-06-11  Jan Hubicka  <jh@suse.cz>
21466
21467         * bitmap.h (bmp_iter_next_bit): New.
21468         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
21469
21470 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
21471             Eric Botcazou  <ebotcazou@adacore.com>
21472
21473         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
21474         computed cost.
21475
21476 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21477
21478         * config/i386/i386.md (unspec): New define_c_enum.
21479         (unspecv): Ditto.
21480
21481 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
21482
21483         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
21484
21485 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
21486
21487         PR middle-end/44483
21488         * tree-if-conv.c (bb_predicate_s): New struct.
21489         (bb_predicate_p): New.
21490         (bb_has_predicate): New.
21491         (bb_predicate): New.
21492         (set_bb_predicate): New.
21493         (bb_predicate_gimplified_stmts): New.
21494         (set_bb_predicate_gimplified_stmts): New.
21495         (add_bb_predicate_gimplified_stmts): New.
21496         (init_bb_predicate): New.
21497         (free_bb_predicate): New.
21498         (is_predicated): Use bb_predicate.
21499         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
21500         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
21501         before processing their successors.
21502         (clean_predicate_lists): Removed.
21503         (find_phi_replacement_condition): Use bb_predicate.
21504         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
21505         computations.
21506         (insert_gimplified_predicates): New.
21507         (combine_blocks): Call insert_gimplified_predicates.
21508         (tree_if_conversion): Call free_bb_predicate instead of
21509         clean_predicate_lists.
21510
21511 2010-10-11  Paul Brook  <paul@codesourcery.com>
21512
21513         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
21514         * config/arm/arm.c (all_architectures): Change v7e-m default to
21515         cortexm4.
21516         * config/arm/arm-cores.def: Add cortex-m4.
21517         * config/arm/arm-tune.md: Regenerate.
21518
21519 2010-06-11  Jan Hubicka  <jh@suse.cz>
21520
21521         * ipa-pure-const.c (special_builtlin_state): New function.
21522         (check_call): Use it instead of special casign BUILT_IN_RETURN.
21523         (propagate_pure_const): Use it.
21524
21525 2010-06-11  Jan Hubicka  <jh@suse.cz>
21526
21527         * df-problems.c (df_live_scratch): Convert to bitmap_head.
21528         (df_live_alloc): Initialize df_live_scratch when initializing
21529         problem_data.
21530         (df_live_transfer_function): Update uses of df_live_scratch.
21531         (df_live_free): Free problem_data; clear df_live_scratch before
21532         releasing the obstack.
21533         (df_md_free): Free problem data.
21534
21535 2010-06-11  Jan Hubicka  <jh@suse.cz>
21536
21537         * doc/invoke.texi (Wsuggest-attribute): Document.
21538         (Wmissing-noreturn): Remove.
21539         * ipa-pure-const.c (warn_function_noreturn): New function.
21540         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
21541         warn_missing_noreturn.
21542         * common.opt (Wsuggest-attribute=noreturn): New.
21543         * tree-flow.h (warn_function_noreturn): Declare.
21544         * tree-cfg.c (execute_warn_function_noreturn): Use
21545         warn_function_noreturn.
21546         (gate_warn_function_noreturn): New.
21547         (pass_warn_function_noreturn): Update.
21548
21549 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21550
21551         * c-typeck.c (handle_warn_cast_qual): Add loc
21552         parameter. Improve warning message.
21553         (build_c_cast): Pass location to handle_warn_cast_qual.
21554
21555 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21556
21557         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
21558         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
21559         insn mnemonic.
21560         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
21561
21562 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
21563
21564         Fix bootstap on mips
21565         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
21566         be naming typedefs.
21567
21568 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
21569
21570         * system.h (helper_const_non_const_cast): New inline for
21571         gcc version <= 4.0.
21572         (CONST_CAST2): For gcc version <= 4.0 use
21573         new helper to do const/non-const casting.
21574
21575 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21576
21577         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
21578         * Makefile.in (OBJS-common): Include insn-enums.o.
21579         (insn-enums.o): New rule.
21580         (simple_generated_c): Add insn-enums.c.
21581         (build/genenums.o): New rule.
21582         (genprogmd): Add "enums".
21583         * genconstants.c (print_enum_type): Declare a C string array
21584         for each enum.
21585         * genenums.c: New file.
21586         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
21587         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
21588         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
21589
21590 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21591
21592         * doc/md.texi (define_enum_attr): Document.
21593         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
21594         * read-md.h (lookup_enum_type): Declare.
21595         * read-md.c (lookup_enum_type): New function.
21596         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
21597         * genattrtab.c (attr_desc): Add an enum_name field.
21598         (evaluate_eq_attr): Take the associated attribute as argument.
21599         Get the enum prefix from the enum_name field, if defined.
21600         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
21601         (simplify_test_exp): Pass attr to evaluate_eq_attr.
21602         (add_attr_value): New function, split out from...
21603         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
21604         (write_test_expr): Pass attr to evaluate_eq_attr.
21605         (write_attr_get): Use the enum_name as the enum tag, if defined.
21606         (write_attr_valueq): Use the enum_name as a prefix, if defined.
21607         (find_attr): Initialize enum_name.
21608         (main): Handle DEFINE_ENUM_ATTR.
21609         * gensupport.c (process_rtx): Likewise.
21610         * config/mips/mips.h (mips_tune_attr): Delete.
21611         * config/mips/mips.md (cpu): Use define_attr_enum.
21612
21613 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21614
21615         * doc/md.texi (define_c_enum, define_enum): Document.
21616         * read-md.h (md_constant): Add a parent_enum field.
21617         (enum_value, enum_type): New structures.
21618         (upcase_string, traverse_enum_types): Declare.
21619         * read-md.c (enum_types): New variable.
21620         (upcase_string, add_constant): New functions.
21621         (handle_constants): Don't create the hash table here.
21622         Use add_constant.
21623         (traverse_md_constants): Don't check for a null md_constants.
21624         (decimal_string, handle_enum, traverse_enum_types): New functions.
21625         (read_md_files): Initialize md_constants and md_enums.
21626         * genconstants.c (print_md_constant): Ignore info argument.
21627         Only print constants that belong to no enum.
21628         (print_enum_type): New function.
21629         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
21630         for each defined enum type.
21631         * config/mips/mips.md (processor): New define_enum.
21632         (unspec): New define_c_enum.
21633         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
21634         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
21635         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
21636         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
21637         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
21638         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
21639         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
21640         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
21641         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
21642         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
21643         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
21644         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
21645         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
21646         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
21647         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
21648         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
21649         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
21650         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
21651         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
21652         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
21653         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
21654         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
21655         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21656         (UNSPEC_RDDSP): Move to mips-dsp.md.
21657         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
21658         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
21659         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
21660         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
21661         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
21662         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
21663         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
21664         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
21665         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
21666         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
21667         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
21668         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
21669         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
21670         Moved to mips-dspr2.md.
21671         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
21672         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
21673         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
21674         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
21675         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
21676         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
21677         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21678         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21679         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21680         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21681         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21682         UNSPEC_LOONGSON_PSADBH)
21683         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21684         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21685         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
21686         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21687         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21688         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21689         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
21690         (cpu): Update comment.
21691         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
21692         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
21693         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
21694         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
21695         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
21696         UNSPEC_LOONGSON_PCMPEQ)
21697         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
21698         UNSPEC_LOONGSON_PINSR_0)
21699         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21700         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21701         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21702         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21703         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21704         UNSPEC_LOONGSON_PSADBH)
21705         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21706         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21707         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
21708         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21709         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21710         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21711         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
21712         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
21713         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
21714         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
21715         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
21716         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
21717         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
21718         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
21719         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
21720         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
21721         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
21722         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
21723         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
21724         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
21725         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
21726         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
21727         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
21728         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
21729         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
21730         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
21731         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21732         (UNSPEC_RDDSP): Moved from mips.md.
21733         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
21734         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
21735         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
21736         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
21737         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
21738         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
21739         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
21740         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
21741         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
21742         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
21743         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
21744         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
21745         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
21746         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
21747         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
21748         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
21749         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
21750         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
21751         (UNSPEC_SCC): Moved from mips.md.
21752         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
21753         "processor_type" to "processor".
21754         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
21755         * config/mips/mips.h (processor_type): Delete.
21756         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
21757         "processor_type" to "processor".
21758
21759 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21760
21761         * configure.ac (tm_include_list): Add insn-constants.h.
21762         * configure: Regenerate.
21763         * Makefile.in (GTM_H): Move insn-constants.h here from...
21764         (TM_H): ...here.
21765         * mkconfig.sh: Remove special handling for insn-constants.h.
21766
21767 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21768
21769         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
21770         (BUILD_MD): ...this new variable.
21771         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
21772         that include the old contents of simple_generated_h and
21773         simple_generated_c.
21774         (simple_generated_h, simple_generated_c): Include them.  Add
21775         insn-constants.h.
21776         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
21777         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
21778         Remove these dependencies from the main rule and include
21779         insn-conditions.md in the command line only if it appears
21780         in the dependency list.
21781         (insn-constants.h, s-constants): Delete.
21782         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
21783         or gensupport.h.
21784         (build/genmddeps.o): Likewise.
21785         (genprogrtl): New variable that contains everything from genprogmd
21786         except mddeps and constants.
21787         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
21788         depend on $(BUILD_MD)
21789         (genprog): New variable.  Make these programs depend on
21790         $(BUILD_ERRORS).
21791         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
21792         (main): Use read_md_files instead of init_rtx_reader_args.
21793         * genconstants.c: As for genmddeps.c.
21794         * read-md.h (read_skip_construct): Declare.
21795         * read-md.c (read_skip_construct): New function.
21796         (handle_file): Allow a null handle_directive, skipping the
21797         construct if so.
21798         (parse_include): Update the comment accordingly.
21799
21800 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21801
21802         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
21803         * genmddeps.c: Include read-md.h.
21804         (main): Call init_rtx_reader_args instead of init_md_reader_args.
21805         * genattr.c (main): Likewise.
21806         * genattrtab.c (main): Likewise.
21807         * genautomata.c (main): Likewise.
21808         * gencodes.c (main): Likewise.
21809         * genconditions.c (main): Likewise.
21810         * genconfig.c (main): Likewise.
21811         * genconstants.c (main): Likewise.
21812         * genemit.c (main): Likewise.
21813         * genextract.c (main): Likewise.
21814         * genflags.c (main): Likewise.
21815         * genopinit.c (main): Likewise.
21816         * genoutput.c (main): Likewise.
21817         * genpeep.c (main): Likewise.
21818         * genrecog.c (main): Likewise.
21819         * genpreds.c (main): Likewise.
21820         * gensupport.h (in_fname): Move to read-md.h.
21821         (init_md_reader_args_cb): Rename to...
21822         (init_rtx_reader_args_cb): ...this and return a bool.
21823         (init_md_reader_args): Rename to...
21824         (init_rtx_reader_args): ...this and return a bool.
21825         (include_callback): Move to read-md.h.
21826         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
21827         (file_name_list, first_dir_md_include): Move to read-md.c
21828         (first_bracket_include): Delete unused variable.
21829         (last_dir_md_include): Move to read-md.c.
21830         (process_include): Delete, moving code to read-md.c:handle_include.
21831         (process_rtx): Don't handle INCLUDE.
21832         (save_string): Delete.
21833         (rtx_handle_directive): New function.
21834         (init_md_reader_args_cb): Rename to...
21835         (init_rtx_reader_args_cb): ...this and return a boolean success value.
21836         Use read_md_args.
21837         (init_md_reader_args): Rename to...
21838         (init_rtx_reader_args): ...this and return a boolean success value.
21839         * rtl.def (INCLUDE): Delete.
21840         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
21841         argument.
21842         * read-rtl.c (read_conditions): Don't gobble ')' here.
21843         (read_mapping): Likewise.
21844         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
21845         Handle top-level non-rtx constructs here rather than in read_rtx_1.
21846         Store the whole queue in *X.  Remove call to init_md_reader.
21847         (read_rtx_1): Rename to...
21848         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
21849         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
21850         here.
21851         (read_nested_rtx): New function.  Handle (nil) here rather than
21852         in read_rtx_code.
21853         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
21854         gobble ')' here.
21855         * read-md.h (directive_handler_t): New type.
21856         (in_fname, include_callback): Moved from read-md.h.
21857         (read_constants, init_md_reader): Delete.
21858         (read_md_files): Declare.
21859         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
21860         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
21861         from gensupport.c.
21862         (read_constants): Rename to...
21863         (handle_constants): ...this.  Don't gobble ')' here.
21864         (handle_include, handle_file, handle_toplevel_file)
21865         (parse_include): New functions, mostly taken from gensupport.c.
21866         (init_md_reader): Subsume into...
21867         (read_md_files): ...this new function.
21868
21869 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21870
21871         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
21872         (unread_char): Decrement read_md_lineno after putting back '\n'.
21873         * read-md.c (fatal_with_file_and_line): Push back any characters
21874         that we decide not to add to the context.
21875         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
21876         fatal_expected_char in cases where '/' ends a line (for example).
21877         (read_name): Don't increment read_md_lineno here.
21878         (read_escape): Likewise.
21879         (read_quoted_string): Likewise.
21880         (read_braced_string): Likewise.
21881
21882 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21883
21884         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
21885         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
21886         * genconstants.c: Include read-md.h.
21887         * read-rtl.c (md_constants): Move to read-md.c.
21888         (md_name): Move to read-md.h.
21889         (initialize_iterators): Use leading_string_hash instead of def_hash
21890         and leading_string_eq_p instead of def_name_eq_p.
21891         (read_name): Move to read-md.c.
21892         (def_hash, def_name_eq_p): Delete.
21893         (read_constants, traverse_md_constants): Move to read-md.c.
21894         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
21895         * read-md.h: Include hashtab.h.
21896         (md_name): Moved from read-rtl.c.
21897         (md_constant): Moved from read-md.h.
21898         (leading_string_hash, leading_string_eq_p, read_name)
21899         (read_constants, traverse_md_constants): Declare.
21900         * read-md.c (md_constants): Moved from read-rtl.c.
21901         (leading_string_hash, leading_string_eq_p): New functions.
21902         (read_name, read_constants, traverse_md_constants): Moved from
21903         read-rtl.c.
21904
21905 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21906
21907         * read-rtl.c (md_name): New structure.
21908         (read_name): Take an md_name instead of a buffer pointer.
21909         Use the "string" field instead of strcpy when expanding constants.
21910         (read_constants): Remove the tmp_char argument.  Update the calls
21911         to read_name, using two local name buffers instead of the tmp_char
21912         argument.  Merge the constant-creation code.
21913         (read_conditions): Remove the tmp_char argument.  Update the calls
21914         to read_name, using a local name buffer instead of the tmp_char
21915         argument.
21916         (read_mapping): Replace tmp_char variable with a local name buffer.
21917         Update the calls to read_name.
21918         (read_rtx_1): Likewise.  Update the calls to read_constants and
21919         read_conditions.
21920
21921 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21922
21923         * Makefile.in (build/read-md.o): Depend on errors.h.
21924         * read-md.h (error_with_line): Declare.
21925         * read-md.c: Include errors.h.
21926         (message_with_line_1): New function, extracted from...
21927         (message_with_line): ...here.
21928         (error_with_line): New function.
21929         * genattrtab.c: If a call to message_with_line is followed by
21930         "have_error = 1;", replace both statements with a call to
21931         error_with_line.
21932         * genoutput.c: Likewise.
21933         * genpreds.c: Likewise.
21934         * genrecog.c: If a call to message_with_line is followed by
21935         "error_count++;", replace both statements with a call to
21936         error_with_line.
21937         (errorcount): Delete.
21938         (main): Don't check it.
21939         * gensupport.c: If a call to message_with_line is followed by
21940         "errors = 1;", replace both statements with a call to error_with_line.
21941         (errors): Delete.
21942         (process_define_cond_exec): Check have_error instead of errors.
21943         (init_md_reader_args_cb): Likewise.  Don't set errors.
21944
21945 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21946
21947         * read-md.h (read_md_file): Declare.
21948         (read_char, unread_char): New functions.
21949         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21950         (read_quoted_string, read_string): Remove FILE * argument.
21951         * read-md.c (read_md_file): New variable.
21952         (read_md_filename, read_md_lineno): Update comments and remove
21953         unnecessary initialization.
21954         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
21955         (read_escape, read_quoted_string, read_braced_string, read_string):
21956         Remove FILE * argument.  Update calls accordingly, using read_char
21957         and unread_char instead of getc and ungetc.
21958         * rtl.h (read_rtx): Remove FILE * argument.
21959         * read-rtl.c (iterator_group): Remove FILE * argument from
21960         "find_builtin".
21961         (iterator_traverse_data): Remove "infile" field.
21962         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
21963         (add_mapping, read_name, read_constants, read_conditions)
21964         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
21965         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
21966         Remove file arguments from all calls, using read_char and unread_char
21967         instead of getc and ungetc.
21968         * gensupport.c (process_include): Preserve read_md_file around
21969         the include.  Set read_md_file to the handle of the included file.
21970         Update call to read_rtx.
21971         (init_md_reader_args_cb): Set read_md_file to the handle of the file
21972         and remove local FILE *.  Update calls to read_rtx.
21973
21974 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21975
21976         * read-md.h (read_rtx_lineno): Rename to...
21977         (read_md_lineno): ...this.
21978         (read_rtx_filename): Rename to...
21979         (read_md_filename): ...this.
21980         (copy_rtx_ptr_loc): Rename to...
21981         (copy_md_ptr_loc): ...this.
21982         (print_rtx_ptr_loc): Rename to...
21983         (print_md_ptr_loc): ...this.
21984         * read-md.c: Likewise.  Update references after renaming.
21985         (string_obstack): Replace RTL with MD in comment.
21986         (set_rtx_ptr_loc): Rename to...
21987         (set_md_ptr_loc): ...this.
21988         (get_rtx_ptr_loc): Rename to...
21989         (get_md_ptr_loc): ...this.
21990         * genconditions.c: Update references after renaming.
21991         * genemit.c: Likewise.
21992         * genoutput.c: Likewise.
21993         * genpreds.c: Likewise.
21994         * gensupport.c: Likewise.
21995         * read-rtl.c: Likewise.
21996
21997 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21998
21999         * Makefile.in (READ_MD_H): New variable.
22000         (BUILD_RTL): Add build/read-md.o.
22001         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
22002         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
22003         (build/genattrtab.o, build/genconditions.o build/genemit.o)
22004         (build/genextract.o, build/genflags.o, build/genoutput.o)
22005         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
22006         (build/read-md.o): New rule.
22007         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
22008         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
22009         * coretypes.h: ...here.
22010         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
22011         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
22012         * genattr.c: Include read-md.h.
22013         * genattrtab.c: Likewise.
22014         * genconditions.c: Likewise.
22015         * genemit.c: Likewise.
22016         * genextract.c: Likewise.
22017         * genflags.c: Likewise.
22018         * genoutput.c: Likewise.
22019         * genpreds.c: Likewise.
22020         * genrecog.c: Likewise.
22021         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
22022         (join_c_conditions, print_c_condition, read_rtx_filename)
22023         (read_rtx_lineno): Move to read-md.h.
22024         * read-rtl.c: Include read-md.h.
22025         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
22026         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
22027         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
22028         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
22029         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
22030         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
22031         (read_braced_string, read_string): Move to read-md.c.
22032         (read_rtx): Move some initialization to init_md_reader and call
22033         init_md_reader here.
22034         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
22035         Move to read-md.h.
22036         * gensupport.c: Include read-md.h.
22037         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
22038         * read-md.h, read-md.c: New files.
22039
22040 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
22041
22042         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22043         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22044         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
22045         * config/moxie/moxie.c (moxie_function_value): Make static.
22046         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
22047         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22048
22049 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22050
22051         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
22052         * dbgcnt.def (tree_sra): New counter.
22053         * tree-sra.c: Include dbgcnt.h.
22054         (gate_intra_sra): Check tree_sra debug counter.
22055
22056 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22057
22058         PR tree-optimization/44258
22059         * tree-sra.c (build_access_subtree): Return false iff there is a
22060         partial overlap.
22061         (build_access_trees): Likewise.
22062         (analyze_all_variable_accesses): Disqualify candidates if
22063         build_access_trees returns true for them.
22064
22065 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
22066
22067         PR debug/41371
22068         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
22069         tail-recurse into canonical node.  Fast-forward over
22070         non-canonical VALUEs.
22071
22072 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
22073
22074         PR boostrap/44470
22075         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
22076         (*addsi_1_zext) <TYPE_LEA>: Likewise.
22077         (add lea splitter): Likewise.
22078         (add_zext lea splitter): Likewise.
22079
22080 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
22081
22082         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
22083
22084 2010-06-10  Jan Hubicka  <jh@suse.cz>
22085
22086         * df-problems.c (df_live_problem_data): Add live_bitmaps.
22087         (df_live_alloc): Initialize problem data and live_osbtacks.
22088         (df_live_finalize): Remove obstack, problem data; do not
22089         clear all bitmaps.
22090         (df_live_top_dump, df_live_bottom_dump): Do not dump old
22091         data when not allocated.
22092         (df_live_verify_solution_start): Do not allocate problem data.
22093         (df_live_verify_solution_end): Check if out is allocated.
22094         (struct df_md_problem_data): New structure.
22095         (df_md_alloc): Allocate problem data.
22096         (df_md_free): Free problem data; do not clear bitmaps.
22097
22098 2010-06-10  Jan Beulich  <jbeulich@novell.com>
22099
22100         PR bootstrap/37304
22101         * configure.ac: Replace $() with ${} when intending to expand
22102         variables rather than invoking commands.
22103         * configure: Re-generate.
22104
22105 2010-06-10  Jan Hubicka  <jh@suse.cz>
22106
22107         PR rtl-optimization/44460
22108         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
22109         TYPE_NEEDS_CONSTRUCTING sanity check.
22110
22111 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
22112
22113         * doc/include/fdl.texi: Move to GFDL version 1.3.
22114
22115         * doc/cpp.texi: Move to GFDL version 1.3.
22116         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
22117         * doc/gccint.texi: Move to GFDL version 1.3.
22118         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
22119         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
22120         * doc/invoke.texi: Move to GFDL version 1.3.
22121
22122 2010-06-09  Jan Hubicka  <jh@suse.cz>
22123
22124         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
22125         Break out from ...
22126         (propagate) ... here; swap the order.
22127
22128 2010-06-09  Jan Hubicka  <jh@suse.cz>
22129
22130         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
22131         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
22132         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
22133         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
22134
22135 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
22136
22137         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
22138         Do not the gather memory reference in the outer loop if the step
22139         is not a constant.
22140
22141 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
22142
22143         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
22144         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
22145         8 to 4.  Minor change of the related comments.
22146
22147 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22148
22149         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
22150         the scev analysis when the variable is not used outside the loop
22151         in a close phi node: call compute_overall_effect_of_inner_loop.
22152
22153 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22154
22155         * graphite-sese-to-poly.c (single_pred_cond): Renamed
22156         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
22157         (build_sese_conditions_before): Renamed call to single_pred_cond.
22158         (build_sese_conditions_after): Same.
22159
22160 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22161
22162         * graphite-poly.h: Fix comments and indentation.
22163         * graphite-sese-to-poly.c: Same.
22164         (build_sese_conditions_before): Compute stmt and gbb only when needed.
22165         * tree-chrec.c: Fix comments and indentation.
22166         (tree-ssa-loop-niter.c): Same.
22167
22168 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
22169
22170         PR rtl-optimization/42461
22171         * dce.c (deletable_insn_p): Return true for const or pure calls again.
22172         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
22173
22174 2010-06-09  Jan Hubicka  <jh@suse.cz>
22175
22176         * bitmap.c (bitmap_and): Walk array forward.
22177         (bitmap_and_compl_into): Likewise.
22178         (bitmap_xor): Likewise.
22179         (bitmap_xor_into):  Likewise.
22180         (bitmap_equal_p): Likewise.
22181         (bitmap_intersect_p): Likewise.
22182         (bitmap_intersect_compl_p): Likewise.
22183         (bitmap_ior_and_into): Likewise.
22184         (bitmap_elt_copy): Likewise.
22185         (bitmap_and_compl): Likewise.
22186         (bitmap_elt_ior): Likewise.
22187
22188 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
22189
22190         * opts-common.c (prune_options): Ensure replacement argv array
22191         is correctly terminated by a NULL entry.
22192
22193 2010-06-09  Jan Hubicka  <jh@suse.cz>
22194
22195         * cgraph.h (varpool_first_static_initializer,
22196         varpool_next_static_initializer): Make checking only when
22197         checking enabled.
22198         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
22199         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
22200         gcc_assert to gcc_checking_assert.
22201         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
22202         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
22203         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
22204         op_iter_init_phiuse, op_iter_init_phidef,
22205         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
22206         gcc_checking_assert.
22207         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
22208         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
22209         partition_is_global, live_on_entry, live_on_exit,
22210         live_merge_and_clear): Likewise.
22211         * system.h (gcc_checking_assert): New macro.
22212         * gimple.h (set_bb_seq): Use gcc_checking_assert.
22213
22214 2010-06-09  Jason Merrill  <jason@redhat.com>
22215
22216         * Makefile.in (TAGS): Collect tags info from c-family.
22217
22218 2010-06-09  Jan Hubicka  <jh@suse.cz>
22219
22220         * gimple.h (gcc_gimple_checking_assert): New macro.
22221         (gimple_set_def_ops, gimple_set_use_ops,
22222         gimple_set_vuse, gimple_set_vdef,
22223         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
22224         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
22225         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
22226         gimple_asm_output_op, gimple_asm_output_op_ptr,
22227         gimple_asm_set_output_op, gimple_asm_clobber_op,
22228         gimple_asm_set_clobber_op, gimple_asm_label_op,
22229         gimple_asm_set_label_op, gimple_try_set_kind,
22230         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
22231         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
22232         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
22233         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
22234         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
22235         gimple_omp_for_set_initial, gimple_omp_for_final,
22236         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
22237         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
22238         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
22239         conditional with ENABLE_GIMPLE_CHECKING.
22240         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
22241
22242 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
22243
22244         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
22245         (get_computation_cost_at): Use it.
22246         (determine_use_iv_cost_condition): Likewise.
22247         (determine_iv_cost): Likewise.
22248
22249 2010-06-09  Richard Guenther  <rguenther@suse.de>
22250
22251         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
22252         replace constants.
22253
22254 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
22255
22256         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
22257
22258 2010-06-09  Martin Jambor  <mjambor@suse.cz>
22259
22260         PR tree-optimization/44423
22261         * tree-sra.c (dump_access): Dump also grp_assignment_read.
22262         (analyze_access_subtree): Pass negative allow_replacements to children
22263         if the current type is scalar.
22264
22265 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22266
22267         PR testsuite/42843
22268         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
22269         * doc/plugins.texi (Plugin license check): Update information
22270         on type of plugin_is_GPL_compatible.
22271         * Makefile.in (PLUGINCC): Define as $(COMPILER).
22272         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
22273
22274 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22275
22276         * config/arm/arm.c (thumb2_reorg): New function.
22277         (arm_reorg): Call it.
22278         * config/arm/thumb2.md (define_peephole2 for flag clobbering
22279         arithmetic operations): Delete.
22280
22281 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
22282
22283         PR target/44067
22284         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
22285         e500v2 target.
22286
22287 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22288
22289         PR plugins/44459
22290         * gcc-plugin.h: Encapsulate all declarations in extern "C".
22291
22292 2010-06-08  Jan Hubicka  <jh@suse.cz>
22293
22294         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
22295         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
22296
22297 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
22298
22299         PR tree-optimization/39874
22300         PR middle-end/28685
22301         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
22302         Declare.
22303         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
22304         same_bool_result_p): New.
22305         (and_var_with_comparison, and_var_with_comparison_1,
22306         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
22307         (or_var_with_comparison, or_var_with_comparison_1,
22308         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
22309         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
22310         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
22311         of combine_comparisons.
22312         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
22313
22314 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
22315
22316         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22317         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22318         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
22319         pdp11_function_value_regno_p): New functions.
22320         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22321         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22322
22323 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
22324
22325         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
22326         Thumb-2 in the MINUS case.
22327
22328 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22329
22330         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
22331
22332         * doc/gty.texi (GTY Options): Document typed GC allocation and
22333         variable_size GTY option.
22334
22335         * ggc-internal.h: New.
22336
22337         * ggc.h: Update copyright year.
22338         (digit_string): Move to stringpool.c.
22339         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
22340         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
22341         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
22342         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
22343         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
22344         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
22345         (ggc_force_collect, ggc_get_size, ggc_statistics)
22346         (ggc_print_common_statistics): Move to ggc-internal.h.
22347         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
22348         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
22349         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
22350         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
22351         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
22352         (ggc_alloc_zone_pass_stat): Remove.
22353         (ggc_internal_alloc_stat, ggc_internal_alloc)
22354         (ggc_internal_cleared_alloc_stat): New.
22355         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
22356         (ggc_internal_vec_alloc_stat)
22357         (ggc_internal_cleared_vec_alloc_stat)
22358         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
22359         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
22360         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
22361         (ggc_cleared_alloc_ptr_array_two_args): New.
22362         (htab_create_ggc, splay_tree_new_ggc): Redefine.
22363         (ggc_splay_alloc): Change the type of the first argument to
22364         enum gt_types_enum.
22365         (ggc_alloc_string): Make macro.
22366         (ggc_alloc_string_stat): New.
22367         (ggc_strdup): Redefine.
22368         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
22369         (ggc_alloc_rtvec_sized): New.
22370         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
22371         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
22372         (ggc_internal_cleared_alloc_zone_stat)
22373         (ggc_internal_zone_alloc_stat)
22374         (ggc_internal_zone_cleared_alloc_stat)
22375         (ggc_internal_zone_vec_alloc_stat)
22376         (ggc_alloc_zone_rtx_def_stat)
22377         (ggc_alloc_zone_tree_node_stat)
22378         (ggc_alloc_zone_cleared_tree_node_stat)
22379         (ggc_alloc_cleared_gimple_statement_d_stat): New.
22380
22381         * ggc-common.c: Include ggc-internal.h.
22382         (ggc_internal_cleared_alloc_stat): Rename from
22383         ggc_alloc_cleared_stat.
22384         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
22385         (ggc_calloc): Remove.
22386         (ggc_cleared_alloc_htab_ignore_args): New.
22387         (ggc_cleared_alloc_ptr_array_two_args): New.
22388         (ggc_splay_alloc): Add obj_type parameter.
22389         (init_ggc_heuristics): Formatting fixes.
22390
22391         * ggc-none.c: Update copyright year.
22392         (ggc_alloc_stat): Rename to ggc_alloc_stat.
22393         (ggc_alloc_cleared_stat): Rename to
22394         ggc_internal_cleared_alloc_stat.
22395         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22396
22397         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
22398         Remove references to ggc_alloc in comments.
22399         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
22400         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
22401         (new_ggc_zone, destroy_ggc_zone): Remove.
22402         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22403
22404         * ggc-zone.c: Include ggc-internal.h.  Remove references to
22405         ggc_alloc in comments.
22406         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
22407         (ggc_internal_alloc_zone_pass_stat): New.
22408         (ggc_internal_cleared_alloc_zone_stat): New.
22409         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
22410         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
22411         (new_ggc_zone, destroy_ggc_zone): Remove.
22412
22413         * stringpool.c: Update copyright year.  Include ggc-internal.h
22414         (digit_vector): Make static.
22415         (digit_string): Moved from ggc.h.
22416         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
22417         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
22418
22419         * Makefile.in (GGC_INTERNAL_H): New.
22420         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
22421         $(GGC_INTERNAL_H) to dependencies.
22422
22423         * gentype.c: Update copyright year.
22424         (walk_type): Accept variable_size GTY option.
22425         (USED_BY_TYPED_GC_P): New macro.
22426         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
22427         whitespace at the end of strings.
22428         (get_type_specifier, variable_size_p): New functions.
22429         (alloc_quantity, alloc_zone): New enums.
22430         (write_typed_alloc_def): New function.
22431         (write_typed_struct_alloc_def): Likewise.
22432         (write_typed_typed_typedef_alloc_def): Likewise.
22433         (write_typed_alloc_defns): Likewise.
22434         (output_typename, write_splay_tree_allocator_def): Likewise.
22435         (write_splay_tree_allocators): Likewise.
22436         (main): Call write_typed_alloc_defns and
22437         write_splay_tree_allocators.
22438
22439         * lto-streamer.h (lto_file_decl_data_ptr): New.
22440
22441         * passes.c (order): Define using cgraph_node_ptr.
22442
22443         * strinpool.c (struct string_pool_data): Declare nested_ptr using
22444         ht_identifier_ptr.
22445
22446         * gimple.h (union gimple_statement_d): Likewise.
22447
22448         * rtl.h (struct rtx_def): Likewise.
22449         (struct rtvec_def): Likewise.
22450
22451         * tree.h (union tree_node): Likewise.
22452
22453         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
22454
22455         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
22456
22457         * tree-scalar-evolution.c (scev_initialize): Likewise.
22458
22459         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
22460
22461         * dwarf2asm.c (dw2_force_const_mem): Likewise.
22462
22463         * omp-low.c (lower_omp_critical): Likewise.
22464
22465         * bitmap.h (struct bitmap_head_def): Update comment to not
22466         reference ggc_alloc.
22467
22468         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
22469
22470         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
22471
22472         * ipa-prop.c (duplicate_ggc_array): Rename to
22473         duplicate_ipa_jump_func_array.  Use typed GC allocation.
22474         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
22475
22476         * gimple.c (gimple_alloc_stat): Use
22477         ggc_alloc_cleared_gimple_statement_d_stat.
22478
22479         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
22480
22481         * tree.c (make_node_stat): Use
22482         ggc_alloc_zone_cleared_tree_node_stat.
22483         (make_tree_vec_stat): Likewise.
22484         (build_vl_exp_stat): Likewise.
22485         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
22486         (make_tree_binfo_stat): Likewise.
22487         (tree_cons_stat): Likewise.
22488
22489         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
22490         (shallow_copy_rtx_stat): Likewise.
22491         (make_node_stat): Likewise.
22492
22493         * lto-symtab.c: Fix comment.
22494
22495         * tree-cfg.c (create_bb): Update comment to not reference
22496         ggc_alloc_cleared.
22497         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
22498
22499         * varpool.c (varpool_node): Use typed GC allocation.
22500         (varpool_extra_name_alias): Likewise.
22501
22502         * varasm.c (emutls_decl): Likewise.
22503         (get_unnamed_section): Likewise.
22504         (get_noswitch_section): Likewise.
22505         (get_section): Likewise.
22506         (get_block_for_section): Likewise.
22507         (build_constant_desc): Likewise.
22508         (create_constant_pool): Likewise.
22509         (force_const_mem): Likewise.
22510
22511         * tree.c (build_vl_exp_stat): Likewise.
22512         (build_real): Likewise.
22513         (build_string): Likewise.
22514         (decl_debug_expr_insert): Likewise.
22515         (decl_value_expr_insert): Likewise.
22516         (type_hash_add): Likewise.
22517         (build_omp_clause): Likewise.
22518
22519         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
22520
22521         * tree-ssa.c (init_tree_ssa): Likewise.
22522
22523         * tree-ssa-structalias.c (heapvar_insert): Likewise.
22524
22525         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
22526
22527         * tree-ssa-loop-niter.c (record_estimate): Likewise.
22528
22529         * tree-ssa-alias.c (get_ptr_info): Likewise.
22530
22531         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
22532
22533         * tree-phinodes.c (allocate_phi_node): Likewise.
22534
22535         * tree-iterator.c (tsi_link_before): Likewise.
22536         (tsi_link_after): Likewise.
22537
22538         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
22539
22540         * tree-dfa.c (create_var_ann): Likewise.
22541
22542         * tree-cfg.c (create_bb): Likewise.
22543
22544         * toplev.c (alloc_for_identifier_to_locale): Likewise.
22545         (general_init): Likewise.
22546
22547         * stringpool.c (stringpool_ggc_alloc): Likewise.
22548         (gt_pch_save_stringpool): Likewise.
22549
22550         * sese.c (if_region_set_false_region): Likewise.
22551
22552         * passes.c (do_per_function_toporder): Likewise.
22553
22554         * optabs.c (set_optab_libfunc): Likewise.
22555         (set_conv_libfunc): Likewise.
22556
22557         * lto-symtab.c (lto_symtab_register_decl): Likewise.
22558
22559         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
22560         (input_eh_region): Likewise.
22561         (input_eh_lp): Likewise.
22562         (make_new_block): Likewise.
22563         (unpack_ts_real_cst_value_fields): Likewise.
22564
22565         * lto-section-in.c (lto_new_in_decl_state): Likewise.
22566
22567         * lto-cgraph.c (input_node_opt_summary): Likewise.
22568
22569         * loop-init.c (loop_optimizer_init): Likewise.
22570
22571         * lambda.h (lambda_vector_new): Likewise.
22572
22573         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
22574
22575         * ira.c (update_equiv_regs): Likewise.
22576
22577         * ipa.c (cgraph_node_set_new): Likewise.
22578         (cgraph_node_set_add): Likewise.
22579         (varpool_node_set_new): Likewise.
22580         (varpool_node_set_add): Likewise.
22581
22582         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
22583         (duplicate_ipa_jump_func_array): Likewise.
22584         (ipa_read_node_info): Likewise.
22585
22586         * ipa-cp.c (ipcp_create_replace_map): Likewise.
22587
22588         * integrate.c (get_hard_reg_initial_val): Likewise.
22589
22590         * gimple.c (gimple_alloc_stat): Likewise.
22591         (gimple_build_omp_for): Likewise.
22592         (gimple_seq_alloc): Likewise.
22593         (gimple_copy): Likewise.
22594
22595         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
22596         (gsi_insert_after_without_update): Likewise.
22597
22598         * function.c (add_frame_space): Likewise.
22599         (insert_temp_slot_address): Likewise.
22600         (assign_stack_temp_for_type): Likewise.
22601         (allocate_struct_function): Likewise.
22602         (types_used_by_var_decl_insert): Likewise.
22603
22604         * except.c (init_eh_for_function): Likewise.
22605         (gen_eh_region): Likewise.
22606         (gen_eh_region_catch): Likewise.
22607         (gen_eh_landing_pad): Likewise.
22608         (add_call_site): Likewise.
22609
22610         * emit-rtl.c (get_mem_attrs): Likewise.
22611         (get_reg_attrs): Likewise.
22612         (start_sequence): Likewise.
22613         (init_emit): Likewise.
22614
22615         * dwarf2out.c (new_cfi): Likewise.
22616         (queue_reg_save): Likewise.
22617         (dwarf2out_frame_init): Likewise.
22618         (new_loc_descr): Likewise.
22619         (find_AT_string): Likewise.
22620         (new_die): Likewise.
22621         (add_var_loc_to_decl): Likewise.
22622         (clone_die): Likewise.
22623         (clone_as_declaration): Likewise.
22624         (break_out_comdat_types): Likewise.
22625         (new_loc_list): Likewise.
22626         (loc_descriptor): Likewise.
22627         (add_loc_descr_to_each): Likewise.
22628         (add_const_value_attribute): Likewise.
22629         (tree_add_const_value_attribute): Likewise.
22630         (add_comp_dir_attribute): Likewise.
22631         (add_name_and_src_coords_attributes): Likewise.
22632         (lookup_filename): Likewise.
22633         (store_vcall_insn): Likewise.
22634         (dwarf2out_init): Likewise.
22635
22636         * dbxout.c (dbxout_init): Likewise.
22637
22638         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
22639
22640         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
22641
22642         * config/score/score7.c (score7_output_external): Likewise.
22643
22644         * config/score/score3.c (score3_output_external): Likewise.
22645
22646         * config/s390/s390.c (s390_init_machine_status): Likewise.
22647
22648         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
22649         (rs6000_init_machine_status): Likewise.
22650         (output_toc): Likewise.
22651
22652         * config/pa/pa.c (pa_init_machine_status): Likewise.
22653         (get_deferred_plabel): Likewise.
22654
22655         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
22656
22657         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
22658
22659         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
22660
22661         * config/mep/mep.c (mep_init_machine_status): Likewise.
22662         (mep_note_pragma_flag): Likewise.
22663
22664         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
22665
22666         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
22667
22668         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
22669
22670         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
22671         (i386_pe_maybe_record_exported_symbol): Likewise.
22672
22673         * config/i386/i386.c (get_dllimport_decl): Likewise.
22674         (ix86_init_machine_status): Likewise.
22675         (assign_386_stack_local): Likewise.
22676
22677         * config/frv/frv.c (frv_init_machine_status): Likewise.
22678
22679         * config/darwin.c (machopic_indirection_name): Likewise.
22680
22681         * config/cris/cris.c (cris_init_machine_status): Likewise.
22682
22683         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
22684
22685         * config/avr/avr.c (avr_init_machine_status): Likewise.
22686
22687         * config/arm/arm.c (arm_init_machine_status): Likewise.
22688
22689         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
22690         (alpha_need_linkage): Likewise.
22691         (alpha_use_linkage): Likewise.
22692
22693         * cgraph.c (cgraph_allocate_node): Likewise.
22694         (cgraph_create_edge_1): Likewise.
22695         (cgraph_create_indirect_edge): Likewise.
22696         (cgraph_add_asm_node): Likewise.
22697
22698         * cfgrtl.c (init_rtl_bb_info): Likewise.
22699
22700         * cfgloop.c (alloc_loop): Likewise.
22701         (rescan_loop_exit): Likewise.
22702
22703         * cfg.c (init_flow): Likewise.
22704         (alloc_block): Likewise.
22705         (unchecked_make_edge): Likewise.
22706
22707         * c-parser.c (c_parse_init): Likewise.
22708         (c_parse_file): Likewise.
22709
22710         * c-decl.c (bind): Likewise.
22711         (record_inline_static): Likewise.
22712         (push_scope): Likewise.
22713         (make_label): Likewise.
22714         (lookup_label_for_goto): Likewise.
22715         (finish_struct): Likewise.
22716         (finish_enum): Likewise.
22717         (c_push_function_context): Likewise.
22718
22719         * bitmap.c (bitmap_element_allocate): Likewise.
22720         (bitmap_gc_alloc_stat): Likewise.
22721
22722         * alias.c (record_alias_subset): Likewise.
22723         (init_alias_analysis): Likewise.
22724
22725 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
22726
22727         * fold-const.c (fold_comparison): Remove redundant parenthesis.
22728         * tree-inline.c (expand_call_inline): Pass translated return value of
22729         cgraph_inline_failed_string to diagnostic function.
22730
22731 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
22732             Shujing Zhao  <pearly.zhao@oracle.com>
22733
22734         PR c/37724
22735         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
22736         implicit bad conversions is initialization.
22737         (error_init): Use gmsgid instead of msgid for argument name and change
22738         the call for error.
22739         (pedwarn_init): Use gmsgid instead of msgid for argument name and
22740         change the call for pedwarn.
22741         (warning_init): Use gmsgid instead of msgid for argument name and
22742         change the call for warning.
22743
22744 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
22745
22746         * config/mips/mips-protos.h (mips_print_operand): Delete.
22747         (mips_print_operand_address): Delete.
22748         * config/mips/mips.h (mips_print_operand_punct): Delete.
22749         (PRINT_OPERAND): Delete.
22750         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22751         (PRINT_OPERAND_ADDRESS): Delete.
22752         * config/mips/mips.c (mips_print_operand_punct): Make static.
22753         (mips_print_operand_address): Make static.
22754         (mips_print_operand): Make static.  Call
22755         mips_print_operand_punct_valid_p.
22756         (mips_print_operand_punct_valid_p): New function.
22757         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22758         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22759
22760 2010-06-07  Jan Hubicka  <jh@suse.cz>
22761
22762         PR middle-end/44454
22763         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
22764         are allocated.
22765
22766 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
22767
22768         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
22769         name of RECORD.
22770
22771 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22772
22773         * doc/sourcebuild.texi (Effective-Target Keywords, Other
22774         attributes): Document gas.
22775
22776 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
22777
22778         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
22779         <TYPE_LEA>: Split instruction.
22780         <default>: Remove alternative 2 handling.
22781         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
22782         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
22783         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
22784
22785         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
22786         (ashift_zext lea splitter): Use DImode for multiplication.
22787
22788         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
22789         to generate addition.
22790
22791 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
22792
22793         * common.opt (fira-verbose): Use Var.
22794         (fpcc-struct-return): Use Init instead of VarExists.
22795         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
22796         toplev.c.
22797         * flags.h (flag_signed_char, flag_short_enums,
22798         flag_pcc_struct_return, flag_ira_verbose,
22799         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
22800         * toplev.c (flag_detailed_statistics, flag_signed_char,
22801         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
22802         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
22803         * toplev.h (flag_crossjumping, flag_if_conversion,
22804         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
22805         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
22806         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
22807         flag_cprop_registers, time_report, flag_ira_loop_pressure,
22808         flag_ira_coalesce, flag_ira_move_spills,
22809         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
22810
22811 2010-06-07  Jan Hubicka  <jh@suse.cz>
22812
22813         * df-core.c (df_analyze_problem): Do verification after allocation.
22814
22815         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
22816         (df_lr_alloc): Initialize problem data; move bitmaps to
22817         lr_bitmaps obstack.
22818         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
22819         (df_lr_verify_solution_start): Do not initialize problem data;
22820         allocate bitmaps in lr_bitmaps.
22821         (df_lr_verify_solution_end): Do not free problem data.
22822
22823 2010-06-07  Jan Hubicka  <jh@suse.cz>
22824
22825         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
22826         if caller is noreturn.
22827         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
22828         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
22829         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
22830         * ipa-pure-const.c (check_decl): Add IPA parameter.
22831         (state_from_flags): New function.
22832         (better_state, worse_state): New functions.
22833         (check_call): When in IPA mode, do not care about callees.
22834         (check_load, check_store): Update.
22835         (check_ipa_load, check_ipa_store): New.
22836         (check_stmt): When in IPA mode, use IPA checkers.
22837         (analyze_function): Use state_from_flags.
22838         (propagate): Check indirect edges and references.
22839
22840 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
22841
22842         PR rtl-optimization/44404
22843         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
22844         of count_occurrences to see if it's safe to modify mem_insn.
22845
22846 2010-06-07  Richard Guenther  <rguenther@suse.de>
22847
22848         * gimplify.c (gimplify_cleanup_point_expr): For empty body
22849         and EH-only cleanup drop the cleanup instead of inserting it
22850         unconditionally.
22851
22852 2010-06-07  Ira Rosen  <irar@il.ibm.com>
22853
22854         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
22855         documentation.
22856         * targhooks.c (default_builtin_vectorization_cost): New function.
22857         * targhooks.h (default_builtin_vectorization_cost): Declare.
22858         * target.h (enum vect_cost_for_stmt): Define.
22859         (builtin_vectorization_cost): Change argument and comment.
22860         * tree-vectorizer.h: Remove cost model macros.
22861         * tree-vect-loop.c: Include target.h.
22862         (vect_get_cost): New function.
22863         (vect_estimate_min_profitable_iters): Replace cost model macros with
22864         calls to vect_get_cost.
22865         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
22866         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
22867         default implementation.
22868         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
22869         calls to target hook builtin_vectorization_cost.
22870         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
22871         Likewise.
22872         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
22873         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
22874         implementation to return costs.
22875         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
22876         * config/spu/spu.h: Remove vectorizer cost model macros.
22877         * config/i386/i386.h: Likewise.
22878         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
22879         a call to target hook builtin_vectorization_cost.
22880
22881 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
22882
22883         PR target/44319
22884         * config/i386/i386.c (override_options): Turn zee pass on for level 2
22885         and above and defer till target is known.
22886         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
22887         turn off otherwise.
22888
22889 2010-05-25  Jan Hubicka  <jh@suse.cz>
22890
22891         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
22892         (df_compact_blocks): Likewise.
22893         * df.h (struct df): Turn hardware_regs_used,
22894         regular_block_artificial_uses, eh_block_artificial_uses,
22895         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
22896         bitmap_head.
22897         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
22898         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
22899         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
22900         df_scan_blocks, df_insn_delete, df_insn_rescan,
22901         df_insn_rescan_debug_internal, df_insn_rescan_all,
22902         df_process_deferred_rescans, df_process_deferred_rescans,
22903         df_notes_rescan, df_get_call_refs, df_get_call_refs,
22904         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
22905         df_record_entry_block_defs, df_record_exit_block_uses,
22906         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
22907         df_scan_verify): Update.
22908
22909 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
22910
22911         PR c++/44188
22912         * c-common.c (is_typedef_decl): Move this definition ...
22913         * tree.c (is_typedef_decl): ... here.
22914         (typdef_variant_p): Move definition here from cp/tree.c.
22915         * c-common.h (is_typedef_decl): Move this declaration ...
22916         * tree.h (is_typedef_decl): ... here.
22917         (typedef_variant_p): Move declaration here from cp/cp-tree.h
22918         * dwarf2out.c (is_naming_typedef_decl): New function.
22919         (gen_tagged_type_die): Split out of ...
22920         (gen_type_die_with_usage): ... this function. When an anonymous
22921         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
22922         is emitted for the typedef.
22923         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
22924         anonymous tagged types.
22925
22926 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22927
22928         PR c/20000
22929         * c-decl.c (grokdeclarator): Delete warning.
22930
22931 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22932
22933         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
22934         newly built CALL_EXPR.
22935         * tree-profile.c (tree_profiling): Don't profile functions produced
22936         for built-in stuff.
22937
22938 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
22939
22940         PR bootstrap/44427
22941         PR bootstrap/44428
22942         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
22943         endianness-independent.
22944
22945 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
22946
22947         * c-common.c: Move to c-family/.
22948         * c-common.def: Likewise.
22949         * c-common.h: Likewise.
22950         * c-cppbuiltin.c: Likewise.
22951         * c-dump.c: Likewise.
22952         * c-format.c: Likewise.
22953         * c-format.h : Likewise.
22954         * c-gimplify.c: Likewise.
22955         * c-lex.c: Likewise.
22956         * c-omp.c: Likewise.
22957         * c.opt: Likewise.
22958         * c-opts.c: Likewise.
22959         * c-pch.c: Likewise.
22960         * c-ppoutput.c: Likewise.
22961         * c-pragma.c: Likewise.
22962         * c-pragma.h: Likewise.
22963         * c-pretty-print.c: Likewise.
22964         * c-pretty-print.h: Likewise.
22965         * c-semantics.c: Likewise.
22966         * stub-objc.c: Likewise.
22967
22968         * gengtype.c (get_file_langdir): Special-case files in c-family/.
22969         (get_output_file_with_visibility): Fix name for c-common.h.
22970         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
22971
22972         * c-tree.h: Update include path for moved files.
22973         * c-lang.c: Likewise.
22974         * c-lang.h: Likewise.
22975         * c-parser.c: Likewise.
22976         * c-convert.c: Likewise.
22977         * c-decl.c: Likewise.
22978         * c-objc-common.c: Likewise.
22979         * configure.ac: Make sure c-family/ exists in the build directory.
22980         * configure: Regenerate.
22981         * Makefile.in: Update paths for moved files.  Regroup files per
22982         location and update dependencies.  Move generated_files down after
22983         ALL_GTFILES_H.
22984
22985         * config/spu/spu-c.c: Update paths for moved files.
22986         * config/mep/mep-pragma.c: Likewise.
22987         * config/darwin-c.c: Likewise.
22988         * config/i386/msformat-c.c: Likewise.
22989         * config/i386/i386-c.c: Likewise.
22990         * config/avr/avr-c.c: Likewise.
22991         * config/sol2-c.c: Likewise.
22992         * config/ia64/ia64-c.c: Likewise.
22993         * config/rs6000/rs6000-c.c: Likewise.
22994         * config/arm/arm.c: Likewise.
22995         * config/arm/arm-c.c: Likewise.
22996         * config/h8300/h8300.c: Likewise.
22997         * config/v850/v850-c.c: Likewise.
22998
22999         * config/t-darwin: Fix dependencies for moved files.
23000         * config/t-sol2: Fix dependencies for moved files.
23001         * config/mep/t-mep: Fix dependencies for moved files.
23002         * config/ia64/t-ia64: Fix dependencies for moved files.
23003         * config/rs6000/t-rs6000: Fix dependencies for moved files.
23004         * config/v850/t-v850: Fix dependencies for moved files.
23005         * config/v850/t-v850e: Fix dependencies for moved files.
23006
23007         * config/m32c/m32c-pragma.c
23008
23009         * po/exgettext: Look in c-family/ also.
23010
23011 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
23012
23013         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
23014         (mark_control_dependent_edges_necessary): Call it instead of marking
23015         the last statement manually.
23016         (propagate_necessity): Likewise.
23017
23018 2010-06-05  Jan Hubicka  <jh@suse.cz>
23019
23020         * basic-block.h (compute_dominance_frontiers): Updated.
23021         (compute_idf): Likewise.
23022
23023         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
23024         for dominance frontiers.
23025         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
23026         (insert_updated_phi_nodes_for): Likewise.
23027         (update_ssa): Likewise.
23028         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23029         (compute_dominance_frontiers): Likewise.
23030         (compute_idf): Likewise.
23031         * df-problems.c (df_md_local_compute): Likewise.
23032
23033 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
23034
23035         * target.h (struct gcc_target): Add memory_move_cost field.
23036         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
23037         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
23038         * targhooks.c (default_memory_move_cost): New function.
23039         * targhooks.h (default_memory_move_cost): Declare function.
23040         * reload.h (memory_move_cost): Declare.
23041         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23042         * reginfo.c (memory_move_cost): New function.
23043         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23044         * ira.h (ira_memory_move_cost): Update comment.
23045         * ira.c (ira_memory_move_cost): Update comment.
23046         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
23047         with memory_move_cost.
23048         * postreload.c (reload_cse_simplify_set): (Ditto.).
23049         * reload1.c (choose_reload_regs): (Ditto.).
23050         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
23051         (MEMORY_MOVE_COST):  Revise documentation.
23052
23053         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23054         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23055         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
23056         type of 'in' argument to bool.
23057         (TARGET_MEMORY_MOVE_COST): Define.
23058
23059 2010-06-05  Jan Hubicka  <jh@suse.cz>
23060
23061         * ipa-pure-const.c (propagate): Fix typo in handling of functions
23062         that cannot return.  Be more careful when merging the results with
23063         previously known ones.
23064
23065 2010-06-05  Matthias Klose  <doko@ubuntu.com>
23066
23067         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
23068         function to add the -iplugindir option.
23069         (find_plugindir_spec_function): Add new declaration and function.
23070         (static_spec_func): Use it for "find-plugindir".
23071
23072 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
23073
23074         PR c++/44361
23075         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
23076         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
23077         statement expression.
23078
23079 2010-06-05  Jan Hubicka  <jh@suse.cz>
23080
23081         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
23082         (df_rd_problem_data): Convert sparse_invalidated_by_call,
23083         dense_invalidated_by_call to bitmap head.
23084         (df_rd_alloc, df_rd_bb_local_compute_process_def,
23085         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
23086         df_rd_start_dump, df_lr_verify_transfer_functions,
23087         df_live_verify_transfer_functions, df_chain_create_bb,
23088         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
23089         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
23090         df_simulate_one_insn_forwards, df_md_alloc,
23091         df_md_bb_local_compute_process_def,
23092         df_md_bb_local_compute_process_def, df_md_local_compute,
23093         df_md_transfer_function df_md_free): Update.
23094
23095 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
23096
23097         PR c/44322
23098         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
23099         target type for ADDR_EXPR; require no changes to qualifiers except
23100         for function types.
23101         * c-tree.h (c_build_type_variant): Remove.
23102
23103 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
23104
23105         * genautomata.c (get_excl_set): Do work per element, not per char.
23106         (check_presence_pattern_sets): Similar.
23107         (check_absence_pattern_sets): Similar.
23108
23109 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
23110
23111         * genautomata.c (curr_state_pass_num): Delete.
23112         (min_issue_delay_pass_states): Delete.
23113         (min_issue_delay): Delete.
23114         (initiate_min_issue_delay_pass_states): Delete.
23115         (output_min_issue_delay_table): Compute min_issue_delay_vect
23116         using a breadth-first search variant.
23117         (output_tables): Don't call initiate_min_issue_delay_pass_states.
23118
23119 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
23120
23121         PR boostrap/44421
23122         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
23123         (df_byte_lr_bb_local_compute): Likewise.
23124
23125 2010-06-03  Jason Merrill  <jason@redhat.com>
23126
23127         Implement noexcept operator (5.3.7)
23128         * c-common.c (c_common_reswords): Add noexcept.
23129         * c-common.h (enum rid): Add RID_NOEXCEPT.
23130
23131 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
23132
23133         * config/darwin-driver.c (darwin_default_min_version): Use
23134         GCC-specific formats in diagnostics.
23135         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
23136         diagnostics.
23137         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
23138         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
23139         eval_spec_function, handle_braces, process_brace_body, main,
23140         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
23141         getenv_spec_function, compare_version_strings,
23142         version_compare_spec_function): Use GCC-specific formats in
23143         diagnostics.
23144
23145 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23146
23147         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
23148         that operand 0 and operand 1 are equal.
23149         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
23150         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
23151         and operand 1 are equal.
23152         <default>: Ditto.  Remove ??? comment.
23153         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
23154         and operand 1 are equal.
23155         <default>: Ditto.  Remove ??? comment.
23156         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
23157         are equal.
23158         (*add<mode>_4) <default>: Ditto.
23159         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
23160
23161 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
23162
23163         * config/i386/i386-protos.h (ix86_print_operand): Declare.
23164         * config/i386/i386.c (ix86_print_operand): Make non-static.
23165         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
23166         * output.h (output_operand): Declare.
23167         * final.c (output_operand): Make non-static.
23168
23169 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
23170
23171         PR rtl-optimization/44013
23172         * sched-deps.c (add_dependence_list_and_free): Don't free lists
23173         when processing debug insns.
23174
23175         PR debug/41371
23176         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
23177         recursing.  Check that recursion is bounded.  Rename inner var
23178         to avoid hiding incoming argument.
23179
23180 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23181
23182         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
23183         operands[2] == 255.
23184         (*addqi_3): Ditto.
23185         (*addqi_4): Ditto.
23186         (*addqi_5): Ditto.
23187         (*addqi_ext_1_rex64): Ditto.
23188         (*addqi_ext_1): Ditto.
23189
23190         (*addqi_4): Check for incdec_operand in QImode.
23191
23192         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
23193         using SWI mode iterator.
23194         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
23195         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
23196         mode iterator.
23197         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
23198         using SWI mode iterator.
23199
23200 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23201
23202         PR c/25880
23203         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
23204         * c-format.c (gcc_diag_flag_specs): Add hash.
23205         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
23206         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
23207         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
23208         pp_c_cv_qualifiers. Handle qualifiers spelling here.
23209         (pp_c_type_qualifier_list): Call the function above.
23210         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
23211         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
23212         (WARN_FOR_QUALIFIERS): New macro.
23213         (convert_for_assignment): Use it.
23214
23215 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
23216
23217         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
23218
23219 2010-06-04  Jan Hubicka  <jh@suse.cz>
23220
23221         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
23222         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
23223         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
23224         DF_BYTE_LR_OUT): Update for embedded bitmaps.
23225         * fwprop.c (single_def_use_enter_block): Likewise.
23226         * ddg.c (create_ddg_dep_from_intra_loop_link,
23227         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
23228         * loop-iv.c (latch_dominating_def): Likewise.
23229         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
23230         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
23231         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
23232         df_rd_transfer_function, df_rd_top_dump,
23233         df_rd_bottom_dump): Update.
23234         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
23235         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
23236         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
23237         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
23238         df_lr_verify_solution_start, df_lr_verify_solution_end,
23239         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
23240         df_live_free_bb_info, df_live_alloc, df_live_reset,
23241         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
23242         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
23243         df_live_verify_solution_start, df_live_verify_solution_end,
23244         df_live_verify_transfer_functions, df_chain_create_bb,
23245         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
23246         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23247         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23248         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
23249         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
23250         df_byte_lr_transfer_function, df_byte_lr_top_dump,
23251         df_byte_lr_bottom_dump, df_create_unused_note,
23252         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
23253         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
23254         df_md_transfer_function, df_md_init, df_md_confluence_0,
23255         df_md_confluence_n,
23256         df_md_top_dump, df_md_bottom_dump): Update.
23257         (struct df_lr_problem_data): Embedd bitmap headers.
23258
23259 2010-06-04  Jan Hubicka  <jh@suse.cz>
23260
23261         * dce.c (dce_process_block): Do not re-scan already marked
23262         instructions.
23263
23264 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
23265
23266         PR rtl-optimization/39871
23267         PR rtl-optimization/40615
23268         PR rtl-optimization/42500
23269         PR rtl-optimization/42502
23270         * ira.c (init_reg_equiv_memory_loc: New function.
23271         (ira): Call it twice.
23272         * reload.h (calculate_elim_costs_all_insns): Declare.
23273         * ira-costs.c: Include "reload.h".
23274         (regno_equiv_gains): New static variable.
23275         (init_costs): Allocate it.
23276         (finish_costs): Free it.
23277         (ira_costs): Call calculate_elim_costs_all_insns.
23278         (find_costs_and_classes): Take estimated elimination costs
23279         into account.
23280         (ira_adjust_equiv_reg_cost): New function.
23281         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
23282         * reload1.c (init_eliminable_invariants, free_reg_equiv,
23283         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
23284         (elim_bb): New static variable.
23285         (reload): Move code out of here into init_eliminable_invariants and
23286         free_reg_equiv.  Call them.
23287         (calculate_elim_costs_all_insns): New function.
23288         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
23289         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
23290         but call note_reg_elim_costly if we turned a valid memory address
23291         into an invalid one.
23292         * Makefile.in (ira-costs.o): Depend on reload.h.
23293
23294 2010-06-04  Julian Brown  <julian@codesourcery.com>
23295
23296         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
23297         for pool ranges.
23298
23299 2010-06-04  Richard Guenther  <rguenther@suse.de>
23300
23301         PR lto/41584
23302         * cgraph.h (struct varpool_node): Add lto_file_data field.
23303         * lto-cgraph.c (input_varpool_node): Initialize it.
23304
23305 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23306
23307         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
23308         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
23309         predicate in "type" attribute calculation.
23310         (*addsi_1_zext): Ditto.
23311         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
23312         (*addsi_2_zext): Ditto.
23313         (*add<mode>_3): Ditto.
23314         (*addsi_3_zext): Ditto.
23315         (*add<mode>_5): Ditto.
23316
23317 2010-06-03  Jan Hubicka  <jh@suse.cz>
23318
23319         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
23320         of bitmap_bit_p.
23321         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23322
23323 2010-06-03  Jan Hubicka  <jh@suse.cz>
23324
23325         * df-problems.c (df_create_unused_note, df_note_bb_compute):
23326         micro-optimize the checks when to add new note.
23327
23328 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
23329
23330         * final.c (output_asm_insn): Call
23331         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
23332         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
23333         (output_address): Call targetm.asm_out.print_operand_address.
23334         Update comments.
23335         * target.h (struct gcc_target): Add print_operand,
23336         print_operand_address, and print_operand_punct_valid_p fields.
23337         * targhooks.h (default_print_operand): Declare.
23338         (default_print_operand_address): Declare.
23339         (default_print_operand_punct_valid_p): Declare.
23340         * targhooks.c (default_print_operand): Define.
23341         (default_print_operand_address): Define.
23342         (default_print_operand_punct_valid_p): Define.
23343         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
23344         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
23345         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
23346         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
23347         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
23348         * vmsdbgout.c (addr_const_to_string): Update comment.
23349         * config/i386/i386.c (print_operand): Rename to...
23350         (ix86_print_operand): ...this.  Make static.
23351         (print_operand_address): Rename to...
23352         (ix86_print_operand_address): ...this.  Make static.  Call
23353         ix86_print_operand instead of PRINT_OPERAND.
23354         (ix86_print_operand_punct_valid_p): New function.
23355         (TARGET_PRINT_OPERAND): Define.
23356         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23357         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23358         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
23359         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23360         (PRINT_OPERAND): Delete.
23361         (PRINT_OPERAND_ADDRESS): Delete.
23362         * config/i386/i386-protos.h (print_operand): Delete prototype.
23363         (print_operand_address): Delete prototype.
23364
23365 2010-06-03  Richard Guenther  <rguenther@suse.de>
23366
23367         PR tree-optimization/44403
23368         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23369         Preserve pointer qualifiers.
23370         (vect_create_data_ref_ptr): Likewise.
23371
23372 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
23373
23374         PR c++/44294
23375         * defaults.h (MAX_FIXED_MODE_SIZE): New.
23376
23377         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
23378
23379 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
23380
23381         PR debug/44375
23382         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
23383         return false if merging the bbs would lead to goto_locus
23384         location being lost from the IL.
23385
23386 2010-06-03  Jan Hubicka  <jh@suse.cz>
23387             Jakub Jelinek  <jakub@redhat.com>
23388
23389         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
23390         set->regs[i] is NULL or has just one entry.
23391
23392 2010-06-03  Jan Hubicka  <jh@suse.cz>
23393
23394         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
23395         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
23396
23397 2010-06-03  Paul Brook  <paul@codesourcery.com>
23398
23399         * config/arm/arm.c (FL_TUNE): Define.
23400         (arm_default_cpu, arm_cpu_select): Remove.
23401         (all_cores): Populate core field.
23402         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
23403         (arm_find_cpu): New function.
23404         (arm_handle_option): Lookup cpu/architecture names.
23405         (arm_override_options): Cleanup mcpu/march/mtune handling.
23406         (arm_file_start): Ditto.
23407
23408 2010-06-03  Alan Modra  <amodra@gmail.com>
23409
23410         PR target/44169
23411         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
23412         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
23413         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
23414         (rs6000_emit_load_toc_table): Likewise.
23415
23416 2010-06-02  Jan Hubicka  <jh@suse.cz>
23417
23418         * passes.c (init_optimization_passes): Put ipa reference
23419         after ipa pure-const.
23420
23421 2010-06-02  Jan Hubicka  <jh@suse.cz>
23422
23423         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
23424         calls_read_all and calls_write_all.
23425         (get_reference_optimization_summary): Fix formatting.
23426         (is_proper_for_analysis): Check that decl is not readonly.
23427         (propagate_bits): Check CONST/PURE/noreturn flags.
23428         (ipa_init): Move all_module_statics to optimization_summary_obstack.
23429         (analyze_function): Ignore indirect edges.
23430         (copy_global_bitmap): For all module statics, do nothing.
23431         (generate_summary): Do not print calls_read_all/calls_write_all.
23432         (read_write_all_from_decl): Take node as argument; check
23433         cgraph_node_cannot_return.
23434         (propagate): Reorganize read_all/write_all computation;
23435         check indirect edges; check ecf flags; use all_module_statics
23436         in the results; do not free all_module_statics.
23437         (stream_out_bitmap): Handle all_module_statics.
23438         (ipa_reference_write_optimization_summary): Likewise; use
23439         varpool/cgraph encoders to get boundaries.
23440         (ipa_reference_read_optimization_summary): Read in all_module_statics;
23441         use it when possible.
23442
23443 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
23444
23445         PR target/44218
23446         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
23447         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
23448
23449         * doc/extend.texi (powerpc builtins): Document vec_recip,
23450         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
23451
23452         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
23453         (rs6000_emit_swrsqrt): Ditto.
23454         (rs6000_emit_swdivsf): Delete.
23455         (rs6000_emit_swdivdf): Ditto.
23456         (rs6000_emit_swrsqrtsf): Ditto.
23457
23458         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
23459         describe the reciprocal estimate support for each type.
23460         (recip_options): Map -mrecip=<opt> into option bits.
23461         (gen_2arg_fn_t): New typedef for binary rtx gen function.
23462         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
23463         reciprocal estimate instructions.
23464         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
23465         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
23466         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
23467         cost information if -mdebug=cost or -mdebug=reg.
23468         (rs6000_override_options): Set -mrecip-precision for power6, and
23469         power7 machines.  If -mvsx or -mdfp, enable various options that
23470         came in previous instruction set ISAs, unless the option was
23471         explicitly disabled by the command line option.  Parse
23472         -mrecip=<opt> options.
23473         (rs6000_builtin_vectorized_function): Add support for vectorizing
23474         the reciprocal estimate builtins and expansions.
23475         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
23476         (bdesc_2arg): Add reciprocal estimate builtins.
23477         (bdesc_1arg): Add reciprocal square root estimate builtins.
23478         (rs6000_expand_builtin): Rewrite to use a switch statement,
23479         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
23480         (rs6000_init_builtins): Create declarations for reciprocal
23481         estimate builtins.
23482         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
23483         sized, prefer traditional floating point registers, if integer
23484         vector types, prefer altivec registers.  Don't actually look at
23485         the memory address any more.
23486         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
23487         builtins.
23488         (rs6000_load_constant_and_splat): New helper function to load up
23489         the constant for reciprocal estimate instructions.
23490         (rs6000_emit_madd): New helper function for generating
23491         multiply/add type instructions, based on the current switches.
23492         (rs6000_emit_msub): Ditto.
23493         (rs6000_emit_mnsub): Ditto.
23494         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
23495         replace a divide with a reciprocal estimate and fixup, adding
23496         support for machines with high precision and vectors.
23497         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
23498         low precision machines.
23499         (rs6000_emit_swdiv): New common function to be called to replace a
23500         division with reciprocal estimate and fixup.
23501         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
23502         for double and vector types.  Add support for high precision machines.
23503
23504         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
23505         the reciprocal estimate instructions can be generated.
23506         (TARGET_FRE): Ditto.
23507         (TARGET_FRSQRTES): Ditto.
23508         (TARGET_FRSQRTE): Ditto.
23509         (RS6000_RECIP_*): New macros for reciprocal estimate support.
23510
23511         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
23512         square root estimate on vectors.
23513         (re<mode>2): New insn for reciprocal division estimate on vectors.
23514
23515         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
23516         New builtin.
23517         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
23518         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
23519         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
23520         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
23521         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
23522         (RS6000_BUILTIN_RSQRT): Ditto.
23523         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
23524         floating point builtin.
23525
23526         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
23527         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
23528         __RECIP_PRECISION__ based on the command line switches.
23529         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
23530
23531         * config/rs6000/rs6000.opt (-mrecip): Document add support for
23532         replacing division instructions with reciprocal estimate and fixup.
23533         (-mrecip=<opt>): New option.
23534         (-mrecip-precision): Ditto.
23535
23536         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
23537         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
23538         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
23539         precision scalar.
23540
23541         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
23542         (UNSPEC_VREFP): Ditto.
23543         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
23544         conterparts with regard to support of -mno-fused-madd and -ffast-math.
23545         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
23546         reciprocal estimate instructions to be generated.
23547         (altivec_vrefp): Ditto.
23548
23549         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
23550         estimate support.
23551         (rreg): New mode attribute for reciprocal estimate support.
23552         (recip<mode>3): New insn for division using reciprocal estimate
23553         and fixup builtins.
23554         (divide define_split): New define_split to convert floating point
23555         division to use reciprocal estimate if the user used the
23556         appropriate options and the split is run when we can add new
23557         pseudo registers for the fixup.
23558         (rsqrt<mode>2): New insn for reciprocal square root support.
23559         (recipsf3): Move into recip<mode>3.
23560         (recipdf3): Ditto.
23561         (fres): Use TARGET_FRES.
23562         (rsqrtsf2): Move into rsqrt<mode>2.
23563         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
23564         (copysignsf3): Add support for VSX.
23565         (fred): Use TARGET_FRE.
23566         (fred_fpr): Ditto.
23567         (rsqrtdf_internal1): New function for frsqrte instruciton.
23568
23569         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
23570         (vec_rsqrt): Ditto.
23571
23572 2010-06-03  Richard Guenther  <rguenther@suse.de>
23573
23574         PR middle-end/44291
23575         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
23576         (set_user_assembler_libfunc): Likewise.
23577
23578 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23579
23580         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
23581         defaults.h.
23582         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
23583         to defaults.h
23584         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
23585         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
23586         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
23587         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
23588         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
23589         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
23590         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
23591         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
23592         * defaults.h: Updated for above mentioned changes.
23593
23594 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
23595
23596         * c-common.c: Remove header include of tm_p.h.
23597         * Makefile.in (c-common.o): Remove TM_P_H dependency.
23598
23599 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
23600
23601         * tree.h (struct tree_decl_map): New type.
23602         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
23603         (tree_decl_map_hash): New prototype.
23604         (debug_expr_for_decl, value_expr_for_decl): Change into
23605         tree_decl_map hashtab from tree_map.
23606         (init_ttree): Adjust initialization.
23607         (tree_decl_map_hash): New function.
23608         (decl_debug_expr_lookup, decl_debug_expr_insert,
23609         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
23610
23611 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23612
23613         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
23614         linker emulations.
23615         * configure: Regenerate.
23616         * config.in: Regenerate.
23617
23618         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
23619         (X86_64_EMULATION): Define.
23620         (TARGET_LD_EMULATION): Use them.
23621
23622         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
23623         (SPARC64_EMULATION): Define.
23624         (LINK_ARCH_SPEC): Use them.
23625
23626 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23627
23628         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
23629         smallest_mode_for_size for computing the precision types of new
23630         graphite IVs.  Do not call lang_hooks.types.type_for_size.
23631
23632 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23633
23634         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
23635         information.
23636         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
23637
23638 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23639
23640         PR middle-end/44363
23641         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
23642         return false instead.
23643
23644 2010-06-02  Jan Hubicka  <jh@suse.cz>
23645
23646         PR middle-end/44295
23647         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
23648         create new cgraph node to check callee.
23649
23650 2010-06-02  Richard Guenther  <rguenther@suse.de>
23651
23652         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
23653
23654 2010-06-02  Richard Guenther  <rguenther@suse.de>
23655
23656         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
23657         (lto_wrapper_cleanup): ... this.  Do not exit.
23658         (fatal): Adjust.  Exit here.
23659         (fatal_perror): Likewise.
23660         (fatal_signal): New function.
23661         (main): Set up signal handlers to cleanup temporary files.
23662         * Makefile.in (lto-wrapper.o): Adjust dependencies.
23663
23664 2010-06-02  Richard Guenther  <rguenther@suse.de>
23665
23666         PR tree-optimization/44377
23667         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
23668
23669 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23670
23671         * config/s390/2097.md (z10_fhex): Remove insn reservation.
23672         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
23673         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
23674         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
23675         instruction.
23676         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
23677
23678 2010-06-02  Jan Hubicka  <jh@suse.cz>
23679
23680         * bitmap.c (bitmap_descriptor): Add search_iter.
23681         (bitmap_find_bit): Increment it.
23682         (print_statistics): Print it.
23683
23684 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
23685
23686         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
23687         instead of gimple_build_call_vec.  Delete unnecessary local variable.
23688
23689 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23690
23691         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
23692         change from yesterday.
23693
23694 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23695
23696         * c-ada-spec.c: Clean up redundant includes.
23697
23698 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
23699
23700         * gimplify.c: Do not include except.h and optabs.h.
23701         (gimplify_body): Do not initialize RTL profiling.
23702         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
23703         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
23704         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
23705         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
23706         langhooks.h.
23707
23708         * tree-pretty-print.h: Include pretty-print.h.
23709         * gimple-pretty-print.h: Include pretty-print.h.
23710
23711         * tree-pretty-print.c: Do not include diagnostic.h.
23712         * tree-vrp.c: Likewise.
23713         * tree-tailcall.c: Likewise
23714         * tree-scalar-evolution.c: Likewise
23715         * tree-ssa-dse.c: Likewise
23716         * tree-chrec.c: Likewise
23717         * tree-ssa-sccvn.c: Likewise
23718         * tree-ssa-copyrename.c: Likewise
23719         * tree-nomudflap.c: Likewise
23720         * tree-call-cdce.c: Likewise
23721         * tree-stdarg.c: Likewise
23722         * tree-ssa-math-opts.c: Likewise
23723         * tree-nrv.c: Likewise
23724         * tree-ssa-sink.c: Likewise
23725         * tree-browser.c: Likewise
23726         * tree-ssa-loop-ivcanon.c: Likewise
23727         * tree-ssa-loop.c: Likewise
23728         * tree-parloops.c: Likewise
23729         * tree-ssa-address.c: Likewise
23730         * tree-ssa-ifcombine.c: Likewise
23731         * tree-if-conv.c: Likewise
23732         * tree-data-ref.c: Likewise
23733         * tree-affine.c: Likewise
23734         * tree-ssa-phiopt.c: Likewise
23735         * tree-ssa-coalesce.c: Likewise
23736         * tree-ssa-pre.c: Likewise
23737         * tree-ssa-live.c: Likewise
23738         * tree-predcom.c: Likewise
23739         * tree-ssa-forwprop.c: Likewise
23740         * tree-ssa-dce.c: Likewise
23741         * tree-ssa-ter.c: Likewise
23742         * tree-ssa-loop-prefetch.c: Likewise
23743         * tree-optimize.c: Likewise
23744         * tree-ssa-phiprop.c: Likewise
23745         * tree-object-size.c: Likewise
23746         * tree-outof-ssa.c: Likewise
23747         * tree-ssa-structalias.c: Likewise
23748         * tree-switch-conversion.c: Likewise
23749         * tree-ssa-reassoc.c: Likewise
23750         * tree-ssa-operands.c: Likewise
23751         * tree-vectorizer.c: Likewise
23752         * tree-vect-data-refs.c: Likewise
23753         * tree-vect-generic.c: Likewise
23754         * tree-vect-stmts.c: Likewise
23755         * tree-vect-patterns.c: Likewise
23756         * tree-vect-slp.c: Likewise
23757         * tree-vect-loop.c: Likewise
23758         * tree-ssa-loop-ivopts.c: Likewise
23759         * tree-ssa-loop-im.c: Likewise
23760         * tree-ssa-loop-niter.c: Likewise
23761         * tree-ssa-loop-unswitch.c: Likewise
23762         * tree-ssa-loop-manip.c: Likewise
23763         * tree-ssa-loop-ch.c: Likewise
23764         * tree-dump.c: Likewise
23765         * tree-complex.c: Likewise
23766
23767         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
23768         * tree-ssa-uninit.c: Likewise
23769         * tree-ssa-threadupdate.c: Likewise
23770         * tree-ssa-uncprop.c: Likewise
23771         * tree-ssa-ccp.c: Likewise
23772         * tree-ssa-dom.c: Likewise
23773         * tree-ssa-propagate.c: Likewise
23774         * tree-ssa-alias.c: Likewise
23775         * tree-dfa.c: Likewise
23776         * tree-cfgcleanup.c: Likewise
23777         * tree-sra.c: Likewise
23778         * tree-ssa-copy.c: Likewise
23779         * tree-ssa.c: Likewise
23780         * tree-profile.c: Likewise
23781         * tree-cfg.c: Likewise
23782         * tree-ssa-threadedge.c: Likewise
23783         * tree-vect-loop-manip.c: Likewise
23784
23785         * tree-inline.c: Do not include diagnostic.h and expr.h.
23786         Include rtl.h.
23787         (copy_decl_for_dup_finish): Do not use NULL_RTX.
23788
23789         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
23790         * tree-loop-distribution.c: Likewise.
23791
23792 2010-06-01  Jan Hubicka  <jh@suse.cz>
23793
23794         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
23795
23796 2010-06-01  Jan Hubicka  <jh@suse.cz>
23797
23798         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
23799         remove return value.
23800         (split_bbs_on_noreturn_calls) .... here.
23801         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
23802         * tree-flow.h (fixup_noreturn_call): New.
23803
23804 2010-06-01  Jan Hubicka  <jh@suse.cz>
23805
23806         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
23807
23808 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
23809
23810         * tree.h (build_nt_call_list): Delete.
23811         * tree.c (build_nt_call_list): Delete.
23812
23813 2010-06-01  Jan Hubicka  <jh@suse.cz>
23814
23815         * fwprop.c: Make emit-rtl.h include last.
23816         * rtlanal.c: Include emit-rtl.h.
23817         * genautomata.c: Output emit-rtl include into insn-automata.c
23818         * df-scan.c: Include emit-rtl.h.
23819         * haifa-sched.c: Indlude emit-rtl.h.
23820         * mode-switching.c: Indlude emit-rtl.h.
23821         * graph.c: Indlude emit-rtl.h.
23822         * sel-sched.c: Include emit-rtl.h.
23823         * sel-sched-ir.c: Include emit-rtl.h.
23824         * ira-build.c: Include emit-rtl.h.
23825         * emit-rtl.c (first_insn, last_insn): Remove defines.
23826         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
23827         Move to emit-rtl.h.
23828         (set_new_first_and_last_insn, get_last_insn_anywhere,
23829         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
23830         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
23831         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
23832         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
23833         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
23834         Use accessor functions.
23835         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23836          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23837         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23838         mem_expr_equal_p): Move here from rtl.h.
23839         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
23840         Move here from emit-rtl.c; make inline.
23841         * cfglayout.h: Include emit-rtl.h.
23842         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23843          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23844         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23845         mem_expr_equal_p, get_insns, set_first-insn,
23846         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
23847         * reg-stack.c: Include emit-rtl.h.
23848         * dce.c: Likewise.
23849
23850 2010-06-01  Jan Hubicka  <jh@suse.cz>
23851
23852         * cgraph.h (tree_function_versioning): Update prototype.
23853         (cgraph_function_versioning): Update prototype.
23854         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
23855         bitmap.
23856         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
23857         (cgraph_materialize_clone, save_inline_function_body): Update use of
23858         tree_function_versioning.
23859         * tree-inline.c (copy_bb): Look for previous copied block to link
23860         after; fix debug output.
23861         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
23862         (copy_body): Likewise.
23863         (expand_call_inline): Update use of copy_body.
23864         (tree_function_versioning): Update use of copy body; accept
23865         blocks_to_copy and new_entry.
23866
23867 2010-06-01  Jan Hubicka  <jh@suse.cz>
23868
23869         * gegenrtl.c: Remove unnecesary prototypes.
23870         (gendecl): Remove.
23871         (gendef): Produce static inline.
23872         (gencode): Remove.
23873         (main): Do not decode parameters; generate header only.
23874         * Makefile.in (genrtl.c): Remove.
23875
23876 2010-06-01  Jan Hubicka  <jh@suse.cz>
23877
23878         * tree-switch-conversion.c (build_one_array): Make it readonly.
23879
23880 2010-06-01  Richard Guenther  <rguenther@suse.de>
23881
23882         * optabs.c (init_optabs): Guard all accesses to reinit.
23883         * ipa-pure-const.c (propagate): Fix another typo.
23884         * opts.c (common_handle_option): Split assignment to bool.
23885         * c-opts.c (c_common_handle_option): Likewise.
23886
23887 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
23888             Matthew Gingell  <gingell@adacore.com>
23889
23890         * doc/invoke.texi: Mention -fdump-ada-spec.
23891         * tree-dump.c (dump_files): Add ada-spec.
23892         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
23893         * tree-pass.h (tree_dump_index): Add TDI_ada.
23894         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
23895         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
23896         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
23897         * c-decl.c: Include c-ada-spec.h.
23898         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
23899         functions.
23900         (c_write_global_declarations): Add handling of -fdump-ada-spec.
23901         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
23902         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
23903         * c-ada-spec.h, c-ada-spec.c: New files.
23904
23905 2010-06-01  Richard Guenther  <rguenther@suse.de>
23906
23907         PR lto/43853
23908         * ipa-pure-const.c (get_function_state): Hand back varying state
23909         if we do not have one.
23910         (has_function_state): New function.
23911         (duplicate_node_data): Adjust.
23912         (remove_node_data): Likewise.
23913         (pure_const_write_summary): Likewise.
23914         (propagate): Likewise.  Fix typo.
23915
23916 2010-06-01  Jan Hubicka  <jh@suse.cz>
23917
23918         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
23919         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
23920         (execute_all_ipa_transforms): Do not play with the states.
23921
23922 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
23923
23924         * config/arm/t-linux-androideabi: New.
23925         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
23926
23927 2010-06-01  Jan Hubicka  <jh@suse.cz>
23928
23929         * tree-inline.c (estimate_num_insns): For stdarg functions look
23930         into call statement to count cost of argument passing.
23931
23932 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
23933
23934         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
23935         argument for fprintf.
23936         (ix86_output_addr_diff_elt): Likewise.
23937         (x86_function_profiler): Likewise.
23938         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
23939         (LPREFIX): Likewise.
23940         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
23941
23942 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23943
23944         PR target/44338
23945         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
23946         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
23947         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
23948         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
23949         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
23950         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
23951         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
23952         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
23953         TARGET_FUSED_MADD.
23954
23955 2010-05-31  Jan Hubicka  <jh@suse.cz>
23956
23957         * tree.h (tree_range_check_failed): Declare noreturn.
23958
23959 2010-05-31  Jan Hubicka  <jh@suse.cz>
23960
23961         * gimple.c (gimple_call_builtin_p): New function.
23962         * gimple.h (gimple_call_builtin_p): Declare.
23963         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
23964         to exit.
23965         (execute_warn_function_return): BUILT_IN_RETURN is return.
23966         (split_critical_edges): Return edges are not critical.
23967         (is_ctrl_altering_stmt): Builtin_in_return is altering.
23968         (gimple_verify_flow_info): Handle built_in_return.
23969         (execute_warn_function_return): Handle built_in_return.
23970         * ipa-pure-const.c (check_call): Ignore builtin_return.
23971
23972 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
23973
23974         PR middle-end/44337
23975         * expr.c (expand_assignment): Don't store anything for out-of-bounds
23976         array accesses with non-MEM.
23977
23978         PR tree-optimization/44182
23979         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
23980         newly needs to end a bb is followed by debug stmts, instead return
23981         true from the function at the end.
23982         (maybe_move_debug_stmts_to_successors): New function.
23983         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
23984
23985 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
23986
23987         PR target/44161
23988         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
23989
23990 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
23991
23992         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
23993         for nested functions in non-optimized compilation.
23994
23995 2010-05-31  Richard Guenther  <rguenther@suse.de>
23996
23997         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
23998
23999 2010-05-30  Jan Hubicka  <jh@suse.cz>
24000
24001         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
24002
24003 2010-05-30  Richard Guenther  <rguenther@suse.de>
24004
24005         PR lto/42975
24006         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
24007         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
24008         no longer needed.
24009
24010 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
24011
24012         * config/darwin.c (output_objc_section_asm_op): Add comment.
24013         (name_needs_quotes): Add '_' to list of valid comment chars.
24014         (machopic_output_function_base_name): Remove unneeded quotes.
24015         (darwin_encode_section_info): Adjust asm whitespace.
24016         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
24017         (ASM_OUTPUT_LOCAL): Ditto.
24018         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
24019         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
24020         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
24021
24022 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
24023
24024         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
24025         RS6000_OUTPUT_BASENAME unconditionally.
24026         (rs6000_output_function_epilogue): Likewise.
24027
24028 2010-05-30  Jan Hubicka  <jh@suse.cz>
24029
24030         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
24031         nodes.
24032
24033 2010-05-30  Richard Guenther  <rguenther@suse.de>
24034
24035         * tree-cfg.c (verify_gimple_assign_single): Implement
24036         verification for COND_EXPR rhs.
24037
24038 2010-05-30  Jan Hubicka  <jh@suse.cz>
24039
24040         * cgraph.h (cgraph_dump_file): Declare.
24041         * cgraphunit.c (cgraph_dump_file): Export.
24042         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
24043
24044 2010-05-30  Jan Hubicka  <jh@suse.cz>
24045
24046         * dwarf2out.c (reference_to_unused,
24047         premark_types_used_by_global_vars_helper): Avoid creation of new
24048         varpool nodes.
24049
24050 2010-05-30  Jan Hubicka  <jh@suse.cz>
24051
24052         * cgraph.h (cgraph_node_cannot_return,
24053         cgraph_edge_cannot_lead_to_return): New functions.
24054         * cgraph.c (cgraph_node_cannot_return,
24055         cgraph_edge_cannot_lead_to_return): Use them.
24056         * ipa-pure-const.c (pure_const_names): New static var.
24057         (check_call): Handle calls not leading to return.
24058         (pure_const_read_summary): Dump info read.
24059         (propagate): Dump info about propagation process; ignore side effects
24060         of functions not leading to exit; fix handling of pure functions.
24061
24062 2010-05-30  Jan Hubicka  <jh@suse.cz>
24063
24064         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
24065         for tail call epilogues.
24066
24067 2010-05-30  Jan Hubicka  <jh@suse.cz>
24068
24069         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
24070         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
24071         dump files.
24072
24073 2010-05-29  Jan Hubicka  <jh@suse.cz>
24074
24075         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
24076         node; remove references in node we no longer keep in cgrpah but need
24077         body of.
24078
24079 2010-05-29  Jan Hubicka  <jh@suse.cz>
24080
24081         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
24082
24083 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24084
24085         PR target/44165
24086         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
24087
24088 2010-05-29  Jan Hubicka  <jh@suse.cz>
24089
24090         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
24091         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
24092         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
24093         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
24094         debug_names_replaced_by, debug_update_ssa): Likewise.
24095         * sbitmap.c (debug_sbitmap): Likewise.
24096         * genrecog.c (debug_decision, debug_decision_list): Likewise.
24097         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
24098         debug_tree_chain): Likewise.
24099         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
24100         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
24101         * optabs.c (debug_optab_libfuncs): Likewise.
24102         (verify_loop_closed_ssa): Likewise.
24103         * value-prof.c (verify_histograms): Likewise.
24104         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
24105         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
24106         * cfghooks.c (verify_flow_info): Likewise.
24107         * fold-const.c (debug_fold_checksum): Likewise.
24108         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
24109         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
24110         Likewise.
24111         * omega.c (debug_omega_problem): Likewise.
24112         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
24113         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
24114         * dominance.c (verify_dominators, debug_dominance_info,
24115         debug_dominance_tree): Likewise.
24116         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
24117         * df_regno_debug, df_ref_debug,
24118         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
24119         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
24120         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
24121         * sel-sched.c (debug_state): Likewise.
24122         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
24123         Likewise.
24124         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
24125         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
24126         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
24127         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
24128         Likewise.
24129         * c-pretty-print.c (debug_c_tree): Likewise.
24130         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
24131         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
24132         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
24133         * ebitmap.c (debug_ebitmap): Likewise.
24134         * function.c (debug_find_var_in_block_tree): Likewise.
24135         * print-rtl.c (debug_rtx): Likewise.
24136         (debug_rtx_count): Likewise.
24137         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
24138         * stor-layout.c (debug_rli): Likewise.
24139         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
24140         * tree-data-ref.c (debug_data_references,
24141         debug_data_dependence_relations, debug_data_reference,
24142         debug_data_dependence_relation, debug_rdg_vertex,
24143         debug_rdg_component, debug_rdg): Likewise.
24144         * tree-affine.c (debug_aff): Likewise.
24145         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
24146         Likewise.
24147         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
24148         * emit-rtl.c (verify_rtl_sharing): Likewise.
24149         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
24150         debug_value_expressions): Likewise.
24151         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
24152         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
24153         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
24154         * cfglayout.c (verify_insn_chain): Likewise.
24155         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
24156         debug_clast_stmt, debug_generated_program): Likewise.
24157         * ggc-page.c (debug_print_page_list): Likewise.
24158         * tree-ssa-ter.c (debug_ter): Likewise.
24159         * graphite-dependences.c (debug_pddr): Likewise.
24160         * sched-deps.c (debug_ds): Likewise.
24161         * tree-ssa.c (verify_ssa): Likewise.
24162         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
24163         debug_scattering_functions, debug_iteration_domains, debug_pdr,
24164         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
24165         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
24166         * tree-inline.c (debug_find_tree): Likewise.
24167         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
24168         debug_ppl_powerset_matrix): Likewise.
24169         * var-tracking.c (debug_dv): Likewise.
24170         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
24171         * cfgloop.c (verify_loop_structure): Likewise.
24172         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
24173         * c-common.c (verify_sequence_points): Likewise.
24174         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
24175         debug_candidates, debug_rgn_dependencies): Likewise.
24176         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
24177         * debug_constraint_graph, debug_solution_for_var,
24178         debug_sa_points_to_info): Likewise.
24179         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
24180         Likewie.
24181         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
24182         debug_loops, debug_loop, debug_loop_num): Likewise.
24183         * passes.c (debug_pass): Likewise.
24184         (dump_properties): Likewise; add cfglayout property.
24185         (debug_properties): Likewise.
24186         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
24187         * varpool.c (debug_varpool): Likewise.
24188         * regcprop.c (debug_value_data): Likewise.
24189         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
24190         debug_immediate_uses_for): Likewise.
24191
24192 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
24193
24194         PR bootstrap/44315
24195         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
24196         Filter out insn-flags.h.
24197
24198 2010-05-29  Jan Hubicka  <jh@suse.cz>
24199
24200         * cgraph.h (struct varpool_node_set_def,
24201         struct cgraph_node_set_def): Remove unused AUX pointer.
24202         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
24203         VEC_empty macro.
24204
24205 2010-05-29  Jan Hubicka  <jh@suse.cz>
24206
24207         PR middle-end/44324
24208         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
24209
24210 2010-05-29  Richard Guenther  <rguenther@suse.de>
24211
24212         * lto-streamer.c (cached_bp): New global variable.
24213         (bitpack_create): Return the cached bitpack, if available.
24214         (bitpack_delete): Clear and cache the bitpack, if appropriate.
24215         (bp_pack_value): Remove redundant asserts.
24216
24217 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
24218
24219         PR middle-end/44306
24220         * tree-if-conv.c (is_true_predicate): New.
24221         (is_predicated): Use is_true_predicate.
24222         (add_to_predicate_list): Same.  Do not use unshare_expr.
24223         (add_to_dst_predicate_list): Same.
24224
24225 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
24226
24227         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
24228         field on edges.
24229         (predicate_bbs): Same.
24230         (clean_predicate_lists): Same.
24231         (find_phi_replacement_condition): Do not AND the predicate from
24232         edge->aux.
24233
24234 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
24235
24236         PR bootstrap/44315
24237         * Makefile.in (build/gencondmd.o): Add a missing `\'.
24238
24239 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24240
24241         PR target/44261
24242         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
24243         (negdf2): Adjust expander pattern and use negdf2_slow.
24244         (negsf2): Likewise.
24245
24246 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
24247
24248         * basic-block.h (struct control_flow_graph): Move last_label_uid field
24249         up.
24250         * df.h (struct df_base_ref): Move regno field up.
24251         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
24252         * expr.h (struct separate_ops): Move location field up.
24253         * optabs.h (struct optab_d): Move libcall_basename field down.
24254         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
24255         * config/i386/i386.h (struct machine_function): Convert call_abi field
24256         into a bitfield.  Move cfa field to the end of the structure.
24257
24258 2010-05-29  Jan Hubicka  <jh@suse.cz>
24259
24260         * varpool.c (varpool_get_node): Fix lookup.
24261
24262 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24263
24264         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
24265         RTL specific prototypes with #ifdef RTX_CODE.
24266         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
24267         * config/spu/t-spu-elf: Fix dependencies.
24268
24269         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
24270
24271 2010-05-29  Mike Stump  <mikestump@comcast.net>
24272
24273         PR bootstrap/44315
24274         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
24275         TM_H when building to avoid dependency loops.
24276
24277 2010-05-29  Jan Hubicka  <jh@suse.cz>
24278
24279         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
24280         refs and body; not the whole node for masters of materialized clones.
24281
24282 2010-05-29  Mike Stump  <mikestump@comcast.net>
24283
24284         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
24285
24286 2010-05-29  Jan Hubicka  <jh@suse.cz>
24287
24288         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
24289         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
24290         use of clone_function_name.
24291         * cgraph.h (cgraph_create_virtual_clone,
24292         cgraph_function_versioning): update prototypes.
24293         (clone_function_name): Declare.
24294         * ipa-cp.c (ipcp_insert_stage): Update call of
24295         cgraph_create_virtual_clone.
24296         * omp-low.c (create_omp_child_function_name): Use
24297         cgraph_create_virtual_clone.
24298         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
24299         (cgraph_function_versioning): Take SUFFIX argument; produce new name
24300         and make decl local.
24301
24302 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24303
24304         * vec.h: Include statistics.h
24305         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
24306         with VEC_H.
24307
24308 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24309
24310         * c-lex.c: Do not include c-tree.h.
24311         * c-pretty-print.c: Likewise.
24312         * c-opts.c: Likewise.
24313         * c-gimplify.c: Likewise.
24314         * c-common.c: Likewise.
24315         * c-dump.c: Likewise.  Include c-common.h.
24316
24317 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24318
24319         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
24320         before including diagnostic-core.h.
24321         (c_cpp_error): New prototype moved from c-tree.h.
24322         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
24323         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
24324         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
24325         (c_cpp_error): Prototype moved to c-common.h.
24326         * Makefile.in: Update dependency for C_COMMON_H.
24327
24328 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24329
24330         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
24331         * c-common.c (c_register_addr_space): Remove here.
24332         * c-decl.c (c_register_addr_space): Re-add here.
24333
24334 2010-05-28  Mike Stump  <mikestump@comcast.net>
24335
24336         * config/darwin-c.c: Remove c-tree.h include.
24337
24338 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24339
24340         * gcc.c: Include diagnostic.h.
24341         (error_count): Remove.  All users changed to use errorcount.
24342         (programname): Remove.  All users changed to use progname.
24343         (fancy_abort, internal_error, fatal_error, error, warning, inform,
24344         fnotice): Remove.
24345         (execute): Don't include "Internal error" and bug reporting
24346         information in argument of internal_error call.
24347         (process_command): Don't increment error_count after calling
24348         perror_with_name.
24349         (input_filename): Rename to gcc_input_filename.  All users
24350         changed.
24351         (main): Call diagnostic_initialize.  Register delete_temp_files
24352         with atexit.  Use seen_error to test for errors.
24353         * gcc.h: Include diagnostic-core.h.
24354         (fatal_error, error, warning): Remove.
24355         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
24356         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
24357         (gcc.o): Update dependencies.
24358
24359 2010-05-28  Jeff Law  <law@redhat.com>
24360
24361         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
24362         functions.
24363         * ira.h (ira_bad_reload_regno): Declare
24364         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
24365
24366         * ira-color.c (update_curr_costs): Free updated hard reg costs.
24367         (ira_reassign_conflict_allocnos): Remove bogus asserts.
24368         (allocno_reload_assign): Likewise.
24369
24370 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
24371
24372         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
24373         build1_stat.
24374
24375 2010-05-28  Richard Guenther  <rguenther@suse.de>
24376
24377         PR lto/44312
24378         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
24379         Stream fixed-point constants mode.
24380         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
24381         and TYPE_PRECISION.
24382         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
24383         Stream fixed-point constants mode.
24384         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
24385         and TYPE_PRECISION.
24386
24387 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24388
24389         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
24390         only place it was called from.
24391         (number_of_latch_executions): Do not return chrec_dont_know when the
24392         may_be_zero is a runtime condition: instead, return a COND_EXPR
24393         including the may_be_zero condition.
24394         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
24395         of nb_iterations.
24396         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
24397         COND_EXPRs.
24398
24399 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24400
24401         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
24402         generate COND_EXPRs for degenerate_phi_result.
24403
24404 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24405
24406         PR middle-end/44293
24407         * tree-if-conv.c (if_convertible_loop_p): Check the
24408         if-convertibility of phi nodes in non predicated BBs.
24409
24410 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24411
24412         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
24413
24414 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24415
24416         PR driver/15303
24417         * gcc.c (inform, warning, inform): New functions.
24418         (fatal_ice): Rename to internal_error; change cmsgid parameter to
24419         gmsgid.  All callers changed.
24420         (notice): Rename to fnotice; add parameter fp.  All callers changed.
24421         (fatal_error): Rename to fatal_signal.  All users changed.
24422         (fatal): Rename to fatal_error; change cmsgid parameter to
24423         gmsgid.  All callers changed.
24424         (process_command): Use warning instead of error for warnings.
24425         (end_going_arg): Don't use _() around argument of error.
24426         (do_spec_1): Use inform for message from %n specs.  Use warning
24427         instead of error for warnings.
24428         (main): Use inform for comparison messages.  Use warning for
24429         message about unused linker input.
24430         (error): Increment error_count.  Print "error: ".
24431         * gcc.h (fatal): Change to fatal_error.
24432         (warning): Declare.
24433         * config/darwin-driver.c (darwin_default_min_version): Use warning
24434         instead of fprintf for warnings.
24435         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
24436
24437 2010-05-28  Julian Brown  <julian@codesourcery.com>
24438
24439         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
24440         (*thumb2_addsi3_compare0_scratch): New.
24441         * config/arm/constraints.md (Pv): New.
24442         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
24443         for ARM mode only.
24444         (*addsi3_compare0_scratch): Likewise.
24445
24446 2010-05-28  Jan Hubicka  <jh@suse.cz>
24447
24448         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
24449         check.
24450         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
24451         only on local statics.
24452
24453 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
24454
24455         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
24456
24457 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
24458
24459         PR bootstrap/44314
24460         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
24461         (OPTION_GLIBC): Define.
24462
24463 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24464
24465         PR debug/41048
24466         * dwarf2out.c (double_int_type_size_in_bits): New function.
24467         (round_up_to_align): Change first argument and return value to
24468         double_int.
24469         (field_byte_offset): Work internally on double_ints.
24470
24471         PR target/43636
24472         * builtins.c (expand_movstr): Use a temporary pseudo instead
24473         of target even when target is not NULL and not const0_rtx, but
24474         fails movstr predicate.
24475         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
24476
24477 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24478
24479         * final.c (rest_of_clean_state): Use %m in errors instead of
24480         strerror (errno).
24481         * gengtype.c (read_input_list, close_output_files): Use xstrerror
24482         instead of strerror.
24483         * toplev.c (process_options): Use %m in errors instead of strerror
24484         (errno).
24485         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
24486         (errno).
24487
24488 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
24489
24490         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
24491         (ix86_canonical_va_list_type): Make static.  Add declaration.
24492         (ix86_enum_va_list): Make static.  Reindent.
24493         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
24494         (ix86_canonical_va_list_type): Ditto.
24495         (ix86_enum_va_list): Ditto.
24496
24497 2010-05-28  Richard Guenther  <rguenther@suse.de>
24498
24499         * lto-wrapper.c (run_gcc): With -save-temps generate a
24500         user-visible ltrans filename.  Fixup ltrans unit numbering.
24501
24502 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
24503
24504         * c-common.c (c_common_nodes_and_builtins): Replace use
24505         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
24506         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
24507         to ix86_enum_va_list.
24508         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
24509         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
24510         (TARGET_ENUM_VA_LIST_P): Add hook description.
24511         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
24512         * target.h (gcc_target): Add enum_va_list hook.
24513
24514         PR bootstrap/44299
24515         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
24516         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
24517         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
24518
24519 2010-05-28  Alan Modra  <amodra@gmail.com>
24520
24521         PR target/44266
24522         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
24523         emit_library_call machinery to set up __tls_get_addr calls.
24524
24525 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24526
24527         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
24528
24529 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
24530
24531         Revert fix for PR c++/44188
24532         * c-common.c (is_typedef_decl): Revert the moving of  this
24533         definition ...
24534         * tree.c (is_typedef_decl): ... here.
24535         (typdef_variant_p): Revert the moving of this  definition
24536         here from cp/tree.c.
24537         * c-common.h (is_typedef_decl): Revert the moving of this
24538         declaration ...
24539         * tree.h (is_typedef_decl): ... here.
24540         (typedef_variant_p): Revert the moving of this  declaration here
24541         from cp/cp-tree.h
24542         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
24543         (gen_tagged_type_die): Revert the splitting out of ...
24544         (gen_type_die_with_usage): ... this function. Revert the anonymous
24545         tagged type handling.
24546         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
24547         typedefs naming anonymous tagged types.
24548
24549 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24550
24551         * config/rs6000/rs6000-modes.def (PSImode): Delete.
24552
24553 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24554
24555         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
24556         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
24557         throughout.
24558         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
24559         "xer" to "ca".
24560         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
24561         XER_REGS to CA_REGS throughout.
24562         * config/rs6000/rs6000.h: Same.
24563         (ADDITIONAL_REGISTER_NAMES): Add "xer".
24564         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
24565         that mode_iterator "P" is the size for arithmetic carries as well.
24566         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
24567
24568 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24569
24570         PR bootstrap/44255
24571         * combine.c (struct rtx_subst_pair): Define unconditionally.
24572         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
24573         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
24574         Call make_compound_operation on pair->to.
24575         (propagate_for_debug): Don't call make_compound_operation here.
24576         Always use simplify_replace_fn_rtx.
24577
24578 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
24579
24580         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
24581         * config/xtensa/xtensa.c (override_options): Check
24582           TARGET_FORCE_NO_PIC and set flag_pic.
24583         * config/xtensa/xtensa.opt: Document -mforce-no-pic
24584
24585 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24586
24587         PR bootstrap/44299
24588         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
24589         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
24590
24591 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24592
24593         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
24594         toplev.h.
24595         * diagnostic.c: Don't include toplev.h.
24596         (progname): Define.  Moved from toplev.c.
24597         (seen_error): New function.
24598         * diagnostic.h: Include diagnostic-core.h.
24599         (diagnostic_t, emit_diagnostic): Don't declare here.
24600         * toplev.c (progname): Move to toplev.c.
24601         (emit_debug_global_declarations, compile_file, finalize,
24602         do_compile, toplev_main): Use seen_error.
24603         * toplev.h: Include diagnostic-core.h.
24604         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
24605         internal_error, warning, warning_at, error, error_n, error_at,
24606         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
24607         verbatim, fnotice, progname): Move to diagnostic-core.h.
24608         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
24609         (expand_builtin_expect): Use seen_error.
24610         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
24611         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
24612         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
24613         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
24614         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
24615         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
24616         errorcount for errors.
24617         * c-opts.c (c_common_finish): Use seen_error.
24618         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24619         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
24620         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
24621         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
24622         (get_coverage_counts): Use seen_error.
24623         * dwarf2out.c (dwarf2out_finish): Use seen_error.
24624         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
24625         gimplify_body): Use seen_error.
24626         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
24627         * ipa-pure-const.c (gate_pure_const): Use seen_error.
24628         * ipa-reference.c (gate_reference): Use seen_error.
24629         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
24630         * lambda-code.c: Include diagnostic-core.h instead of
24631         diagnostic.h.
24632         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24633         * lto-compress.c: Include diagnostic-core.h instead of
24634         diagnostic.h.
24635         * lto-section-in.c: Include diagnostic-core.h instead of
24636         diagnostic.h.
24637         * lto-streamer-out.c: Include diagnostic-core.h instead of
24638         diagnostic.h.
24639         * lto-streamer.c: Include diagnostic-core.h instead of
24640         diagnostic.h.
24641         (gate_lto_out): Use seen_error.
24642         * matrix-reorg.c: Include diagnostic-core.h instead of
24643         diagnostic.h.
24644         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
24645         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
24646         (gate_expand_omp, lower_omp_1): Use seen_error.
24647         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
24648         (rest_of_decl_compilation, rest_of_type_compilation,
24649         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
24650         * tree-cfg.c (label_to_block_fn): Use seen_error.
24651         * tree-inline.c (optimize_inline_calls): Use seen_error.
24652         * tree-mudflap.c (mudflap_finish_file): Use
24653         seen_error.
24654         * tree-optimize.c (gate_all_optimizations,
24655         gate_all_early_local_passes, gate_all_early_optimizations): Use
24656         seen_error.
24657         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
24658         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
24659         (varpool_remove_unreferenced_decls,
24660         varpool_assemble_pending_decls): Use seen_error.
24661         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
24662         (TOPLEV_H, DIAGNOSTIC_H): Update.
24663         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
24664         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
24665         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
24666         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
24667         coverage.o, lambda-code.o): Update dependencies.
24668
24669 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24670
24671         PR c++/44188
24672         * c-common.c (is_typedef_decl): Move this definition ...
24673         * tree.c (is_typedef_decl): ... here.
24674         (typdef_variant_p): Move definition here from cp/tree.c.
24675         * c-common.h (is_typedef_decl): Move this declaration ...
24676         * tree.h (is_typedef_decl): ... here.
24677         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24678         * dwarf2out.c (is_naming_typedef_decl): New function.
24679         (gen_tagged_type_die): Split out of ...
24680         (gen_type_die_with_usage): ... this function. When an anonymous
24681         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24682         is emitted for the typedef.
24683         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24684         anonymous tagged types.
24685
24686 2010-05-27  Jason Merrill  <jason@redhat.com>
24687
24688         * print-tree.c (debug_vec_tree): New fn.
24689         (print_vec_tree): New fn.
24690         * tree.h: Declare them.
24691         * gdbinit.in (pvt): New command.
24692
24693         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
24694
24695         * gdbinit.in (pdd): New command.
24696
24697 2010-05-27  Jan Hubicka  <jh@suse.cz>
24698
24699         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
24700         (update_caller_keys): Return early if there are no callers;
24701         only update fibheap when decresing the key.
24702         (update_callee_keys): Avoid recursion.
24703         (decide_inlining_of_small_functions): When badness does not match;
24704         re-insert into fibheap.
24705
24706 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
24707
24708         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
24709         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
24710         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
24711         (ALL_HOST_OBJS): Now a union of the above two.
24712         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
24713         all files in ALL_HOST_FRONTEND_OBJS.
24714         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
24715
24716         * c-common.c: Pretend to be a backend file by undefining
24717         IN_GCC_FRONTEND (still need rtl.h here).
24718
24719 2010-05-27  Jan Hubicka  <jh@suse.cz>
24720
24721         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
24722         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
24723
24724 2010-05-27  Jan Hubicka  <jh@suse.cz>
24725
24726         * sched-ebb.c: Rename struct deps to struct deps_desc.
24727         * ddg.c: Likewise.
24728         * sel-sched-ir.c: Likewise.
24729         * sched-deps.c: Likewise.
24730         * sched-int.h: Likewise.
24731         * sched-rgn.c: Likewise.
24732
24733 2010-05-27  Jon Beniston  <jon@beniston.com>
24734
24735         PR 43726
24736         * config/lm32/lm32.h: Remove definition of
24737         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
24738
24739 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
24740
24741         PR lto/44230
24742         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
24743
24744 2010-05-27  Richard Guenther  <rguenther@suse.de>
24745
24746         PR tree-optimization/44284
24747         * tree-vect-stmts.c (vectorizable_assignment): Handle
24748         sign-changing conversions as simple copy.
24749
24750 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24751
24752         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
24753         Bionic C library.
24754         (__gthread_active_p): Check for pthread_create if compiling against
24755         Bionic C library.
24756
24757 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24758
24759         Support compilation for Android platform.  Reimplement -mandroid.
24760
24761         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
24762         (*android*): Set ANDROID_DEFAULT.
24763         (arm*-*-linux*): Include linux-android.h.
24764         (arm*-*-eabi*): Don't include previous -mandroid implementation.
24765         * config/arm/eabi.h: Remove, move Android-specific parts ...
24766         * config/linux-android.h: ... here.  New file.
24767         * config/arm/eabi.opt: Rename to ...
24768         * config/linux-android.opt: ... this.
24769         (mandroid): Allow -mno-android option.  Initialize based on
24770         ANDROID_DEFAULT.
24771         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
24772         Move logic to corresponding LINUX_TARGET_* macros.
24773         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
24774         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
24775         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
24776         Android definitions.
24777         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
24778         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
24779         Document.
24780
24781 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24782
24783         Add support for Bionic C library
24784
24785         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
24786         macro.
24787         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
24788         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
24789
24790         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
24791         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
24792         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
24793         to support multiple C libraries.  Handle Bionic.
24794         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
24795         (BIONIC_DYNAMIC_LINKER64): Define.
24796         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
24797         Update.
24798         (TARGET_HAS_SINCOS): Enable for Bionic.
24799
24800         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
24801         the last option specified on command line take effect.
24802         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
24803         (mbionic): New.
24804         (mglibc, muclibc): Update.
24805
24806         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
24807         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
24808         DEFAULT_LIBC.
24809
24810         * doc/invoke.texi (-mglibc, -muclibc): Update.
24811         (-mbionic): Document.
24812
24813 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24814
24815         * c-common.h (c_register_addr_space): Add prototype.
24816         (ADDR_SPACE_KEYWORD): Remove.
24817         * c-common.c (c_register_addr_space): New function.
24818         (c_addr_space_name): Reimplement.
24819         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
24820
24821         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
24822         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
24823
24824         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
24825         Remove TARGET_ADDR_SPACE_KEYWORDS.
24826
24827 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24828
24829         * input.c: New file.
24830         * input.h (main_input_filename): Move declaration to toplev.h.
24831         * toplev.c (input_location, line_table): Move to input.c
24832         * toplev.h (main_input_filename): Move declaration from input.h.
24833         * tree.c (expand_location): Move to input.c.
24834         * Makefile.in (OBJS-common): Add input.o.
24835         (input.o): Add dependencies.
24836
24837 2010-05-27  Richard Guenther  <rguenther@suse.de>
24838
24839         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
24840         for non-existant files.
24841         (fork_execute): Mark args_name file as deleted.
24842
24843 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24844
24845         PR bootstrp/44287
24846         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
24847         (narrow_signed_type): Likewise.
24848
24849 2010-05-26  Jan Hubicka  <jh@suse.cz>
24850
24851         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
24852         edge only when checking is enabled; check using former_clone_of;
24853         check inline clones too.
24854         (cgraph_materialize_clone): Record former_clone_of pointer.
24855         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
24856         combining redirections; dump args_to_skip bitmap
24857         (cgraph_materialize_all_clones): Do no redirection here.
24858         * ipa-inline.c (inline_transform): Do redirection here.
24859         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
24860         cheking only).
24861
24862 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24863
24864         * config/avr/avr-c.c: Do not include regs.h.
24865         Include cpplib.h for cpp_define and tree.h for c-common.h.
24866         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
24867         * config/avr/t-avr: Fix dependencies for avr-c.o.
24868
24869 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
24870
24871         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
24872         string instead of SYMBOL_REF rtx.
24873         * rtl.h (set_stack_check_libfunc): Move prototype from here...
24874         * libfuncs.h: ...to here.  Adjust for explow.c change.
24875
24876 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
24877
24878         * pretty-print.c: Don't include ggc.h.
24879         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
24880         (identifier_to_locale): Use them for allocation.
24881         * pretty-print.h (identifier_to_locale_alloc,
24882         identifier_to_locale_free): Declare.
24883         * toplev.c (alloc_for_identifier_to_locale): New.
24884         (general_init): Set identifier_to_locale_alloc and
24885         identifier_to_locale_free.
24886         * Makefile.in (pretty-print.o): Update dependencies.
24887
24888 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24889
24890         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
24891         pointer types if they have different alignment or mode.
24892
24893 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
24894
24895         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
24896         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24897         * config/sparc/sparc-protos.h (function_value): Remove declaration.
24898         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
24899         sparc_function_value_regno_p): New functions.
24900         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24901         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24902         (function_value): Rename to...
24903         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
24904         argument to 'outgoing'.
24905         (function_arg_record_value, function_arg_union_value,
24906         function_arg_vector_value): Update comment.
24907
24908 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
24909
24910         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
24911         (fde_needed_for_eh_p): New predicate.
24912         (output_call_frame_info): Use it throughout to decide whether FDEs
24913         are needed for EH purpose.
24914         (dwarf2out_begin_prologue): Reorder assignments.
24915
24916 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24917
24918         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
24919         special case loop->header.
24920         (is_predicated): New.
24921         (if_convertible_loop_p): Call it.
24922
24923 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24924
24925         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
24926         iterator in parameter.  Do not generate code during the analysis.
24927         (tree_if_convert_cond_stmt): Removed.
24928         (tree_if_convert_stmt): Removed.
24929         (predicate_bbs): New.
24930         (if_convertible_loop_p): Call predicate_bbs.
24931         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
24932         now contains all the analysis part.
24933
24934 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24935
24936         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
24937         statements in the analysis part.
24938         (tree_if_convert_stmt): Update comment.
24939         (remove_conditions_and_labels): New.
24940         (combine_blocks): Call remove_conditions_and_labels.
24941         (tree_if_conversion): Update comment.
24942
24943 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24944
24945         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
24946         than 2 predecessors or more than 2 successors.
24947
24948 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24949
24950         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
24951         of loops in which the data dependence analysis fails.
24952
24953 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24954
24955         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
24956         CDI_POST_DOMINATORS.
24957         (tree_if_conversion): Same.
24958
24959 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24960
24961         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
24962
24963 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
24964
24965         * tree-if-conv.c: Update copyright years.  Fix comments.
24966         Fix indentation.
24967
24968 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
24969
24970         * builtin-types.def (BT_INT128): New primitive type.
24971         (BT_UINT128): Likewise.
24972         * c-common.c (c_common_r): Add __int128 keyword.
24973         (c_common_type_for_size): Handle __int128.
24974         (c_common_type_for_mode): Likewise.
24975         (c_common_signed_or_unsigned_type): Likewise.
24976         (c_common_nodes_and_builtins): Add builtin type
24977         if target supports 128-bit integer scalar.
24978         * c-common.h (enum rid): Add RID_INT128.
24979         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
24980         if target supports 128-bit integer scalar.
24981         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
24982         (finish_declspecs): Likewise.
24983         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
24984         (c_token_starts_declspecs): Likewise.
24985         (c_parser_declspecs): Likewise.
24986         (c_parser_attributes): Likewise.
24987         (c_parser_objc_selector): Likewise.
24988         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
24989         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
24990         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
24991         * tree.c (make_or_reuse_type): Likewise.
24992         (make_unsigned_type): Likewise.
24993         (build_common_tree_nodes_2): Likewise.
24994         * tree.h (enum integer_type_kind): Add itk_int128 and
24995         itk_unsigned_int128.
24996         (int128_integer_type_node): New define.
24997         (int128_unsigned_type_node): New define.
24998         * doc/extend.texi: Add documentation about __int128 type.
24999
25000 2010-05-26  Richard Guenther  <rguenther@suse.de>
25001
25002         * tree-ssa-sccvn.c (copy_nary): Adjust.
25003         (copy_phis): Rename to ...
25004         (copy_phi): ... this.  Adjust.
25005         (copy_references): Rename to ...
25006         (copy_reference): ... this.  Adjust.
25007         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
25008         result into the valid table.
25009
25010 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25011
25012         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
25013         insn-config.h, insn-codes.h, recog.h, and optabs.h.
25014
25015 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25016
25017         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
25018
25019 2010-05-26  Richard Guenther  <rguenther@suse.de>
25020
25021         * opts.c (common_handle_option): Handle OPT_Ofast.
25022
25023 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25024
25025         * diagnostic.c: Don't include opts.h.
25026         (permissive_error_option): Define.
25027         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
25028         for classify_diagnostic.  Don't use memset for
25029         classify_diagnostic.  Initialize new and recently added fields.
25030         (diagnostic_classify_diagnostic): Use context->n_opts instead of
25031         N_OPTS.
25032         (diagnostic_report_diagnostic): Pass context parameter to
25033         diagnostic_report_warnings_p.  Use option_enabled and option_name
25034         hooks from context.
25035         (emit_diagnostic): Use permissive_error_option.
25036         (permerror): Likewise.
25037         * diagnostic.h: Don't include options.h.
25038         (struct diagnostic_context): Add n_opts, opt_permissive,
25039         inhibit_warnings, warn_system_headers, option_enabled and
25040         option_name fields.  Change classify_diagnostic to a pointer.
25041         * opts-diagnostic.h: New file.
25042         * opts.c: Include opts-diagnostic.h.
25043         (common_handle_option): Set global_dc fields for -Wfatal-errors,
25044         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
25045         (option_name): New function.
25046         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
25047         (c_common_handle_option): Set global_dc->permissive for
25048         -fpermissive.
25049         * c-common.c (c_cpp_error): Save and restore
25050         global_dc->warn_system_headers, not variable warn_system_headers.
25051         * toplev.c: Include opts-diagnostic.h.
25052         (general_init): Update call to diagnostic_initialize.  Set
25053         global_dc->show_column, global_dc->option_enabled and
25054         global_dc->option_name.
25055         (process_options): Don't set global_dc fields here.
25056         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
25057         (diagnostic.o, opts.o, toplev.o): Update dependencies.
25058
25059 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
25060
25061         * config/picochip/picochip.md (movsi): Split a movsi from a
25062         const after reload.
25063
25064 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25065
25066         * ggc-zone.c: Update copyright year.
25067         (poison_region): Mark memory for Valgrind as undefined before
25068         memset () call and inaccessible afterwards.
25069         (ggc_pch_total_size): Change type of i to int.
25070
25071 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25072
25073         * ggc-common.c (ggc_free_overhead): Allow empty slot.
25074
25075 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25076
25077         * ggc-common.c: Update copyright year.
25078         (ggc_rlimit_bound): Remove prototype.  Compile only if
25079         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
25080         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
25081         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
25082         (ggc_min_heapsize_heuristic): Likewise.
25083
25084 2010-05-26  Richard Guenther  <rguenther@suse.de>
25085
25086         PR rtl-optimization/44164
25087         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
25088         no-common access-path disambiguation.
25089         (indirect_ref_may_alias_decl_p): Adjust.
25090         (indirect_refs_may_alias_p): Likewise.
25091         (refs_may_alias_p_1): Likewise.
25092
25093 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25094
25095         * c-typeck.c: Do not include expr.h.
25096
25097 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25098
25099         * rtl.h (decl_default_tls_model): Move prototype from here...
25100         * output.h: ...to here.
25101         * c-decl.c: Do not include rtl.h.
25102         * c-pragma.c: Likewise.
25103         * c-parser.c: Likewise.
25104         * c-gimplify.c: Likewise.  And also not hard-reg-set.
25105         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
25106         FIXME note for it.  Add a FIXME note for expr.h.
25107         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
25108         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
25109         defined.
25110
25111 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
25112
25113         PR target/44199
25114         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
25115         or total_size is larger than red zone size for non-V4 ABI, emit a
25116         stack_tie resp. frame_tie insn before stack pointer restore.
25117         * config/rs6000/rs6000.md (frame_tie): New insn.
25118
25119 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
25120
25121         * function.h (struct function): Add can_throw_non_call_exceptions bit.
25122         * lto-streamer-in.c (input_function): Stream it in.
25123         * lto-streamer-out.c (output_function): Stream it out.
25124         * function.c (allocate_struct_function): Set it.
25125         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
25126         for flag_non_call_exceptions.
25127         * cfgbuild.c (control_flow_insn_p): Likewise.
25128         (make_edges): Likewise.
25129         * cfgexpand.c (expand_stack_alignment): Likewise.
25130         * combine.c (distribute_notes): Likewise.
25131         * cse.c (cse_extended_basic_block): Likewise.
25132         * except.c (insn_could_throw_p): Likewise.
25133         * gcse.c (simple_mem): Likewise.
25134         * ipa-pure-const.c (check_call): Likewise.
25135         (check_stmt ): Likewise.
25136         * lower-subreg.c (lower-subreg.c): Likewise.
25137         * optabs.c (emit_libcall_block): Likewise.
25138         (prepare_cmp_insn): Likewise.
25139         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
25140         * postreload.c (rest_of_handle_postreload): Likewise.
25141         * reload1.c (reload_as_needed): Likewise.
25142         (emit_input_reload_insns): Likewise.
25143         (emit_output_reload_insns): Likewise.
25144         (fixup_abnormal_edges): Likewise.
25145         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
25146         * store-motion.c (find_moveable_store): Likewise.
25147         * tree-eh.c (stmt_could_throw_p): Likewise.
25148         (tree_could_throw_p): Likewise.
25149         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
25150         * config/arm/arm.c (arm_expand_prologue): Likewise.
25151         (thumb1_expand_prologue): Likewise.
25152         * config/rx/rx.md (cbranchsf4): Likewise.
25153         (cmpsf): Likewise.
25154         * config/s390/s390.c (s390_emit_prologue): Likewise.
25155         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
25156         (inline_forbidden_into_p): New predicate.
25157         (expand_call_inline): Use it to forbid inlining.
25158         (tree_can_inline_p): Likewise.
25159
25160 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25161
25162         * config/i386/i386-c.c: Do not include rtl.h.
25163         * config/i386/t-i386: Update dependencies.
25164
25165 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25166
25167         * attribs.c: Do not include rtl.h.
25168         * Makefile.in: Update dependencies.
25169
25170 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
25171
25172         * double-int.h (double_int_and): New.
25173         * combine.c (try_combine): Clean up, use double_int_* and
25174         immed_double_int_const functions.
25175
25176 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25177
25178         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
25179         stderr to /dev/null instead of grep -q.
25180         * configure: Regenerate.
25181
25182 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25183
25184         * Makefile.in (EXCEPT_H): Fix typo.
25185
25186 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
25187
25188         * ira-build.c (update_conflict_hard_reg_costs): New.
25189         (ira_build): Call update_conflict_hard_reg_costs.
25190
25191 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
25192
25193         PR debug/41371
25194         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
25195         ENABLE_CHECKING.
25196         (intersect_loc_chains): Walk the s2var's loc_chain together
25197         with s1node chain as long as the locations are equal, don't
25198         call find_loc_in_1pdv in that case.
25199
25200         PR debug/42801
25201         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
25202         (copy_bind_expr): ... instead of here.
25203         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
25204         if the block hasn't been remapped.
25205         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
25206         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
25207
25208 2010-05-25  Richard Guenther  <rguenther@suse.de>
25209
25210         PR middle-end/44069
25211         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
25212         out-of-bounds array accesses.
25213
25214 2010-05-25  Richard Guenther  <rguenther@suse.de>
25215
25216         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
25217         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
25218         (run_gcc): Re-organize to make cleanup easier.
25219
25220 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25221
25222         * config/s390/s390.c (optimization_options): Fix and move the
25223         flag_prefetch_loop_arrays override ...
25224         (override_options): ... here.
25225
25226 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
25227
25228         * diagnostic.c: Don't include plugin.h.
25229         (diagnostic_report_diagnostic): Don't handle plugins specially
25230         here.  Pass context to internal_error callback.
25231         * diagnostic.h (struct diagnostic_context): Add context parameter
25232         to internal_error callback.
25233         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
25234         * plugin.h (struct diagnostic_context): Declare.
25235         (warn_if_plugins, plugins_internal_error_function): Declare.
25236         * toplev.c (general_init): Set global_dc->internal_error.
25237         * Makefile.in (diagnostic.o): Update dependencies.
25238
25239 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
25240
25241         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
25242         * config/rs6000/t-darwin64: New.
25243         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
25244         build crt2.
25245
25246 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
25247
25248         PR 44203
25249         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
25250         match the original (and intended) behaviour before r159557.  This
25251         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
25252         in two ways.
25253
25254 2010-05-25  Richard Guenther  <rguenther@suse.de>
25255
25256         * doc/invoke.texi: Document -Ofast.
25257         * target.h (struct gcc_target): Add handle_ofast.
25258         * target-def.h (TARGET_HANDLE_OFAST): Add.
25259         (TARGET_INITIALIZER): Adjust.
25260         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
25261         * common.opt (Ofast): Add.
25262
25263 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25264
25265         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
25266         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
25267
25268 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25269
25270         PR target/43610
25271         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
25272         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
25273         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
25274         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
25275
25276 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
25277
25278         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
25279         DW_OP_minus with negated offset instead of DW_OP_plus.
25280         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
25281
25282 2010-05-25  Wei Guozhi  <carrot@google.com>
25283
25284         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
25285         tst instruction and a new alternative.
25286         * config/arm/constraints.md (Pu): New constraint.
25287
25288 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
25289
25290         * function.c (assign_stack_local_1): Initialize variable
25291         to avoid warning when bootstrapping at -O3.
25292
25293 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
25294
25295         * configure.ac (all_lang_makefiles): Remove everything related to it.
25296         * configure: Regenerate.
25297         * Makefile.in: Fix reference to ada Make-lang.in.
25298         Remove support for LANG_MAKEFILES.
25299
25300 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
25301             Sandra Loosemore  <sandra@codesourcery.com>
25302
25303         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
25304         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
25305         description.  Add arm_neon_fp16_ok.
25306         (Add Options): Add arm_neon and arm_neon_fp16.
25307
25308 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
25309
25310         * diagnostic.c: Don't include flags.h.
25311         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
25312         context parameters.  Check flags in the context passed as a parameter.
25313         (diagnostic_build_prefix): Add context parameter.  Check
25314         show_column flag in context.
25315         (diagnostic_action_after_output): Check fatal_errors flag in context.
25316         (diagnostic_report_current_module): Check show_column flag in context.
25317         (default_diagnostic_starter): Update call to
25318         diagnostic_build_prefix.
25319         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
25320         (emit_diagnostic): Pass context to permissive_error_kind.
25321         (permerror): Pass context to permissive_error_kind.
25322         * diagnostic.h (struct diagnostic_context): Add show_column,
25323         pedantic_errors, permissive and fatal_errors fields.
25324         (diagnostic_build_prefix): Update prototype.
25325         * langhooks.c
25326         * toplev.c (process_options): Set flags in global_dc from
25327         flag_show_column, flag_pedantic_errors, flag_permissive,
25328         flag_fatal_errors.
25329         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
25330         to diagnostic_build_prefix.
25331         * Makefile.in (diagnostic.o): Update dependencies.
25332
25333 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
25334
25335         * config/i386/ia32intrin.h (__crc32q): Define only if
25336         __SSE4_2__ is defined.
25337
25338 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
25339
25340         PR target/44132
25341         PR middle-end/43602
25342         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
25343         DECL_VISIBILITY_SPECIFIED.
25344         (emutls_decl): Set DECL_PRESERVE_P and copy
25345         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
25346         (emutls_finalize_control_var): New callback.
25347         (emutls_finish): Finalize emutls control variables.
25348         * toplev.c (compile_file): Move the call to emutls_finish ()
25349         before varpool_assemble_pending_decls ().
25350
25351 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
25352
25353         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
25354         added to the preprocessor condition.
25355
25356 2010-05-24  Paul Brook  <paul@codesourcery.com>
25357
25358         * gengtype-lex.l: Add HARD_REG_SET.
25359         * expr.c (expand_expr_real_1): Record writes to hard registers.
25360         * function.c (rtl_data): Add asm_clobbers.
25361         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
25362         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
25363         Use crtl->asm_clobbers.
25364
25365 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25366
25367         * doc/makefile.texi (Makefile): Mention stages 'profile'
25368         and 'feedback' for profiledbootstrap.
25369
25370 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
25371
25372         PR target/44245
25373         * config/i386/i386.c (def_builtin): Properly check
25374         OPTION_MASK_ISA_64BIT.
25375
25376 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
25377
25378         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
25379         typedefs with different but compatible types.  Allow duplicate
25380         typedefs with the same type except for pedantic non-C1X, but give
25381         warning for variably modified types.
25382         * c-typeck.c (tagged_types_tu_compatible_p,
25383         function_types_compatible_p, type_lists_compatible_p,
25384         comptypes_internal): Add parameter different_types_p; set
25385         *different_types_p for different but compatible types.  All
25386         callers changed.
25387         (comptypes_check_different_types): New.
25388         * c-tree.h (comptypes_check_different_types): Declare.
25389
25390 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25391
25392         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
25393         * jump.c: Include basic-block.h.
25394         * profile.c: Likewise.
25395         * tree-profile.c: Likewise.
25396         * coverage.c: Likewise.
25397         * basic-block.h (optimize_function_for_size_p): Move to function.h.
25398         (optimize_function_for_speed_p): Likewise.
25399         * function.h (optimize_function_for_size_p,
25400         optimize_function_for_speed_p): Moved here from basic-block.h.
25401         * Makefile.in: Update dependencies.
25402
25403 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25404
25405         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
25406         before calling make; allow override through $MAKE.
25407         * doc/invoke.texi (Optimize Options): Document override.
25408
25409 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
25410
25411         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
25412         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25413         (rs6000_mode_dependent_address_ptr): Make static.
25414         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25415         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
25416         Remove.
25417
25418 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
25419
25420         PR target/43869
25421         * config/i386/i386.c: Make sure that the correct regparm is passed.
25422
25423 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25424
25425         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
25426         * sbitmap.c: ...to here to internalize sbitmap element access.
25427         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
25428         Explain why basic-block.h is included.
25429         * function.h: Include tm.h for CUMULATIVE_ARGS.
25430         * Makefile.in: Update dependencies.
25431
25432 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25433
25434         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
25435         New core types.
25436         * sbitmap.h (struct sbitmap_def): Do not typedef here.
25437         * sbitmap.c: Include sbitmap.h.
25438         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
25439         hard-reg-set.h.  Split everything related to regsets out from here...
25440         * regset.h: ...to here.  New file.
25441         * df.h: Include regset.h and sbitmap.h.
25442         * tree-flow.h: Likewise.
25443         * cfgloop.h: Likewise.
25444         * except.h: Do not include sbitmap.h.  Include hashtab.h.
25445         * cgraph.h: Include vec.h and function.h.
25446         * reload.h (struct insn_chain): Change types of live_throughout
25447         and dead_or_set from regset_head to bitmap_head.
25448         (compute_use_by_pseudos): Be defined also if regset.h is not included.
25449         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
25450         spilled_regs from regset_head to bitmap_head to avoid dependency
25451         in regset.h.
25452         * sel-sched-ir.h: Include regset.h.
25453         * reload.c: Include df.h before reload.h.
25454         * caller-save.c: Likewise.
25455         * reload1.c: Likewise.
25456         * ira.c: Likewise.
25457         (mark_elimination): Update type of r to bitmap, consistent with
25458         DF_LR_IN.
25459         * dominance.c: Include bitmap.h.
25460         * modulo-sched.c: Include df.h.
25461         * cfganal.c: Include bitmap.h and sbitmap.h.
25462         * cfgbuild.c: Include sbitmap.h.
25463         * lcm.c: Include sbitmap.h.
25464         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
25465         * domwalk.c: Include sbitmap.h, exclude ggc.h.
25466         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
25467         * cselib.c: Include bitmap.h.
25468         * tree-optimize.c: Include regset.h.
25469         * stmt.c: Include bitmap.h.
25470         * Makefile.in: Update dependencies.
25471
25472 2010-05-22  Jan Hubicka  <jh@suse.cz>
25473
25474         * cgraph.h (struct varpool_node): Add same_comdat_group.
25475         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
25476         pointer.
25477         (output_varpool): Update call of lto_output_varpool_node.
25478         (input_varpool): Read same_comdat_group pointer.
25479         (input_varpool_1): Fixup same_comdat_group pointer.
25480         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
25481         group is needed, all are.
25482         * varpool.c (varpool_remove_node): Remove node from same comdat group
25483         linklist too.
25484         (varpool_analyze_pending_decls): Walk same comdat groups.
25485
25486 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25487
25488         * rtl.h (union rtunion_def): Remove rt_bit member.
25489         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
25490         * print-rtl (print_rtx): Do not print the member.
25491         * gengtype.c (adjust_field_rtx_def): Do not handle it.
25492         * gengenrtl.c (type_from_format): Likewise.
25493         (accessor_from_format): Likewise.
25494
25495 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
25496
25497         * dbgcnt.c: Include toplev.h instead of errors.h.
25498         * ira-emit.c: Don't include errors.h.
25499         * ira.c: Include toplev.h instead of errors.h.
25500         * lto-compress.c: Include toplev.h instead of errors.h.
25501         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
25502         ira.o, dbgcnt.o): Update dependencies.
25503
25504 2010-05-22  Richard Guenther  <rguenther@suse.de>
25505
25506         * gimple.c (gimple_types_compatible_p): Check type qualifications
25507         before merging pointer to complete and pointer to incomplete type.
25508         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
25509         we use our own resolution algorithm.  The gold linker plugin
25510         doesn't do the job we want it to do here.
25511
25512 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
25513
25514         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25515         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25516         (sparc_mode_dependent_address_p): New function.
25517
25518 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25519
25520         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
25521
25522         * timevar.c: Do not include any core headers.
25523         (timevar_print): De-i18n-ize.
25524         (print_time): Likewise.
25525         * timevar.h (timevar_push, timevar_pop): Make inline functions.
25526
25527 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
25528
25529         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
25530         langhooks-def.h.
25531         (diagnostic_initialize): Initialize x_data not last_function.
25532         (diagnostic_report_current_function): Move to tree-diagnostic.c.
25533         (default_diagnostic_starter): Call
25534         diagnostic_report_current_module not
25535         diagnostic_report_current_function.
25536         (diagnostic_report_diagnostic): Initialize x_data not
25537         abstract_origin.
25538         (verbatim): Likewise.
25539         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
25540         x_data.
25541         (struct diagnostic_context): Change last_function to x_data.
25542         (diagnostic_auxiliary_data): Replace with
25543         diagnostic_context_auxiliary_data and
25544         diagnostic_info_auxiliary_data.
25545         (diagnostic_last_function_changed, diagnostic_set_last_function,
25546         diagnostic_report_current_function): Move to tree-diagnostic.h.
25547         (print_declaration, dump_generic_node, print_generic_stmt,
25548         print_generic_stmt_indented, print_generic_expr,
25549         print_generic_decl, debug_c_tree, dump_omp_clauses,
25550         print_call_name, debug_generic_expr, debug_generic_stmt,
25551         debug_tree_chain, default_tree_printer): Move to
25552         tree-pretty-print.h.
25553         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
25554         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
25555         gimple-pretty-print.h.
25556         * pretty-print.c: Don't include tree.h
25557         (pp_base_format): Don't handle %K here.
25558         (pp_base_tree_identifier): Move to tree-pretty-print.c.
25559         * pretty-print.h (text_info): Change abstract_origin to x_data.
25560         (pp_tree_identifier, pp_unsupported_tree,
25561         pp_base_tree_identifier): Move to tree-pretty-print.h.
25562         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
25563         tree-pretty-print.h: New files.
25564         * tree-pretty-print.c: Include tree-pretty-print.h.
25565         (percent_K_format): New.  Moved from pretty-print.c.
25566         (pp_base_tree_identifier): Move from pretty-print.c.
25567         * c-objc-common.c: Include tree-pretty-print.h.
25568         (c_tree_printer): Handle %K here.
25569         * langhooks.c: Include tree-diagnostic.h.
25570         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
25571         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
25572         (default_tree_printer): Handle %K using percent_K_format.
25573         (general_init): Use default_tree_diagnostic_starter.
25574         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
25575         (free_lang_data): Use default_tree_diagnostic_starter.
25576         * c-pretty-print.c: Include tree-pretty-print.h.
25577         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25578         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25579         * dwarf2out.c: Include tree-pretty-print.h.
25580         * except.c: Include tree-pretty-print.h.
25581         * gimple-pretty-print.c: Include tree-pretty-print.h and
25582         gimple-pretty-print.h.
25583         * gimplify.c: Include tree-pretty-print.h.
25584         * graphite-poly.c: Include tree-pretty-print.h and
25585         gimple-pretty-print.h.
25586         * ipa-cp.c: Include tree-pretty-print.h.
25587         * ipa-inline.c: Include gimple-pretty-print.h.
25588         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25589         * ipa-pure-const.c: Include gimple-pretty-print.h.
25590         * ipa-struct-reorg.c: Include tree-pretty-print.h and
25591         gimple-pretty-print.h.
25592         * ipa-type-escape.c: Include tree-pretty-print.h.
25593         * print-rtl.c: Include tree-pretty-print.h.
25594         * print-tree.c: Include gimple-pretty-print.h.
25595         * sese.c: Include tree-pretty-print.h.
25596         * tree-affine.c: Include tree-pretty-print.h.
25597         * tree-browser.c: Include tree-pretty-print.h.
25598         * tree-call-cdce.c: Include gimple-pretty-print.h.
25599         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25600         * tree-chrec.c: Include tree-pretty-print.h.
25601         * tree-data-ref.c: Include tree-pretty-print.h and
25602         gimple-pretty-print.h.
25603         * tree-dfa.c: Include tree-pretty-print.h.
25604         * tree-if-conv.c: Include tree-pretty-print.h and
25605         gimple-pretty-print.h.
25606         * tree-inline.c: Include tree-pretty-print.h.
25607         * tree-into-ssa.c: Include tree-pretty-print.h and
25608         gimple-pretty-print.h.
25609         * tree-nrv.c: Include tree-pretty-print.h.
25610         * tree-object-size.c: Include tree-pretty-print.h and
25611         gimple-pretty-print.h.
25612         * tree-outof-ssa.c: Include tree-pretty-print.h and
25613         gimple-pretty-print.h.
25614         * tree-parloops.c: Include tree-pretty-print.h and
25615         gimple-pretty-print.h.
25616         * tree-predcom.c: Include tree-pretty-print.h and
25617         gimple-pretty-print.h.
25618         * tree-scalar-evolution.c: Include tree-pretty-print.h and
25619         gimple-pretty-print.h.
25620         * tree-sra.c: Include tree-pretty-print.h.
25621         * tree-ssa-address.c: Include tree-pretty-print.h.
25622         * tree-ssa-alias.c: Include tree-pretty-print.h.
25623         * tree-ssa-ccp.c: Include tree-pretty-print.h and
25624         gimple-pretty-print.h.
25625         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
25626         * tree-ssa-copy.c: Include tree-pretty-print.h and
25627         gimple-pretty-print.h.
25628         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
25629         * tree-ssa-dce.c: Include tree-pretty-print.h and
25630         gimple-pretty-print.h.
25631         * tree-ssa-dom.c: Include tree-pretty-print.h and
25632         gimple-pretty-print.h.
25633         * tree-ssa-dse.c: Include gimple-pretty-print.h.
25634         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
25635         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
25636         * tree-ssa-live.c: Include tree-pretty-print.h and
25637         gimple-pretty-print.h.
25638         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
25639         gimple-pretty-print.h.
25640         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
25641         gimple-pretty-print.h.
25642         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
25643         gimple-pretty-print.h.
25644         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
25645         gimple-pretty-print.h.
25646         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
25647         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
25648         * tree-ssa-operands.c: Include tree-pretty-print.h and
25649         gimple-pretty-print.h.
25650         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
25651         gimple-pretty-print.h.
25652         * tree-ssa-pre.c: Include tree-pretty-print.h and
25653         gimple-pretty-print.h.
25654         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
25655         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
25656         gimple-pretty-print.h.
25657         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
25658         gimple-pretty-print.h.
25659         * tree-ssa-sink.c: Include gimple-pretty-print.h.
25660         * tree-ssa-ter.c: Include tree-pretty-print.h and
25661         gimple-pretty-print.h.
25662         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
25663         * tree-ssa.c: Include tree-pretty-print.h and
25664         gimple-pretty-print.h.
25665         * tree-stdarg.c: Include gimple-pretty-print.h.
25666         * tree-switch-conversion.c: Include gimple-pretty-print.h.
25667         * tree-tailcall.c: Include tree-pretty-print.h and
25668         gimple-pretty-print.h.
25669         * tree-vect-data-refs.c: Include tree-pretty-print.h and
25670         gimple-pretty-print.h.
25671         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
25672         gimple-pretty-print.h.
25673         * tree-vect-loop.c: Include tree-pretty-print.h and
25674         gimple-pretty-print.h.
25675         * tree-vect-patterns.c: Include gimple-pretty-print.h.
25676         * tree-vect-slp.c: Include tree-pretty-print.h and
25677         gimple-pretty-print.h.
25678         * tree-vect-stmts.c: Include tree-pretty-print.h and
25679         gimple-pretty-print.h.
25680         * tree-vectorizer.c: Include tree-pretty-print.h.
25681         * tree-vrp.c: Include tree-pretty-print.h and
25682         gimple-pretty-print.h.
25683         * value-prof.c: Include tree-pretty-print.h and
25684         gimple-pretty-print.h.
25685         * var-tracking.c: Include tree-pretty-print.h.
25686         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
25687         (tree-diagnostic.o): New dependencies.
25688         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
25689         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
25690         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
25691         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
25692         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
25693         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
25694         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
25695         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
25696         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
25697         tree-ssa-address.o, tree-ssa-loop-niter.o,
25698         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
25699         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
25700         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
25701         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
25702         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
25703         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
25704         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
25705         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
25706         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
25707         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
25708         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
25709         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
25710         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
25711         tree-switch-conversion.o, var-tracking.o, value-prof.o,
25712         cfgexpand.o, pretty-print.o): Update dependencies.
25713
25714 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
25715
25716         * tree-ssa-structalias.c: Remove tm_p.h from include.
25717
25718 2010-05-21  Jeff Law  <law@redhat.com>
25719
25720         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
25721
25722 2010-05-21  Jason Merrill  <jason@redhat.com>
25723
25724         * tree-eh.c (cleanup_is_dead_in): New.
25725         (lower_try_finally): Don't generate a dead cleanup region.
25726         (lower_cleanup): Likewise.
25727
25728 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25729
25730         PR debug/44223
25731         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
25732         unchain each use from the cyclic next_regno_use chain first.
25733
25734 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25735
25736         * real: Do not include gmp.h, mpfr.h, and mpc.h.
25737         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
25738         (real_value_negate, real_value_abs): New prototypes.
25739         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
25740         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
25741         new include file for interface between MPFR and REAL_VALUE_TYPE.
25742         * real.c: Include realmpfr.h.
25743         (real_arithmetic2): Remove legacy function.
25744         (real_value_negate): New.
25745         (real_value_abs): New.
25746         (mfpr_from_real, real_from_mpfr): Move from here...
25747         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
25748         * builtins.c: Include realmpfr.h.
25749         * fold-const.c: Include realmpfr.h.
25750         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
25751         (fold_negate_const): Likewise.
25752         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
25753         * toplev.c: Include realmpfr.h.
25754         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
25755         and real_value_negate.
25756         * fixed-value.c (check_real_for_fixed_mode): Likewise.
25757         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
25758         (vfp3_const_double_index): Likewise.
25759         (arm_print_operand): Likewise.
25760         * Makefile.in: Update dependencies.
25761
25762 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25763
25764         * config/s390/s390.c (override_options): Increase the default
25765         of max-completely-peel-times.
25766
25767 2010-05-21  Julian Brown  <julian@codesourcery.com>
25768             Mark Mitchell  <mark@codesourcery.com>
25769
25770         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
25771         sibling calls for Thumb-1.
25772         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
25773         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
25774         Thumb-2.
25775         (*call_insn, *call_value_insn): Don't use for Thumb-2.
25776         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
25777         for Thumb-2.
25778         (return): New expander.
25779         (*arm_return): New name for ARM return insn.
25780         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
25781
25782 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
25783
25784         * config.gcc (sparc64-*-rtems*): New target.
25785
25786 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25787
25788         * tree.c (build_function_decl_skip_args): Fix grammar.
25789         (build_function_type_list_1): Fix typos, adjust formatting.
25790
25791 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25792
25793         * tree.h: Include real.h and fixed-value.h as basic datatypes.
25794         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
25795         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
25796         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
25797         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
25798         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
25799         tree-pretty-print.c, tree-loop-distribution.c,
25800         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
25801         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
25802         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
25803         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
25804         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
25805         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
25806         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
25807         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
25808         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
25809         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
25810         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
25811         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
25812         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
25813         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
25814         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
25815         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
25816         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
25817         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
25818         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
25819         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
25820         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
25821         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
25822         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
25823         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
25824         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
25825         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
25826         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
25827         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
25828         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
25829         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
25830         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
25831         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
25832         config/score/score7.c, config/score/score.c, config/arm/arm.c,
25833         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
25834         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
25835         config/bfin/bfin.c: Clean up redundant includes.
25836         * Makefile.in: Update accordingly.
25837
25838 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25839
25840         PR middle-end/44204
25841         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
25842         statement has no arguments.
25843
25844 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
25845
25846         PR/44139
25847         * varasm.c (emutls_decl): Merge attributes to new decl.
25848
25849 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
25850
25851         PR middle-end/44101
25852         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
25853         around the uniquized constructor if its type requires a conversion.
25854
25855 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25856
25857         PR debug/44205
25858         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
25859         at -O0 goto_locus of any of the incoming edges differs from
25860         goto_locus of outgoing edge, or gimple_location of any of the
25861         labels differs.
25862
25863 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
25864
25865         * ira.c (ira_non_ordered_class_hard_regs): Define.
25866         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
25867         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
25868         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
25869         cost of unaligned hard regs when allocating multi-reg pseudos.
25870
25871 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
25872
25873         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
25874         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
25875         for TARGET_NO_FLOAT.
25876         * config/mips/mips.c (mips_file_start): Expand conditional expression
25877         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
25878         (mips_override_options): Move -mno-float override -msoft-float and
25879         -mhard-float.
25880         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
25881         Condition(TARGET_SUPPORTS_NO_FLOAT).
25882         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
25883         __mips_no_float here.
25884         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
25885         (TARGET_SUPPORTS_NO_FLOAT): Define.
25886         * config/mips/sdemtk.opt: Delete.
25887
25888 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
25889
25890         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
25891
25892 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
25893
25894         PR target/43733
25895         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
25896         * configure: Regenerate.
25897         * config.in: Regenerate.
25898         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
25899         instead of sahf only for 64bit targets.
25900
25901 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25902
25903         PR debug/44178
25904         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
25905         setup_ref_regs for DEBUG_INSNs.
25906
25907 2010-05-20  Jan Hubicka  <jh@suse.cz>
25908
25909         PR middle-end/44197
25910         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
25911
25912 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
25913
25914         PR bootstrap/43870
25915         * df-scan.c (df_ref_compare): Stabilize sort.
25916
25917 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
25918
25919         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
25920         argument.  Don't use DW_OP_piece if offset is non-zero,
25921         put offset into second DW_OP_bit_piece argument.
25922         (dw_sra_loc_expr): Adjust callers.  For memory expressions
25923         compute offset.
25924
25925 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
25926
25927         PR target/44202
25928         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
25929         settings for 16-bit-constant "addo" alternative.
25930
25931 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
25932
25933         * config/mips/mips-dsp.md (add<DSPV:mode>3,
25934         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
25935
25936         PR target/43764
25937         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
25938         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
25939         Use it.
25940
25941 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
25942
25943         * diagnostic.c (FLOAT, FFS): Don't undefine.
25944         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
25945         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
25946         include ordering.
25947
25948 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25949
25950         * combine.c (propagate_for_debug): Call make_compound_operation
25951         on the source value.
25952         (try_combine): When implementing a split chosen by find_split_point,
25953         either copy i2src or set it to null.  Assert that i2src is not null
25954         before substituting into CALL_INSN_FUNCTION_USAGE.
25955
25956 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
25957
25958         * double-int.h (double_int_ior): New function.
25959         * tree.h (build_int_cst_wide_type): Remove.
25960         * tree.c (build_int_cst_wide_type): Remove.
25961         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
25962         of build_int_cst_wide_type.
25963         * stor-layout.c (set_sizetype): (Ditto.).
25964         * dojump.c (do_jump): Use build_int_cstu instead of
25965         build_int_cst_wide_type.
25966
25967 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
25968
25969         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
25970         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
25971         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
25972         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
25973         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
25974         propagate the 'data' argument to copy_tree_r.
25975         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
25976         Propagate 'data' argument to walk_tree.
25977         (copy_if_shared): New function.
25978         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
25979         (unmark_visited): New function.
25980         (unshare_body): Call copy_if_shared instead of doing it manually.
25981         (unvisit_body): Call unmark_visited instead of doing it manually.
25982
25983 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
25984
25985         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
25986         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
25987         * hooks.c: Likewise.
25988         * target-def.h (TARGET_FOLD_BUILTIN): Define to
25989         hook_tree_tree_int_treep_bool_null.
25990         * target.h (struct gcc_target): Update signature of fold_builtin
25991         field.
25992         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
25993         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
25994         instead of the call expression.
25995         (fold_builtin_call_array): Pass n and argarray directly.
25996         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
25997         consing a list.
25998         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
25999         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
26000         `i' and use it in place of `arity'.
26001         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
26002         Dereference `args' directly.
26003         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
26004
26005 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26006
26007         * doc/sourcebuild.texi (Effective-Target Keywords): Document
26008         3dnow, sse3, sse2.
26009         (Directives): Document optional dg-require-effective-target
26010         selector.
26011
26012 2010-05-19  Richard Guenther  <rguenther@suse.de>
26013
26014         PR lto/44196
26015         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
26016
26017 2010-05-19  Richard Guenther  <rguenther@suse.de>
26018
26019         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
26020         * common.opt (fwhopr=): New.
26021         * opts.c (common_handle_option): Handle OPT_fwhopr.
26022         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
26023         * collect2.c (main): Match -fwhopr*.
26024         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
26025         Execute ltrans stage in parallel when jobs is bigger than 1.
26026
26027 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26028
26029         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
26030         pentiumpro on Solaris 8/x86 with Sun as.
26031         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
26032         hidden alias bug.
26033         (gcc_cv_as_ix86_quad): Check for .quad directive.
26034         * configure: Regenerate.
26035         * config.in: Regenerate.
26036         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
26037
26038 2010-05-19  Martin Jambor  <mjambor@suse.cz>
26039
26040         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
26041         also for indirect edges.  Actual printing moved...
26042         (ipa_print_node_jump_functions_for_edge): ...here.
26043         (ipa_compute_jump_functions): Renamed to
26044         ipa_compute_jump_functions_for_edge and made static.
26045         (ipa_compute_jump_functions): New function.
26046         (make_edge_direct_to_target): Check if the number of arguments on
26047         the newly direct edge is the same as the number of parametrs of
26048         the callee.
26049         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
26050         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
26051         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
26052         analysis functions unconditionally, call the new
26053         ipa_analyze_params_uses on the node instead of every edge.
26054
26055 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
26056
26057         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
26058         to tree.
26059         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
26060         also checks for a constant int vs.  non-constant but
26061         loop-invariant steps.
26062         (find_or_create_group): Change the sort algorithm to only consider
26063         steps that are constant ints.
26064         (idx_analyze_ref): Adopt code to handle a tree instead of a
26065         HOST_WIDE_INT for step.
26066         (gather_memory_references_ref): Handle tree instead of int and be
26067         prepared to see a NULL_TREE.
26068         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
26069         prefetches if the step cannot be calculated at compile time.
26070         (issue_prefetch_ref): Issue prefetches for non-constant but
26071         loop-invariant steps.
26072
26073 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26074
26075         Revert:
26076         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26077
26078         * tree.h (build_call_list): Remove.
26079         * tree.c (build_call_list): Remove.
26080
26081 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26082
26083         * tree.h (build_call_list): Remove.
26084         * tree.c (build_call_list): Remove.
26085
26086 2010-05-18  Jan Hubicka  <jh@suse.cz>
26087
26088         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
26089
26090 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
26091
26092         PR rtl-optimization/43332
26093         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
26094
26095 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
26096
26097         * tree.h (build_int_cstu): Implement as static inline.
26098         * tree.c (build_int_cstu): Remove function.
26099         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
26100         sign extended.
26101
26102 2010-05-18  Richard Guenther  <rguenther@suse.de>
26103
26104         PR lto/44143
26105         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
26106         (debug): Initialize from -save-temps.
26107         (collect_execute): Print command-line when verbose.
26108         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
26109         for ltrans invocation.  Produce -dumpbase flag again.
26110         (process_args): Remove.
26111         (main): Simplify.
26112         * collect2.c (maybe_run_lto_and_relink): Only pass object
26113         files to lto-wrapper.
26114         * gcc.c (LINK_COMMAND_SPEC): Likewise.
26115
26116 2010-05-18  Jan Hubicka  <jh@suse.cz>
26117
26118         * opts.c (decode_options): Do not disable whopr at ipa_cp.
26119         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
26120
26121 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
26122
26123         PR lto/44184
26124         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
26125         in a GIMPLE_ASM.
26126         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
26127         in a GIMPLE_ASM.
26128
26129 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
26130
26131         PR debug/41371
26132         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
26133         rtx_equal_p inline.
26134
26135 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
26136
26137         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
26138         lto-macho as lto_binary_reader.
26139
26140         * darwin.c (darwin_asm_named_section): Do not add assembler comment
26141         after .section directive; just print it before the directive instead.
26142
26143 2010-05-17  Jan Hubicka  <jh@suse.cz>
26144
26145         * cgraph.c (cgraph_create_virtual_clone): Only check
26146         versionable_function_p when not in wpa and checking is enabled.
26147         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
26148         there are no more functions to materialize.
26149
26150 2010-05-17  Jan Hubicka  <jh@suse.cz>
26151
26152         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
26153         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
26154         New functions.
26155         (output_cgraph): Call output_cgraph_opt_summary.
26156         (input_cgrpah): Call input_cgraph_opt_summary.
26157         (output_cgraph_opt_summary_p, output_node_opt_summary,
26158         input_node_opt_summary, input_cgraph_opt_section): New functions.
26159         * lto-section-in.c (lto_section_name): Add cgraphopt.
26160         * tree-inline.c (tree_function_versioning): Handle parm_num.
26161         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
26162         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
26163
26164 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
26165
26166         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
26167         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
26168         the insn to prefetch ratio heuristic to loops with known trip count.
26169
26170 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
26171
26172         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
26173         (schedule_prefetches): Do not generate a prefetch if the unroll factor
26174         is far from what is required by the prefetch.
26175
26176 2010-05-17  Jan Hubicka  <jh@suse.cz>
26177
26178         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
26179         (ipcp_estimate_growth): Likewise.
26180         (ipcp_const_param_count): Likewise.
26181         (ipcp_insert_stage): Likewise.
26182         * ipa-prop.c (visit_load_for_mod_analysis): New function.
26183         (visit_store_addr_for_mod_analysis): Set used flag.
26184         (ipa_detect_param_modifications): Set used flag for SSE params;
26185         update use of walk_stmt_load_store_addr_ops.
26186         (ipa_print_node_params): Print used flag.
26187         (ipa_write_node_info): Stream used flag.
26188         (ipa_read_node_info): Likewise.
26189         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
26190         (ipa_is_param_used): New function.
26191         (lto_ipa_fixup_call_notes): Remove unused declaration.
26192
26193 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26194
26195         PR target/44074
26196         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
26197         * configure: Regenerate.
26198         * config.in: Regenerate.
26199         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
26200         !HAVE_AS_IX86_REP_LOCK_PREFIX.
26201         Don't emit whitespace.
26202         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
26203         (*rep_movsi): Likewise.
26204         (*rep_movsi_rex64): Likewise.
26205         (*rep_movqi): Likewise.
26206         (*rep_movqi_rex64): Likewise.
26207         (*rep_stosdi_rex64): Likewise.
26208         (*rep_stossi): Likewise.
26209         (*rep_stossi_rex64): Likewise.
26210         (*rep_stosqi): Likewise.
26211         (*rep_stosqi_rex64): Likewise.
26212         (*cmpstrnqi_nz_1): Use {%;} after repz.
26213         (*cmpstrnqi_nz_rex_1): Likewise.
26214         (*cmpstrnqi_1): Likewise.
26215         (*cmpstrnqi_rex_1): Likewise.
26216         (*strlenqi_1): Use {%;} after repnz.
26217         (*strlenqi_rex_1): Likewise.
26218         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
26219         (*sync_compare_and_swap<mode>): Likewise.
26220         (sync_double_compare_and_swap<mode>): Likewise.
26221         (*sync_double_compare_and_swapdi_pic): Likewise.
26222         (sync_old_add<mode>): Likewise.
26223         (sync_add<mode>): Likewise.
26224         (sync_sub<mode>): Likewise.
26225         (sync_<code><mode>): Likewise.
26226
26227 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26228
26229         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
26230         otr_token and polymorphic.
26231         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
26232         (cgraph_clone_edge): Copy the above fields.
26233         * tree.c (get_binfo_at_offset): New function.
26234         * tree.h (get_binfo_at_offset): Declare.
26235         * ipa-prop.h (enum jump_func_type): Added known_type jump function
26236         type, reordered items, updated comments.
26237         (union jump_func_value): Added base_type field, reordered fields.
26238         (enum ipa_lattice_type): Moved down in the file.
26239         (struct ipa_param_descriptor): New field polymorphic.
26240         (ipa_is_param_polymorphic): New function.
26241         * ipa-prop.c: Include gimple.h and gimple-fold.h.
26242         (ipa_print_node_jump_functions): Print known type jump functions.
26243         (compute_complex_pass_through): Renamed to...
26244         (compute_complex_assign_jump_func): this.
26245         (compute_complex_ancestor_jump_func): New function.
26246         (compute_known_type_jump_func): Likewise.
26247         (compute_scalar_jump_functions): Create known type and complex ancestor
26248         jump functions.
26249         (ipa_note_param_call): New parameter polymorphic, set the corresponding
26250         flag in the call note accordingly.
26251         (ipa_analyze_call_uses): Renamed to...
26252         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
26253         variable var only in the block where it is used.
26254         (ipa_analyze_virtual_call_uses): New function.
26255         (ipa_analyze_call_uses): Likewise.
26256         (combine_known_type_and_ancestor_jfs): Likewise.
26257         (update_jump_functions_after_inlining): Implemented handling of a
26258         number of new jump function types combination.
26259         (print_edge_addition_message): Removed.
26260         (make_edge_direct_to_target): New function.
26261         (try_make_edge_direct_simple_call): Likewise.
26262         (try_make_edge_direct_virtual_call): Likewise.
26263         (update_call_notes_after_inlining): Renamed to...
26264         (update_indirect_edges_after_inlining): this.  Moved edge creation for
26265         indirect calls to try_make_edge_direct_simple_call, also calls
26266         try_make_edge_direct_virtual_call for virtual calls.
26267         (ipa_print_node_params): Changed the header message.
26268         (ipa_write_jump_function): Stream also known type jump functions.
26269         (ipa_read_jump_function): Likewise.
26270         (ipa_write_indirect_edge_info): Stream new fields in
26271         cgraph_indirect_call_info.
26272         (ipa_read_indirect_edge_info): Likewise.
26273         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
26274         GIMPLE_FOLD_H.
26275
26276 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26277
26278         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
26279
26280 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26281
26282         * tree.h (CALL_EXPR_ARGS): Delete.
26283         (call_expr_arglist): Delete.
26284         * tree.c (call_expr_arglist): Delete.
26285         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
26286         targetm.fold_builtin.
26287         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
26288         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
26289         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
26290         arglist parameter.  Use CALL_EXPR_ARG.
26291         (picochip_expand_builtin_3op): Likewise.
26292         (picochip_expand_builtin_2opvoid): Likewise.
26293         (picochip_expand_array_get): Likewise.
26294         (picochip_expand_array_put): Likewise.
26295         (picochip_expand_array_testport): Likewise.
26296         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
26297         rather than arglist.
26298         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
26299         CALL_EXPR_ARGS.
26300         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
26301         than TREE_VALUE and TREE_CHAIN.
26302         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
26303         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
26304         the arglist.
26305
26306 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26307
26308         PR bootstrap/42347
26309         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
26310         to have no fallthru edge.
26311
26312         PR middle-end/44102
26313         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
26314         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
26315         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
26316         add BARRIER after previous bb if needed.
26317
26318 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26319
26320         * tree.c (build_function_type_list_1): Remove bogus assert condition.
26321
26322 2010-05-17  Alan Modra  <amodra@gmail.com>
26323
26324         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
26325         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
26326         with copy_reg rtx param.
26327         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
26328         Correct cases where code for ABI_V4 did not initialise the reg
26329         used to access frame.  Also leave frame_reg_rtx as sp for large
26330         frames that save no regs.
26331
26332 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26333
26334         PR middle-end/44133
26335         * tree-sra.c (create_access_replacement): New parameter rename, mark
26336         the replaement for renaming only when it is true.
26337         (get_access_replacement): Pass true in the rename parameter of
26338         create_access_replacement.
26339         (get_unrenamed_access_replacement): New function.
26340         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
26341         replacement declaration from it.
26342
26343 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
26344
26345         * function.c (try_fit_stack_local, add_frame_space): New static
26346         functions.
26347         (assign_stack_local_1): Use them.  Look for opportunities to use
26348         space previously wasted on alignment.
26349         * function.h (struct frame_space): New.
26350         (struct rtl_data): Add FRAME_SPACE_LIST member.
26351         * reload1.c (something_was_spilled): New static variable.
26352         (alter_reg): Set it.
26353         (reload): Test it in addition to testing if the frame size changed.
26354
26355 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
26356
26357         * config/s390/s390.c: Define sane prefetch settings and activate
26358         flag_prefetch_loop_arrays on -O3.
26359         * config/s390/s390.h: Declare that read can use write prefetch.
26360
26361 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26362
26363         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
26364         build.
26365
26366 2010-05-16  Jan Hubicka  <jh@suse.cz>
26367
26368         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
26369         function body; do not check stdarg field of struct function.
26370
26371 2010-05-16  Jan Hubicka  <jh@suse.cz>
26372
26373         * cgraph.c (dump_cgraph_node): Dump versionable flag.
26374         * cgraph.h (cgraph_local_info): Add versionable flag.
26375         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
26376         (ipcp_versionable_function_p): Use it.
26377         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26378         versionable flag.
26379
26380 2010-05-16  Jan Hubicka  <jh@suse.cz>
26381
26382         * cgraph.c (cgraph_clone_node): Take decl argument and insert
26383         clone into hash when it is different from orig.
26384         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
26385         * cgraph.h (cgraph_clone_node): Update prototype.
26386         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
26387         (lto_cgraph_encoder_delete): Delete body map.
26388         (lto_cgraph_encoder_size): Move to header.
26389         (lto_cgraph_encoder_encode_body_p,
26390         lto_set_cgraph_encoder_encode_body): New.
26391         (lto_output_node): Do not take written_decls argument; output clone_of
26392         pointer.
26393         (add_node_to): Add include_body_argument; call
26394         lto_set_cgraph_encoder_encode_body on master of the clone.
26395         (add_references): Update use of add_node_to.
26396         (compute_ltrans_boundary): Likewise.
26397         (output_cgraph): Do not create written_decls bitmap.
26398         (input_node): Take nodes argument; stream in clone_of correctly.
26399         (input_cgraph_1): Update use of input_node.
26400         * lto-streamer-out.c (lto_output): Use encoder info to decide
26401         what bodies to output.
26402         * ipa-inline.c (cgraph_clone_inlined_nodes,
26403         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
26404         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
26405         (lto_cgraph_encoder_size): Define here.
26406         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
26407         Declare.
26408
26409 2010-05-16  Richard Guenther  <rguenther@suse.de>
26410
26411         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
26412         -fipa-type-escape.
26413         * ipa-type-escape.c (gate_type_escape_vars): Run when
26414         -fipa-struct-reorg runs.
26415         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
26416         * common.opt (fipa-type-escape): Remove.
26417
26418 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26419
26420         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
26421         (decode_options): Likewise.
26422         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
26423
26424 2010-05-16  Jan Hubicka  <jh@suse.cz>
26425
26426         * ipa.c (function_and_variable_visibility): Also bring local all
26427         aliases.
26428
26429 2010-05-16  Richard Guenther  <rguenther@suse.de>
26430
26431         * alias.c (nonoverlapping_memrefs_p): Remove use of
26432         IPA type-escape information.
26433
26434 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
26435
26436         * c-common.c (c_common_reswords): Add _Static_assert for C.
26437         * c-parser.c (c_token_starts_declaration,
26438         c_parser_next_token_starts_declaration,
26439         c_parser_static_assert_declaration_no_semi,
26440         c_parser_static_assert_declaration): New.
26441         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
26442         Handle static assertions if static_assert_ok.
26443         (c_parser_external_declaration, c_parser_declaration_or_fndef,
26444         c_parser_compound_statement_nostart, c_parser_label,
26445         c_parser_for_statement, c_parser_objc_methodprotolist,
26446         c_parser_omp_for_loop): All callers of
26447         c_parser_declaration_or_fndef changed.
26448         (c_parser_struct_declaration): Handle static assertions.
26449         (c_parser_compound_statement_nostart): Use
26450         c_parser_next_token_starts_declaration and
26451         c_token_starts_declaration to detect start of declarations.
26452         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
26453         Likewise.
26454
26455 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
26456
26457         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26458         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26459         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26460         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26461         (mmix_function_outgoing_value): Rename to...
26462         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
26463         (mmix_function_value_regno_p): Make static.
26464         (mmix_libcall_value): New function.
26465         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
26466         mmix_function_value_regno_p): Remove declaration.
26467
26468 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26469
26470         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
26471         BUILT_IN_ALLOCA if stack checking is enabled.
26472
26473 2010-05-16  Richard Guenther  <rguenther@suse.de>
26474
26475         * var-tracking.c (vars_copy_1): Inline ...
26476         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26477         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
26478         (variable_merge_over_cur): Adjust.  Merge asserts.
26479         (variable_merge_over_src): Likewise.
26480         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
26481         (variable_post_merge_new_vals): Merge asserts.
26482         (variable_post_merge_perm_vals): Likewise.
26483         (find_mem_expr_in_1pdv): Likewise.
26484         (dataflow_set_different_value): Remove.
26485         (onepart_variable_different_p): Merge asserts.
26486         (variable_different_p): Likewise.
26487         (dataflow_set_different_1): Inline ...
26488         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26489         (emit_notes_for_differences_1): Merge asserts.
26490
26491 2010-05-16  Richard Guenther  <rguenther@suse.de>
26492
26493         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
26494         * optabs.c (libfunc_decl_hash): Likewise.
26495         * varasm.c (emutls_decl): Likewise.
26496
26497 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
26498
26499         * c-decl.c: Don't include gimple.h.
26500         (merge_decls): Do not copy gimple_body.
26501
26502 2010-05-15  Jason Merrill  <jason@redhat.com>
26503
26504         * c.opt: Add -fnothrow-opt.
26505
26506 2010-05-15  Jan Hubicka  <jh@suse.cz>
26507
26508         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
26509         analyzed.
26510         * passes.c (ipa_write_summaries): Write all analyzed nodes.
26511
26512 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
26513
26514         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
26515         * Makefile.in: Add it.
26516         Fix all other Makefile dependencies for changes below.
26517         * tree.h: Include it instead of defining VEC primitives here.
26518         * gimple.h: Likewise.
26519         * rtl.h: Likewise.
26520         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
26521         * except.h: Include vecir.h, break dependence on tree.h.
26522
26523         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
26524         Move from here...
26525         * tree-iterator.c: ...to here.
26526         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
26527
26528         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
26529         tm_p.h.
26530         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
26531         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
26532         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
26533         tree-mudflap.h, and target.h.
26534         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
26535         predict.h, tree-inline.h, gimple.h, and langhooks.h.
26536         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
26537         Add FIXME for why gimple.h is still included (should be unnecessary
26538         since GCC 4.5 gimplification unit-at-a-time).
26539         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
26540         * c-pragma.c: Add FIXME for why function.h needs to be included just
26541         for cfun, at front-end level.
26542         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
26543         Do not include ggc.h, but include vecprim.h for VEC(char).
26544         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
26545         Explain why target.h is included.
26546         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
26547         Explain why gimple.h is included.
26548         * c-ppoutput.c: Do not include tm.h.
26549         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
26550         * c-parses.c: Explain why rtl.h is included, and that this (and only
26551         this) is also why tm.h must be included.
26552         Do not include except.h.
26553         * c-lang.c: Do not include ggc.h.
26554
26555 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
26556
26557         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
26558
26559 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
26560
26561         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
26562         unions by default if those structs and unions have no tags.  Do
26563         not condition anonymous struct and unions handling on flag_iso.
26564         Allow anonymous structs and unions for C1X.
26565         (finish_struct): Do not diagnose lack of named fields when
26566         anonymous structs and unions present for C1X.  Accept flexible
26567         array members in structure with anonymous structs or unions but no
26568         directly named fields.
26569         * doc/extend.texi (Unnamed Fields): Update.
26570
26571 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
26572
26573         * gimple.h (compare_field_offset): Rename into...
26574         (gimple_compare_field_offset): ...this.
26575         * gimple.c (compare_field_offset): Rename into...
26576         (gimple_compare_field_offset): ...this.  Compare the full access if
26577         the offset is self-referential.
26578         (gimple_types_compatible_p): Adjust for above renaming.
26579         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
26580         DECL_NONADDRESSABLE_P flag of fields before merging them.
26581
26582 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
26583
26584         * tree.h (ctor_to_list): Delete.
26585         * tree.c (ctor_to_list): Delete.
26586
26587 2010-05-15  Jan Hubicka  <jh@suse.cz>
26588
26589         * ipa-reference.c: Include toplev.h
26590         (is_proper_for_analysis): Only add to all_module_statics
26591         if it is allocated.
26592         (write_node_summary_p, stream_out_bitmap,
26593         ipa_reference_write_optimization_summary,
26594         ipa_reference_read_optimization_summary): New.
26595         (struct ipa_opt_pass_d pass_ipa_reference): Add
26596         optimization summary streaming.
26597         * lto-cgraph.c (referenced_from_this_partition_p,
26598         reachable_from_this_partition_p): New functions.
26599         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
26600         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
26601         * opts.c (decode_options): Enable ipa_reference.
26602         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
26603         * lto-streamer.h (referenced_from_this_partition_p,
26604         reachable_from_this_partition_p): Declare.
26605
26606 2010-05-15  Richard Guenther  <rguenther@suse.de>
26607
26608         PR tree-optimization/44038
26609         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
26610         taking the address of a V_C_E of a constant.
26611
26612 2010-05-14  Jan Hubicka  <jh@suse.cz>
26613
26614         * tree.h (memory_identifier_string): Remove.
26615         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
26616         (ipa_reference_global_vars_info_d): Remove statics_not_read and
26617         statics_not_written.
26618         (ipa_reference_optimization_summary_d): New structure.
26619         (ipa_reference_optimization_summary_t): New type and vector.
26620         (ipa_reference_vars_info_d): Embedd structures instead of using
26621         pointers.
26622         (reference_vars_to_consider): Remove out of GGC space.
26623         (module_statics_escape): Remove.
26624         (global_info_obstack): Rename to ...
26625         (optimization_summary_obstack): ... this one.
26626         (initialization_status_t): Remove.
26627         (memory_identifier_string): Remove.
26628         (get_reference_vars_info): Fix indenting.
26629         (set_reference_vars_info): Likewise.
26630         (get_reference_optimization_summary): New.
26631         (set_reference_optimization_summary): New.
26632         (get_global_reference_vars_info): Remove.
26633         (ipa_reference_get_read_global): Remove.
26634         (ipa_reference_get_written_global): Remove.
26635         (ipa_reference_get_not_read_global): Update.
26636         (ipa_reference_get_not_written_global): Update.
26637         (is_proper_for_analysis): Outlaw addressable.
26638         (propagate_bits): Update for new datastructures.
26639         (analyze_variable): Remove.
26640         (init_function_info): Update for new datastructures.
26641         (clean_function_local_data): Remove.
26642         (clean_function): Remove.
26643         (copy_global_bitmap): Use optimizations_summary_obstack.
26644         (duplicate_node_data): Duplicate optimization summary only.
26645         (remove_node_data): Remove optimization summary only.
26646         (generate_summary): Do not analyze variables; do not compute
26647         module_statics_escape; do not prune solutions by it.
26648         (read_write_all_from_decl): Fix typos in comments.
26649         (propagate): Doscover readonly and nonaddressable first;
26650         update for new datastructures; share global bitmaps.
26651         * ipa-reference.h (ipa_reference_get_read_global,
26652         ipa_reference_get_written_global): Remove.
26653         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
26654         * Makefile.in: Remove ipa-refereference from GT files.
26655
26656 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26657
26658         PR debug/44112
26659         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
26660         for all SYMBOL_REF_DECLs.
26661
26662 2010-05-14  Jan Hubicka  <jh@suse.cz>
26663
26664         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
26665         (varpool_all_refs_explicit_p): New inline function.
26666         * ipa-reference.c: Update comment.
26667         (module_statics_written): Remove.
26668         (get_static_decl): Remove.
26669         (ipa_init): Do not initialize module_statics_written.
26670         (analyze_function): Likewise.
26671         (generate_summary): Likewise; do not compute module_statics_readonly
26672         and do not update variable flags.
26673         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
26674         * ipa.c: Inlucde flags.h
26675         (cgraph_local_node_p): New.
26676         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
26677         promote functions to local.
26678         (ipa_discover_readonly_nonaddressable_vars): New function.
26679         (function_and_variable_visibility): Use cgraph_local_node_p.
26680         * varpool.c (varpool_finalize_decl): Set force_output for
26681         DECL_PRESERVE_P vars.
26682
26683 2010-05-14  Jan Hubicka  <jh@suse.cz>
26684
26685         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
26686
26687 2010-05-14  Richard Guenther  <rguenther@suse.de>
26688
26689         PR tree-optimization/44119
26690         * tree-ssa-pre.c (eliminate): Properly mark replacement of
26691         a PHI node necessary.
26692
26693 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
26694
26695         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
26696
26697 2010-05-14  Jason Merrill  <jason@redhat.com>
26698
26699         PR c++/44127
26700         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
26701         (gimple_call_set_nothrow): New.
26702         * gimple.c (gimple_build_call_from_tree): Call it.
26703         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
26704
26705         PR c++/44127
26706         * gimplify.c (gimplify_seq_add_stmt): No longer static.
26707         * gimple.h: Declare it.
26708         * gimple.c (gimple_build_eh_filter): No ops.
26709
26710 2010-05-14  Jan Hubicka  <jh@suse.cz>
26711
26712         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
26713         nodes already in queue.
26714         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
26715         re-enqueueing node.
26716
26717 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26718
26719         PR debug/44136
26720         * cfgexpand.c (expand_debug_expr): If non-memory op0
26721         has BLKmode, return NULL.
26722
26723 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
26724
26725         * config.gcc: Add support for --with-cpu option for bdver1.
26726         * config/i386/i386.h (TARGET_BDVER1): New macro.
26727         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
26728         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26729         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
26730         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26731         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
26732         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
26733         (processor_type): Add PROCESSOR_BDVER1.
26734         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
26735         processor_type in config/i386/i386.h.
26736         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
26737         movaps <reg, reg> instead of movapd <reg, reg> when replacing
26738         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
26739         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
26740         to emit packed xor instead of packed double/packed integer
26741         xor for SSE and AVX when moving a zero value.
26742         * config/i386/sse.md: Add check for
26743         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
26744         movapd/movdqa for SSE and AVX.
26745         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
26746         single logical operations i.e and, or and xor instead of packed double
26747         logical operations for SSE and AVX.
26748         * config/i386/i386-c.c (ix86_target_macros_internal):
26749         Add PROCESSOR_BDVER1.
26750         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
26751         (has_fma4, has_xop): New.
26752         * config/i386/i386.c (bdver1_cost): New variable.
26753         (m_BDVER1): New macro.
26754         (m_AMD_MULTIPLE): Add m_BDVER1.
26755         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
26756         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
26757         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
26758         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
26759         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
26760         x86_tune_sse_partial_reg_dependency,
26761         x86_tune_sse_unaligned_load_optimal,
26762         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
26763         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
26764         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
26765         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
26766         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
26767         Enable/disable for bdver1.
26768         (processor_target_table): Add bdver1_cost.
26769         (cpu_names): Add bdver1.
26770         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
26771          processor_alias_table.
26772         (ix86_expand_vector_move_misalign): Change.
26773         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
26774         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
26775         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
26776         of movupd/movdqu for SSE and AVX.
26777         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
26778         (ix86_tune_adjust_cost): Add code for bdver1.
26779         (standard_sse_constant_opcode): Add check for
26780         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
26781         of packed double xor for SSE and AVX.
26782
26783 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
26784
26785         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
26786         result to unsigned.
26787
26788 2010-05-14  Tristan Gingold  <gingold@adacore.com>
26789
26790         * toplev.c (default_debug_hooks): Remove this variable.
26791         (process_options): Remove assignments to default_debug_hooks.
26792
26793 2010-05-14  Martin Jambor  <mjambor@suse.cz>
26794
26795         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
26796         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
26797         * langhooks.h (struct lang_hooks_for_decls): Removed field
26798         fold_obj_type_ref.
26799         * tree.c (free_lang_data): Remove assignment to
26800         lang_hooks.fold_obj_type_ref.
26801         * tree.def (OBJ_TYPE_REF): Update comment.
26802
26803 2010-05-14  Richard Guenther  <rguenther@suse.de>
26804
26805         PR tree-optimization/44124
26806         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
26807
26808 2010-05-14  Alan Modra  <amodra@gmail.com>
26809
26810         PR target/44075
26811         * config/rs6000/rs6000.c (struct machine_function): Reorder
26812         fields for better packing.  Add lr_save_state.
26813         (rs6000_ra_ever_killed): Return lr_save_state if set.
26814         (rs6000_emit_eh_reg_restore): Set lr_save_state.
26815
26816 2010-05-13  Jan Hubicka  <jh@suse.cz>
26817
26818         * varpool.c (decide_is_variable_needed): Drop code checking
26819         TREE_SYMBOL_REFERENCED.
26820
26821 2010-05-13  Jan Hubicka  <jh@suse.cz>
26822
26823         * final.c (output_addr_const): Do not call mark_decl_referenced.
26824         * cgraphunit.c (process_function_and_variable_attributes): Use
26825         mark_needed_node dirrectly.
26826         (assemble_thunk): Do not call mark_decl_referenced.
26827
26828 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
26829
26830         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
26831
26832 2010-05-13  Jeff Law  <law@redhat.com>
26833
26834         * ira-conflicts.c (print_allocno_conflicts): New function broken out
26835         from...
26836         (print_conflicts): Call print_allocno_conflicts.
26837
26838 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26839
26840         PR debug/44104
26841         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
26842         if it is NULL.
26843
26844 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
26845
26846         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
26847         t-mingw-w64 or t-mingw-w32 for multilib configuration.
26848         * config/i386/t-mingw-w32: New.
26849         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
26850
26851 2010-05-13  Martin Jambor  <mjambor@suse.cz>
26852
26853         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
26854         gimple-fold.c).
26855         * gimple-fold.c (get_base_binfo_for_type): New function.
26856         (gimple_get_relevant_ref_binfo): Likewise.
26857         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26858         (gimple_fold_obj_type_ref): Likewise.
26859         (fold_gimple_call): Simplify condition for folding virtual calls
26860         and call gimple_fold_obj_type_ref.
26861         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
26862         (gimple_fold_obj_type_ref_known_binfo): Likewise.
26863
26864 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
26865
26866         * config/rs6000/rs6000-protos.h
26867         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
26868         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
26869         (rs6000_debug_mode_dependent_address)
26870         (rs6000_mode_dependent_address_ptr): Likewise.
26871
26872 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26873
26874         PR debug/43983
26875         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
26876         by SRA.
26877         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
26878         * tree-sra.c (create_access_replacement): Call unshare_expr before
26879         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
26880         * dwarf2out.c: Include tree-flow.h.
26881         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
26882         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
26883         Handle DW_OP_bit_piece.
26884         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
26885         construct_piece_list, adjust_piece_list): New functions.
26886         (add_var_loc_to_decl): Handle SRA optimized variables.
26887         Adjust for var_loc_note to loc field renaming.
26888         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
26889         in VAR_LOCATION note.
26890         (new_loc_descr_op_bit_piece): New function.
26891         (dw_sra_loc_expr): New function.
26892         (dw_loc_list): Use it.  Don't handle the last range after the
26893         loop, handle it inside of the loop.  Adjust for var_loc_note
26894         to loc field renaming.
26895         (add_location_or_const_value_attribute): Only special case
26896         single entry loc lists if loc is NOTE_P.  Adjust for
26897         var_loc_note to loc field renaming.
26898         (dwarf2out_var_location): Don't set newloc->var_loc_note
26899         and newloc->next here.
26900
26901 2010-05-12  Jan Hubicka  <jh@suse.cz>
26902
26903         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
26904         flag.
26905         * cgraph.h (cgraph_only_called_directly_p,
26906         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
26907         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
26908         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
26909         (assemble
26910         * ipa.c (cgraph_remove_unreachable_nodes): Use
26911         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
26912         flags.
26913         * tree-inline.c (copy_bb): Check address_taken flag.
26914         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
26915         externally_visible flag.
26916
26917 2010-05-12  Jason Merrill  <jason@redhat.com>
26918
26919         PR bootstrap/44048
26920         PR target/44099
26921         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
26922         * sdbout.c (plain_type_1): Likewise.
26923         * dwarf2out.c (is_base_type): Likewise.
26924         (gen_type_die_with_usage): Likewise.  Generate
26925         DW_TAG_unspecified_type for any LANG_TYPE.
26926
26927 2010-05-12  Jan Hubicka  <jh@suse.cz>
26928
26929         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
26930         indrect edges too.
26931         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
26932         (cgraph_clone_edge): Update.
26933         (cgraph_node_remove_callees): Remove indirect calls too.
26934         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
26935         (cgraph_create_indirect_edge): Update prototype.
26936         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
26937         is_proper_for_analysis.
26938         (add_new_function, visited_nodes, function_insertion_hook_holder,
26939         get_local_reference_vars_info, mark_address_taken, mark_address,
26940         mark_load, mark_store, check_asm_memory_clobber, check_call,
26941         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
26942         (ipa_init): Do not initialize visited_nodes;
26943         function_insertion_hook_holder.
26944         (analyze_variable): Rewrite.
26945         (analyze_function): Rewrite.
26946         (copy_local_bitmap): Remove.
26947         (duplicate_node_dat): Do not duplicate local info.
26948         (generate_summary): Simplify to only walk cgraph.
26949         (write_node_summary_p, ipa_reference_write_summary,
26950         ipa_reference_read_summary): Remove.
26951         (propagate): Do not remove function insertion;
26952         generate summary.
26953         (pass_ipa_reference): NULLify summary handling fields.
26954         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
26955         (input_edge): Input ecf_flags.
26956         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
26957         (update_indirect_edges_after_inlining): Ignore edges with unknown
26958         param.
26959
26960 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
26961
26962         * implicit-zee.c: New file.
26963         * tree-pass.h (pass_implicit_zee): Declare.
26964         * passes.c (init_optimization_passes): Add zee pass.
26965         * common.opt (fzee): New flag.
26966         * timevar.def (TV_ZEE): Define.
26967         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
26968         and beyond.
26969         * Makefile.in (implicit-zee.o): Add new build file.
26970
26971 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26972             Nathan Froyd  <froydnj@codesourcery.com>
26973
26974         * c-common.c (sync_resolve_params): Remove write-only variable.
26975
26976 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
26977
26978         * target.h (struct gcc_target): Add mode_dependent_address_p field.
26979         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26980         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
26981         * targhooks.c (default_mode_dependent_address_p): New function.
26982         * targhooks.h (default_mode_dependent_address_p): Declare function.
26983         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
26984         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
26985         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
26986         target hook. Change return type to bool.
26987         * recog.h (mode_dependent_address_p): Change return type to bool.
26988
26989 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26990             Nathan Froyd  <froydnj@codesourcery.com>
26991
26992         * tree-mudflap.c (build_function_type_0, build_function_type_1,
26993         build_function_type_2, build_function_type_3): Remove.
26994         (mudflap_init): Use build_function_type_list.
26995
26996 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
26997             Nathan Froyd  <froydnj@codesourcery.com>
26998
26999         * coverage.c (build_fn_info_value): Call build_constructor instead of
27000         build_constructor_from_list.
27001         (build_ctr_info_value): Likewise.
27002         (build_gcov_info): Likewise.
27003
27004 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
27005
27006         * tree.c (build_constructor): Compute TREE_CONSTANT for the
27007         resultant constructor.
27008         (build_constructor_single): Don't set TREE_CONSTANT.
27009         (build_constructor_from_list): Don't compute TREE_CONSTANT.
27010
27011 2010-05-12  Jan Hubicka  <jh@suse.cz>
27012
27013         * cgraph.h (struct varpool_node): Add aux.
27014         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
27015         * varpool.c (varpool_remove_node): Do not remove initializer.
27016         (varpool_reset_queue): Export.
27017         (varpool_finalize_decl): Volatile vars are forced to be output.
27018         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
27019         replaced decl.
27020         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
27021         process_references, varpool_can_remove_if_no_refs): New functions.
27022         (cgraph_remove_unreachable_nodes): Handle variables too.
27023
27024 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
27025
27026         PR target/44088
27027         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
27028
27029 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
27030
27031         PR middle-end/44085
27032         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
27033         change value of ORT_TASK.
27034         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
27035         (omp_notice_threadprivate_variable): New function.
27036         (omp_notice_variable): Call it for threadprivate variables.
27037         If enclosing ctx is a task, print enclosing task rather than
27038         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
27039         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
27040         if task has untied clause.
27041
27042         PR debug/42278
27043         * dwarf2out.c (base_type_die): Don't add name attribute here.
27044         (modified_type_die): Instead of sizetype use
27045         its underlying original type.  If a DW_TAG_base_type doesn't
27046         have name added, add __unknown__.
27047         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
27048         always call force_type_die instead.
27049
27050 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
27051
27052         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
27053         for __stack_chk_guard.
27054
27055 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27056
27057         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
27058         don't call start_source_file debug hook here...
27059         (finish_options): ... but here, after outputting predefined and
27060         command line defines and undefs.
27061
27062         PR middle-end/44071
27063         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
27064         no fallthru edge.
27065         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
27066         optimizing away empty bb with no successors, move over its
27067         footer chain to fallthru predecessor.
27068         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
27069         (rtl_split_edge): For asm goto call patch_jump_insn even if
27070         splitting fallthru edge.
27071
27072         PR c++/44059
27073         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
27074         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
27075         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
27076         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
27077         on DW.ref.* decls.
27078
27079         PR c++/44062
27080         * c-parser.c (c_parser_expression): Mark LHS of a comma
27081         expression as read if it is a decl, handled component or
27082         COMPOUND_EXPR with that on the RHS.
27083         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
27084         if it is a decl or handled component.
27085
27086 2010-05-11  Jan Hubicka  <jh@suse.cz>
27087
27088         * lto-symtab.c (lto_symtab_free): New function.
27089         * lto-streamer.h (lto_symtab_free): Declare.
27090
27091 2010-05-11  Jan Hubicka  <jh@suse.cz>
27092
27093         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
27094         that if function is needed it is reachable.
27095         (lto_output_node): See if it the function is reachable or referenced.
27096         (output_cgraph): Update call of lto_output_node.
27097         * lto-streamer.h (reachable_from_other_partition_p): Declare.
27098
27099 2010-05-11  Jan Hubicka  <jh@suse.cz>
27100
27101         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
27102         Mark as used.
27103
27104 2010-05-11  Jan Hubicka  <jh@suse.cz>
27105
27106         PR tree-optimize/44063
27107         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
27108         queue.
27109         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
27110         limits.
27111         (estimate_function_body_sizes): Compute sizes even when disregarding.
27112
27113 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
27114
27115         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
27116
27117 2010-05-11  Jan Hubicka  <jh@suse.cz>
27118
27119         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
27120         into every boundary.
27121
27122 2010-05-11  Jan Hubicka  <jh@suse.cz>
27123
27124         * matrix-reorg.c (matrix_reorg): Rebuild edges.
27125
27126 2010-05-11  Jan Hubicka  <jh@suse.cz>
27127
27128         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
27129         lto_streamer_cache_delete): Put nodes into heap.
27130         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
27131         heap.
27132
27133 2010-05-11  Jan Hubicka  <jh@suse.cz>
27134
27135         * cgraphbuild.c (cgraph_rebuild_references): New.
27136         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
27137         out extern inlines.
27138         * cgraph.h (cgraph_rebuild_references): Declare.
27139         * tree-inline.c (tree_function_versioning): Use it.
27140         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
27141
27142 2010-05-11  Jan Hubicka  <jh@suse.cz>
27143
27144         * cgraph.c: Include ipa-utils.h
27145         (cgraph_create_virtual_clone): Update references.
27146         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
27147
27148 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
27149
27150         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
27151         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
27152         cache size.
27153
27154 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
27155
27156         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
27157
27158 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27159
27160         * gcc.c (execute): For -### don't quote arguments that
27161         contain just alphanumerics and _/-. characters.
27162         * doc/invoke.texi: Document that change for -###.
27163
27164         PR debug/44023
27165         * df-problems.c (struct dead_debug): Add to_rescan field.
27166         (dead_debug_init): Clear to_rescan field.
27167         (dead_debug_finish): Rescan all debug insns in to_rescan
27168         bitmap and free the bitmap.
27169         (dead_debug_insert_before): Instead of rescanning debug insns
27170         immediately queue their rescanning until dead_debug_finish.
27171         (df_note_bb_compute): After dead_debug_add do continue instead
27172         of break.
27173
27174 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
27175
27176         PR debug/44028
27177         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
27178         clear also INSN_REG_USE_LIST.
27179
27180 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27181
27182         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
27183
27184 2010-05-10  Jan Hubicka  <jh@suse.cz>
27185
27186         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
27187         commited change.
27188
27189 2010-05-10  Jan Hubicka  <jh@suse.cz>
27190
27191         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
27192         Allocate encoders.
27193         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
27194         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
27195         (lto_streamer_cache_create): Init alloc pool.
27196         (lto_streamer_cache_delete): Free alloc pool.
27197         * lto-streamer.h: Include alloc pool.
27198         (lto_streamer_cache_d): Use alloc pool.
27199         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
27200
27201 2010-05-10  Jan Hubicka  <jh@suse.cz>
27202
27203         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
27204         * cgraphbuild.c: Include except.h
27205         (record_type_list, record_eh_tables): New function.
27206         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
27207
27208 2010-05-10  Jan Hubicka  <jh@suse.cz>
27209
27210         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
27211         __frame_dummy_init_array_entry, force_to_data): Attribute as used
27212         rather than unused.
27213
27214 2010-05-10  Michael Matz  <matz@suse.de>
27215
27216         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
27217         (can_reassociate_p): Use FLOAT_TYPE_P.
27218         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
27219         (vect_force_simple_reduction): ... this.
27220         * tree-parloops.c (gather_scalar_reductions): Use
27221         vect_force_simple_reduction.
27222         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
27223         vect_is_simple_reduction, add modify argument, if true rewrite
27224         "a-b" into "a+(-b)".
27225         (vect_is_simple_reduction, vect_force_simple_reduction): New
27226         functions.
27227         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
27228
27229 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
27230             Vladimir Makarov  <vmakarov@redhat.com>
27231
27232         PR rtl-optimization/44012
27233         * ira-build.c (remove_unnecessary_allocnos): Nullify
27234         regno_allocno_map of the removed allocno.
27235
27236 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27237
27238         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
27239         to /dev/null.
27240         * configure: Regenerate.
27241
27242 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27243
27244         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
27245         unused.
27246         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
27247         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
27248         support in Sun ld.
27249         * configure: Regenerate.
27250
27251 2010-05-10  Richard Guenther  <rguenther@suse.de>
27252
27253         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
27254         marked if the entry identifier is marked.
27255
27256 2010-05-10  Richard Guenther  <rguenther@suse.de>
27257
27258         * c-common.c (struct c_common_attributes): Add fnspec attribute.
27259         (handle_fnspec_attribute): New function.
27260         * gimple.h (gimple_call_return_flags): Declare.
27261         (gimple_call_arg_flags): Likewise.
27262         * gimple.c (gimple_call_arg_flags): New function.
27263         (gimple_call_return_flags): Likewise.
27264         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
27265         New argument flags.
27266         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
27267         return value flags.
27268         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
27269         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
27270         main work to ...
27271         (make_heapvar_for): ... this new function.
27272         (handle_rhs_call): Handle fnspec attribute argument specifiers.
27273         (handle_lhs_call): Likewise.
27274         (find_func_aliases): Adjust.
27275
27276 2010-05-10  Richard Guenther  <rguenther@suse.de>
27277
27278         PR tree-optimization/44050
27279         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
27280
27281 2010-05-10  Wei Guozhi  <carrot@google.com>
27282
27283         PR target/42879
27284         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
27285
27286 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27287
27288         PR c/10676
27289         * c-typeck.c (lookup_field): Take a type directly.  Update
27290         recursive calls.
27291         (build_component_ref): Update call to lookup_field.
27292         (set_init_label): Use lookup_field to find initialized field.
27293         Handle returned list of fields like a sequence of designators.
27294
27295 2010-05-09  Richard Guenther  <rguenther@suse.de>
27296
27297         PR middle-end/44024
27298         * fold-const.c (tree_single_nonzero_warnv_p): Properly
27299         handle &FUNCTION_DECL.
27300
27301 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27302
27303         PR c/4784
27304         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
27305         structures and unions recursively.
27306         (detect_field_duplicates): Move duplicate detection with a hash to
27307         detect_field_duplicates_hash.  Always use a hash if anonymous
27308         structures or unions are present.
27309         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
27310         give errors.
27311
27312 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
27313
27314         PR target/44046
27315         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
27316         detect Atom, Core 2 and Core i7.
27317
27318 2010-05-09  Richard Guenther  <rguenther@suse.de>
27319
27320         * gcc.c (store_arg): Handle temporary file deletion for
27321         joined arguments.
27322
27323 2010-05-09  Richard Guenther  <rguenther@suse.de>
27324
27325         PR middle-end/44043
27326         * ipa-inline.c (estimate_function_body_sizes): Return after
27327         disregarding inline limits.
27328
27329 2010-05-09  Richard Guenther  <rguenther@suse.de>
27330
27331         * gcc.c (store_arg): Revert last change.
27332
27333 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
27334
27335         PR middle-end/28685
27336         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
27337         (optimize_ops_list): Call it.
27338
27339 2010-05-08  Richard Guenther  <rguenther@suse.de>
27340
27341         PR tree-optimization/44030
27342         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
27343         NECESSARY flag if we propagate from a inserted expression.
27344
27345 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
27346
27347         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
27348         domain types as equal if they are both PLACEHOLDER_EXPRs.
27349
27350 2010-05-08  Richard Guenther  <rguenther@suse.de>
27351
27352         * lto-wrapper.c (run_gcc): Remove linker output from
27353         command line for LTRANS invocation.
27354
27355 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27356
27357         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
27358         lto-macho as lto_binary_reader.
27359         * target.h (struct gcc_target): New hooks lto_start and lto_end.
27360         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
27361         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
27362         in lto_start and lto_end calls.
27363         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
27364         magic numbers.
27365         (scan_prog_file): Update is_elf_or_coff call.
27366         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
27367
27368         * collect2.c (main): Fix enum comparison.
27369
27370         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
27371         Add prototypes.
27372         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
27373         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
27374         and TARGET_ASM_LTO_END.
27375         * darwin.c: Include obstack.h and lto-streamer.h.
27376         (lto_section_names_offset, lto_section_names_obstack,
27377         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
27378         global variables.
27379         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
27380         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
27381         to a temporary file.
27382         (darwin_asm_lto_end): New function.  Restore asm_out_file.
27383         (darwin_asm_named_section): For LTO sections, replace the name with
27384         the offset of the section name in a string table, and build this
27385         table.
27386         (darwin_file_start): Initialize global vars for LTO support.
27387         (darwin_file_end): If output to asm_out_file was redirected, append it
27388         to the proper asm_out_file here.  Add the section names section.
27389
27390 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27391
27392         * c-pragma.c (pending_weak_d, pending_weak): New.
27393         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
27394         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
27395         handle_pragma_weak): Update the uses of pending_weaks.
27396
27397 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27398
27399         PR documentation/44016
27400         * doc/standards.texi (Standards): Link to unversioned
27401         cxx0x_status.html page.
27402
27403 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
27404
27405         PR target/43708
27406         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
27407         in addition to TREE_USED, to avoid "set but unused" warnings.
27408
27409 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27410
27411         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
27412         (is_loop_prefetching_profitable): Do not insert prefetches
27413         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
27414         times the prefetch ahead distance.
27415
27416 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27417
27418         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
27419         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
27420         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
27421         the unroll_factor.
27422
27423 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27424
27425         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
27426         a diagnostic info when the insn-to-mem ratio is too small.
27427
27428 2010-05-07  Richard Guenther  <rguenther@suse.de>
27429
27430         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
27431         the linker plugin.
27432         (store_arg): Queue temp_filename for deletion instead of
27433         the whole argument.
27434
27435 2010-05-07  Richard Guenther  <rguenther@suse.de>
27436
27437         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
27438         (run_gcc): Handle LTRANS phase invocation.
27439         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
27440
27441 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
27442
27443         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
27444         this is also meaningful on PARM_DECLs and RESULT_DECLs.
27445
27446 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27447
27448         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
27449
27450 2010-05-07  Richard Guenther  <rguenther@suse.de>
27451
27452         PR tree-optimization/44020
27453         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
27454         code when PRE is not yet initialized.
27455
27456 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27457
27458         * config/mips/dbxmdebug.h: Remove.
27459         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
27460
27461 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
27462
27463         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
27464         with null pointer and also warn about ordered comparison of zero with
27465         pointer if -Wextra.
27466
27467 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27468
27469         * graphite-blocking.c
27470         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
27471         * graphite-clast-to-gimple.c
27472         (clast_to_gcc_expression): Same.
27473         (precision_for_value): Same.
27474         (precision_for_interval): Same.
27475         (gcc_type_for_interval): Same.
27476         (graphite_create_new_guard): Same.
27477         (compute_bounds_for_level): Same.
27478         (graphite_create_new_loop_guard): Same.
27479         * graphite-interchange.c
27480         (build_linearized_memory_access): Same.
27481         (pdr_stride_in_loop): Same.
27482         (memory_strides_in_loop_1): Same.
27483         (memory_strides_in_loop): Same.
27484         (extend_scattering): Same.
27485         (psct_scattering_dim_for_loop_depth): Same.
27486         (pbb_number_of_iterations): Same.
27487         * graphite-poly.h
27488         (debug_iteration_domains): Same.
27489         * graphite-ppl.c
27490         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
27491         (ppl_set_inhomogeneous_gmp): Same.
27492         (ppl_strip_loop): Same.
27493         (ppl_lexico_compare_linear_expressions): Same.
27494         (ppl_read_polyhedron_matrix): Same.
27495         (ppl_max_for_le_pointset): Same.
27496         * graphite-ppl.h
27497         (ppl_read_polyhedron_matrix): Same.
27498         (tree_int_to_gmp): Same.
27499         (gmp_cst_to_tree): Same.
27500         (ppl_set_inhomogeneous): Same.
27501         (ppl_set_inhomogeneous_tree): Same.
27502         (ppl_set_coef): Same.
27503         (ppl_set_coef_tree): Same.
27504         * graphite-sese-to-poly.c
27505         (build_pbb_scattering_polyhedrons): Same.
27506         (build_scop_scattering): Same.
27507         (scan_tree_for_params_right_scev): Same.
27508         (scan_tree_for_params): Same.
27509         (find_params_in_bb): Same.
27510         (find_scop_parameters): Same.
27511         (add_upper_bounds_from_estimated_nit): Same.
27512         (build_loop_iteration_domains): Same.
27513         (add_condition_to_domain): Same.
27514         (pdr_add_memory_accesses): Same.
27515
27516 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27517
27518         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
27519         CLooG's value_* macros to their respective mpz_* counterparts.
27520         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
27521         (graphite_create_new_loop_guard): Same.
27522         * graphite-interchange.c (build_linearized_memory_access): Same.
27523         (pdr_stride_in_loop): Same.
27524         (memory_strides_in_loop_1): Same.
27525         (1st_interchange_profitable_p): Same.
27526         * graphite-poly.c (extend_scattering): Same.
27527         (psct_scattering_dim_for_loop_depth): Same.
27528         (pbb_number_of_iterations): Same.
27529         (pbb_number_of_iterations_at_time): Same.
27530         * graphite-poly.h (new_1st_loop): Same.
27531         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
27532         (oppose_constraint): Same.
27533         (insert_constraint_into_matrix): Same.
27534         (ppl_set_inhomogeneous_gmp): Same.
27535         (ppl_set_coef_gmp): Same.
27536         (ppl_strip_loop): Same.
27537         (ppl_lexico_compare_linear_expressions): Same.
27538         (ppl_max_for_le_pointset): Same.
27539         (ppl_min_for_le_pointset): Same.
27540         (ppl_build_realtion): Same.
27541         * graphite-ppl.h (gmp_cst_to_tree): Same.
27542         (ppl_set_inhomogeneous): Same.
27543         (ppl_set_inhomogeneous_tree): Same.
27544         (ppl_set_coef): Same.
27545         (ppl_set_coef_tree): Same.
27546         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
27547         (build_scop_scattering): Same.
27548         (add_value_to_dim): Same.
27549         (scan_tree_for_params_right_scev): Same.
27550         (scan_tree_for_params_int): Same.
27551         (scan_tree_for_params): Same.
27552         (find_params_in_bb): Same.
27553         (find_scop_parameters): Same.
27554         (add_upper_bounds_from_estimated_nit): Same.
27555         (build_loop_iteration_domains): Same.
27556         (create_linear_expr_from_tree): Same.
27557         (add_condition_to_domain): Same.
27558         (pdr_add_memory_accesses): Same.
27559
27560 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
27561             Jason Merrill  <jason@redhat.com>
27562
27563         * c-common.c (c_common_reswords): Add nullptr.
27564         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
27565         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
27566         (gen_type_die_with_usage): Likewise.
27567         * dbxout.c (dbxout_type): Likewise.
27568         * sdbout.c (plain_type_1): Likewise.
27569
27570 2010-05-06  Jason Merrill  <jason@redhat.com>
27571
27572         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
27573         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
27574         ret appropriately.
27575         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
27576
27577         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
27578         stripping WITH_SIZE_EXPR.
27579         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
27580         change.
27581
27582 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27583
27584         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
27585         list of obsolete configurations.
27586         Disabled check for obsolete configurations.
27587         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
27588         Removed support for previous versions.
27589         * config/mips/iris.h: Removed.
27590         * config/mips/iris5.h: Removed.
27591         * config/mips/iris6.h: Merged old iris.h contents.
27592         (TARGET_IRIX): Removed.
27593         (DRIVER_SELF_SPECS): Removed mabi=32.
27594         (IDENT_ASM_OP): Removed undef.
27595         (STARTFILE_SPEC): Removed mabi=32.
27596         (ENDFILE_SPEC): Likewise.
27597         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
27598         (MACHINE_TYPE): Update for IRIX 6.5.
27599         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
27600         TARGET_IRIX by TARGET_IRIX6.
27601         (mips_file_start): Likewise.
27602         (mips_output_external): Remove IRIX 5/6 O32 support.
27603         (mips_output_function_prologue): Likewise.
27604         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
27605         TARGET_IRIX6.
27606         (TARGET_CPU_CPP_BUILTINS): Likewise.
27607         (TARGET_IRIX): Removed.
27608         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
27609         (MULTILIB_DIRNAMES): Removed 32.
27610         (MULTILIB_OSDIRNAMES): Removed ../lib.
27611         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
27612         (Specific, mips-sgi-irix5): Document removal.
27613         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
27614         Remove references to older IRIX 6 releases and the O32 ABI.
27615
27616 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
27617
27618         PR bootstrap/43994
27619         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
27620         instead of DF_REF_REAL_REG.
27621
27622 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
27623
27624         PR target/43888
27625         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
27626         handling to still return true for x64 targets.
27627
27628 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27629
27630         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
27631
27632 2010-05-06  Jan Hubicka  <jh@suse.cz>
27633
27634         PR tree-optimization/43791
27635         * ipa-inline.c (update_caller_keys): Remove bogus
27636         disregard_inline_limits check.
27637
27638 2010-05-06  Michael Matz  <matz@suse.de>
27639
27640         PR tree-optimization/43984
27641         * tree-ssa-pre.c (inserted_phi_names): Remove.
27642         (inserted_exprs): Change to bitmap.
27643         (create_expression_by_pieces): Set bits, don't append to vector.
27644         (insert_into_preds_of_block): Don't handle inserted_phi_names.
27645         (eliminate): Don't look at inserted_phi_names, remove deleted
27646         insns from inserted_exprs.
27647         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
27648         (init_pre, fini_pre): Allocate and free bitmaps.
27649         (execute_pre): Insert insns on edges before elimination.
27650
27651 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27652
27653         * tree.c (initializer_zerop): Handle STRING_CST.
27654
27655 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27656
27657         PR 40989
27658         * doc/invoke.texi (Wimplicit): Document as C only.
27659         * opts.c (common_handle_option): Add argument kind.
27660         (handle_option): Rename as read_cmdline_option. Factor out code to...
27661         (handle_option): ... here. New.
27662         (handle_options): Rename as read_cmdline_options.
27663         (decode_options): Update call.
27664         (set_option): Use option index instead of option pointer. Classify
27665         diagnostics correctly.
27666         (enable_warning_as_error): Call handle_option.
27667         * opts.h (set_option): Update declaration.
27668         (handle_option): Declare.
27669         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
27670         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
27671         * c-opts.c (set_Wimplicit): Delete.
27672         (c_family_lang_mask): New static constant.
27673         (c_common_handle_option): Add argument kind. Use handle_option
27674         instead of set_Wimplicit.
27675         (c_common_post_options): warn_implicit and warn_implicit_int
27676         are disabled by default.
27677         * c-common.c (warn_implicit): Do not define here.
27678         * c-common.h (warn_implicit): Do not declare here.
27679         (c_common_handle_option): Update declaration.
27680         * lto-opts.c (lto_reissue_options): Update call to set_option.
27681
27682 2010-05-06  Richard Guenther  <rguenther@suse.de>
27683
27684         PR tree-optimization/43571
27685         * domwalk.c (walk_dominator_tree): Walk the dominator
27686         sons in more optimal order.
27687
27688 2010-05-06  Richard Guenther  <rguenther@suse.de>
27689
27690         PR tree-optimization/43934
27691         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
27692         (stmt_cost): Likewise.
27693         (extract_true_false_args_from_phi): New helper.
27694         (determine_max_movement): For PHI nodes verify we can hoist them
27695         and compute their cost.
27696         (determine_invariantness_stmt): Handle PHI nodes.
27697         (move_computations_stmt): Likewise.  Hoist PHI nodes in
27698         if-converted form using COND_EXPRs.
27699         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
27700         (tree_ssa_lim): Likewise.
27701         * tree-flow.h (tree_ssa_lim): Adjust prototype.
27702         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
27703
27704 2010-05-06  Richard Guenther  <rguenther@suse.de>
27705
27706         PR tree-optimization/43987
27707         * tree-ssa-structalias.c (could_have_pointers): For possibly
27708         address-taken variables force pointers to be recorded.
27709         (create_variable_info_for_1): Likewise.
27710         (push_fields_onto_fieldstack): Pass in wheter all fields
27711         must have pointers.
27712         (find_func_aliases): Query types instead of vars whether
27713         they contain pointers where appropriate.
27714
27715 2010-05-06  Jan Hubicka  <jh@suse.cz>
27716
27717         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
27718         (record_reference, mark_address, mark_load, mark_store): Record
27719         references.
27720         (record_references_in_initializer): Update call of record_references.
27721         (rebuild_cgraph_edges): Remove all references before rebuiding.
27722         * cgraph.c (cgraph_create_node): Clear ref list.
27723         (cgraph_remove_node): Remove references.
27724         (dump_cgraph_node): Dump references.
27725         (cgraph_clone_node): Clone references.
27726         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
27727         (struct cgraph_node, varpool_node): Add ref_lst.
27728         * ipa-ref.c: New file.
27729         * ipa-ref.h: New file.
27730         * ipa-ref-inline.h: New file.
27731         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
27732         (referenced_from_other_partition_p): New function.
27733         (lto_output_varpool_node): Take set arugment; call
27734         referenced_from_other_partition.
27735         (lto_output_ref): New.
27736         (add_references): New.
27737         (output_refs): New.
27738         (output_cgraph): Compute boundary based on references; output refs.
27739         (output_varpool): Accept cgraph_node_set argument.
27740         (input_ref): New.
27741         (input_refs): New.
27742         (input_cgraph): Call input_refs.
27743         * lto-section-in.c (lto_section_name): Add refs.
27744         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
27745         (ipa-ref.o): New file.
27746         * varpool.c (varpool_node): Clear ipa ref list.
27747         (varpool_remove_node): Remove references.
27748         (dump_varpool_node): Dump references.
27749         (varpool_assemble_decl): Only compile finalized ones.
27750         (varpool_extra_name_alias): Initialize ref list.
27751         * lto-streamer.c (lto-get_section_name): Add .refs section.
27752         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
27753         (referenced_from_other_partition_p): Declared.
27754
27755 2010-05-06  Ira Rosen  <irar@il.ibm.com>
27756
27757         PR tree-optimization/43901
27758         * tree-vect-stmts.c (vectorizable_call): Assert that vector
27759         type is not NULL if it's transformation phase, and return
27760         FALSE if it's analysis.
27761         (vectorizable_conversion, vectorizable_operation,
27762         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
27763
27764 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
27765
27766         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27767         Delete.
27768         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27769         New define.
27770         * config/mips/mips-protos.h
27771         (mips_small_register_classes_for_mode_p): Delete prototype.
27772
27773 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
27774
27775         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
27776         * config/arm/arm.c (multiple_operation_profitable_p,
27777         compute_offset_order): New static functions.
27778         (load_multiple_sequence, store_multiple_sequence): Use them.
27779         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
27780         memory offsets, not register numbers.
27781         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
27782
27783 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
27784
27785         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
27786         (get_pending_sizes, put_pending_size, put_pending_sizes):
27787         Update the uses of pending_sizes.
27788         * c-decl.c (store_parm_decls): Likewise.
27789         * c-tree.h (struct c_arg_info): Likewise.
27790         * tree.h: Update the prototype for get_pending_sizes and
27791         put_pending_sizes.
27792
27793 2010-05-05  Jason Merrill  <jason@redhat.com>
27794
27795         PR debug/43370
27796         * c-common.c (handle_aligned_attribute): Respect
27797         ATTR_FLAG_TYPE_IN_PLACE.
27798
27799         PR testsuite/43758
27800         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
27801         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27802         (TARGET_INITIALIZER): Use it.
27803         * c-common.c (attribute_takes_identifier_p): Call it.
27804         * c-common.h: Update prototype.
27805         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
27806         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27807
27808 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27809
27810         PR debug/43950
27811         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
27812         DW_ID_down_case for Fortran compilation units.
27813
27814 2010-05-05  Jan Hubicka  <jh@suse.cz>
27815
27816         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
27817         handle aliases.
27818
27819 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
27820
27821         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
27822         a variable-sized RESULT_DECL.
27823
27824 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
27825
27826         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
27827
27828 2010-05-05  Jason Merrill  <jason@redhat.com>
27829
27830         PR c++/43787
27831         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
27832         returns GS_OK.
27833         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
27834
27835 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
27836             Jakub Jelinek  <jakub@redhat.com>
27837
27838         PR debug/43478
27839         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
27840         (dead_debug_init, dead_debug_finish): New functions.
27841         (dead_debug_add, dead_debug_insert_before): Likewise.
27842         (df_note_bb_compute): Initialize a dead_debug object, add dead
27843         debug uses to it, insert debug bind insns before death insns,
27844         reset debug insns that refer to pending uses at the end.
27845         * rtl.h (make_debug_expr_from_rtl): New prototype.
27846         * varasm.c (make_debug_expr_from_rtl): New function.
27847
27848 2010-05-05  Jan Hubicka  <jh@suse.cz>
27849
27850         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
27851         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
27852         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
27853         lto_varpool_encoder_deref, lto_varpool_encoder_size,
27854         lto_varpool_encoder_encode_initializer_p,
27855         lto_set_varpool_encoder_encode_initializer): New functions.
27856         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
27857         call output_varpool.
27858         (input_varpool_node): Do not always set analyzed.
27859         (input_cgraph_1): Return vector of cgraph nodes.
27860         (input_varpool_1): Return vector of varpools.
27861         (input_cgraph): Free the vectors.
27862         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
27863         output only initializers needed.
27864         (lto_output): Only call output_cgraph.
27865         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
27866         * lto-section-out.c (lto_new_out_decl_state): Initialize
27867         state->varpool_node_encoder.
27868         * lto-streamer.h (lto_varpool_encoder_d): New.
27869         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
27870         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
27871         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
27872         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
27873         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
27874         Declare.
27875         (output_varpool, input_varpool): Remove declarations.
27876
27877 2010-05-05  Jan Hubicka  <jh@suse.cz>
27878
27879         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
27880         with body can prevail.
27881
27882 2010-05-05  Jan Hubicka  <jh@suse.cz>
27883
27884         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
27885         size.
27886
27887 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
27888
27889         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
27890
27891         * gengtype.h (erro_at_line): Constify pos argument.
27892
27893         * gengtype.c: Include hashtab.h.
27894         (enum gc_used): Document GC_MAYBE_POINTED_TO.
27895         (error_at_line): Constify pos argument.
27896         (do_typedef): Initialize p->opt field.
27897         (get_file_gtfilename): Fix comment typo.
27898         (struct walk_type_data): Constify line field.
27899         (get_output_file_for_structure): New function.
27900         (write_local_func_for_structure): Constify orig_s argument.
27901         Use get_output_file_for_structure.
27902         (write_func_for_structure): Use get_output_file_for_structure.
27903         (INDENT): New define.
27904         (dump_pair, dump_type, dump_type_list, dump_typekind)
27905         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
27906         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
27907         functions.
27908         (seen_types): New variable.
27909         (main): New variable do_dump.  Process "-d" command line option.
27910         Call dump_everything if dump requested.
27911
27912 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27913
27914         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
27915         in a temporary instead of invoking the macro multiple times.
27916         (track_expr_p): Likewise.
27917
27918 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
27919
27920         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
27921         per new semantics.
27922         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
27923         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
27924         conditions for printing notes.
27925         * common.opt (-Wcoverage-mismatch): Allow negative, default to
27926         true, update documentation.
27927         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
27928
27929 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
27930
27931         PR c/43981
27932         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
27933         on dimen.
27934
27935 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27936
27937         PR target/43799
27938         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
27939         (*sse_prologue_save_insn1): Likewise.
27940         (SSE prologue save splitter): Likewise.
27941
27942 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
27943
27944         * tree.c (free_lang_data_in_one_sizepos): New inline function.
27945         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
27946         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
27947         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
27948         all decls.  Call it on DECL_FIELD_OFFSET of fields.
27949         (find_decls_types_r): Follow DECL_VALUE_EXPR.
27950         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
27951
27952 2010-05-04  Martin Jambor  <mjambor@suse.cz>
27953
27954         * tree-sra.c (build_access_from_expr_1): The first parameter type
27955         changed to simple tree.
27956         (build_access_from_expr): Likewise, gsi parameter was eliminated.
27957         (scan_assign_result): Renamed to assignment_mod_result, enum elements
27958         renamed as well.
27959         (build_accesses_from_assign): Removed all parameters except for a
27960         simple gimple statement.  Now returns a simple bool.
27961         (scan_function): All non-analysis parts moved to separate functions
27962         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
27963         parameters and updated both callers.
27964         (sra_modify_expr): Removed parameter data.
27965         (sra_modify_function_body): New function.
27966         (perform_intra_sra): Call sra_modify_function_body to modify the
27967         function body.
27968         (replace_removed_params_ssa_names): Parameter data changed into
27969         adjustments vector.
27970         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
27971         changed the parameter dont_convert to convert with the opposite
27972         meaning.
27973         (sra_ipa_modify_assign): Parameter data changed into adjustments
27974         vector, return value changed to bool.
27975         (ipa_sra_modify_function_body): New function.
27976         (sra_ipa_reset_debug_stmts): Updated a comment.
27977         (modify_function): Use ipa_sra_modify_function_body to modify function
27978         body.
27979
27980 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
27981
27982         PR middle-end/43671
27983         * alias.c (true_dependence): Handle the same VALUE in x and mem.
27984         (canon_true_dependence): Likewise.
27985         (write_dependence_p): Likewise.
27986
27987 2010-05-04  Jan Hubicka  <jh@suse.cz>
27988
27989         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
27990         * cgraphbuild.c: Include ipa-utils.h
27991         (record_reference_ctx): New struct.
27992         (record_reference): Simplify to work on initializers; not statements.
27993         (mark_address, mark_load, mark_store): New.
27994         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27995         walk PHI nodes too.
27996         (record_references_in_initializer): Update use of record_reference.
27997         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
27998         walk PHI nodes too.
27999
28000 2010-05-04  Jan Hubicka  <jh@suse.cz>
28001
28002         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
28003         node will be removed anyway.
28004         (lto_varpool_replace_node): Allow also unanalyzed nodes;
28005         relink aliases of node into prevailing node.
28006         * varpool.c (varpool_remove_node): Remove aliases properly;
28007         when removing node, remove all its aliases too; remove DECL_INITIAL
28008         of removed node; ggc_free the varpool node.
28009
28010 2010-05-04  Richard Guenther  <rguenther@suse.de>
28011
28012         PR tree-optimization/43879
28013         * tree-ssa-structalias.c (alias_get_name): Use
28014         DECL_ASSEMBLER_NAME if available.
28015         (create_function_info_for): Return the varinfo node.
28016         (ipa_pta_execute): Associate same-body aliases and extra names
28017         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
28018
28019 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
28020
28021         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
28022
28023 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
28024
28025         PR bootstrap/43964
28026         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
28027         only if HONOR_REG_ALLOC_ORDER is not defined.
28028
28029 2010-05-04  Richard Guenther  <rguenther@suse.de>
28030
28031         PR tree-optimization/43949
28032         * tree-vrp.c (extract_range_from_binary_expr): Only handle
28033         TRUNC_MOD_EXPR.
28034
28035 2010-04-26  Jason Merrill  <jason@redhat.com>
28036
28037         * c.opt (-fstrict-enums): New.
28038         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
28039
28040 2010-05-03  David Ung  <davidu@mips.com>
28041             James E. Wilson  <wilson@codesourcery.com>
28042
28043         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
28044         emit the trap instruction before the divide for TUNE_74K.
28045
28046 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
28047
28048         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
28049         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
28050         based on the above, for new target hook.
28051
28052         * hooks.c (hook_bool_mode_true): New generic hook.
28053         * hooks.h (hook_bool_mode_true): Add prototype.
28054
28055         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
28056         target hook.
28057         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
28058         target hook, set to hook_bool_mode_false.
28059         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
28060         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
28061         with targetm.small_register_classes_for_mode_p.
28062         (find_reusable_reload): Likewise.
28063         (combine_reloads): Likewise.
28064         * reload1.c (reload_as_needed): Likewise.
28065         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
28066         * ifcvt.c (noce_process_if_block, check_cond_move_block,
28067         dead_or_predicable): Likewise.
28068         * regmove.c (optimize_reg_copy_1): Likewise.
28069         * calls.c (prepare_call_address): Likewise.
28070         (precompute_register_parameters): Likewise.
28071
28072         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
28073         hook definition.
28074         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
28075         implementation of the hook that considers all register classes
28076         small except for SH64.
28077         (sh_override_options): Use the new hook.
28078         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
28079         Add prototype.
28080
28081         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
28082         hook definition.
28083         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
28084         implementation of the hook that considers all register classes
28085         small for THUMB1.
28086         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
28087         Add prototype.
28088
28089         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
28090         hook definition.
28091         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
28092         implementation of the hook that considers all register classes
28093         small for MIPS16.
28094         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
28095         Add prototype.
28096
28097         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
28098         hook definition.
28099         * config/m32c/m32c.h: Likewise.
28100         * config/pdp11/pdp11.h: Likewise.
28101         * config/avr/avr.h: Likewise.
28102         * config/xtensa/xtensa.h: Likewise.
28103         * config/m68hc11/m68hc11.h: Likewise.
28104         * config/mn10300/mn10300.h: Likewise.
28105         * config/mcore/mcore.h: Likewise.
28106         * config/h8300/h8300.h: Likewise.
28107         * config/bfin/bfin.h: Likewise.
28108
28109         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
28110         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
28111
28112 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
28113
28114         * double-int.h (tree_to_double_int): Remove macro.
28115         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
28116         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
28117         (tree_to_double_int): New function.
28118         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
28119         Move ...
28120         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
28121
28122 2010-05-03  Richard Guenther  <rguenther@suse.de>
28123
28124         PR tree-optimization/43971
28125         * tree-ssa-structalias.c (get_constraint_for_1): Fix
28126         constraints in the !flag_delete_null_pointer_checks case.
28127
28128 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
28129
28130         PR debug/43972
28131         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
28132         result mode matches original rtl mode.
28133
28134 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
28135
28136         PR target/43888
28137         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
28138
28139 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28140
28141         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
28142         when processing flag options.
28143
28144 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28145
28146         * gcov-iov.c (main): Change format string placeholder
28147         from %#08x to 0x%08x.
28148         * genchecksum.c (dosum): Change format string placeholder
28149         from %#02x to 0x%02x.
28150
28151 2010-05-02  Richard Guenther  <rguenther@suse.de>
28152
28153         PR tree-optimization/43879
28154         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
28155
28156 2010-05-02  Bruno Haible  <bruno@clisp.org>
28157
28158         * doc/extend.texi (Function Attributes): Fix a typo.
28159
28160 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28161
28162         Revert:
28163         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
28164         placeholder from 0x%x to %#x.
28165         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
28166         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
28167         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
28168         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
28169         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
28170         * config/i386/i386.c (ix86_target_string): Ditto.
28171         * config/i386/i386.c (output_pic_addr_const): Ditto.
28172         (print_operand): Ditto.
28173
28174 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28175
28176         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
28177         placeholder from 0x%x to %#x.
28178         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
28179         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
28180         (ASM_OUTPUT_DEBUG_DATA): Ditto.
28181         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
28182         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
28183         * optc-gen.awk: Ditto.
28184         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
28185         (HOST_WIDE_INT_PRINT_HEX): Ditto.
28186         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
28187         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
28188
28189 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
28190
28191         * target.h (struct calls): Add function_value_regno_p field.
28192         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
28193         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
28194         * targhooks.c (default_function_value_regno_p): New function.
28195         * targhooks.h (default_function_value_regno_p): Declare function.
28196         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
28197         * builtins.c. (apply_result_size): (Ditto.).
28198         * combine.c. (likely_spilled_retval_p): (Ditto.).
28199         * mode-switching.c. Include 'target.h'.
28200         (create_pre_exit): Use function_value_regno_p hook.
28201         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
28202         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
28203         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
28204
28205         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
28206         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
28207         (ix86_function_value_regno_p): Declare as static, change argument
28208         type to const unsigned int.
28209         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
28210
28211 2010-05-01  Richard Guenther  <rguenther@suse.de>
28212
28213         PR tree-optimization/43949
28214         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
28215         types.
28216         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
28217
28218 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
28219
28220         * rtl.h (CONST_DOUBLE_P): Define.
28221         (rtx_to_double_int): Declare.
28222         * emit-rtl.c (rtx_to_double_int): New function.
28223         * dwarf2out.c (insert_double): New function.
28224         (loc_descriptor, add_const_value_attribute): Clean up, use
28225         rtx_to_double_int and insert_double functions.
28226
28227 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
28228
28229         * doc/extend.texi (Inline): Add missing return keyword to examples.
28230         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
28231         "command-line".
28232
28233 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
28234
28235         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
28236         the variable part of the offset as well.  Use highest_pow2_factor for
28237         all alignment checks.
28238
28239 2010-04-30  Richard Guenther  <rguenther@suse.de>
28240
28241         PR tree-optimization/43879
28242         * tree-ssa-structalias.c (type_could_have_pointers): Functions
28243         can have pointers.
28244
28245 2010-04-30  Jan Hubicka  <jh@suse.cz>
28246
28247         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
28248         varpool.
28249         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
28250
28251 2010-04-30  Jan Hubicka  <jh@suse.cz>
28252
28253         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
28254         New.
28255         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
28256         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
28257         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
28258         cgraph_node_set_needs_ltrans_p): Remove.
28259
28260 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28261
28262         * sdbout.c: Include vec.h, do not include varray.h.
28263         (deferred_global_decls, sdbout_global_decl,
28264         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
28265         * toplev.c: Do not include varray.h.
28266         (dump_memory_report): Do not dump VARRAY statistics.
28267         * gengtype.c (open_base_file): Ignore varray.h.
28268         * Makefile.in: Update for abovementioned changes.
28269         Remove all traces of varray.c and varray.h.
28270         * varray.c: Remove file.
28271         * varray.h: Remove file.
28272
28273 2010-04-30  Jan Hubicka  <jh@suse.cz>
28274
28275         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
28276         references.
28277
28278 2010-04-30  Jan Hubicka  <jh@suse.cz>
28279
28280         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
28281         needed.
28282
28283 2010-04-30  Richard Guenther  <rguenther@suse.de>
28284
28285         * tree-ssa-structalias.c (get_constraint_for_1): Generate
28286         constraints for CONSTRUCTOR.
28287
28288 2010-04-30  Richard Guenther  <rguenther@suse.de>
28289
28290         PR lto/43946
28291         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
28292         first after all lowering passes.
28293
28294 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28295
28296         * toplev.c: Include varray.h for statistics dumping.
28297         * tree.h: Do not declare varray_head_tag.
28298         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
28299         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
28300         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
28301         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
28302         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
28303         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
28304         c-common.c, c-common.h, reg-stack.c, basic-block.h,
28305         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
28306         include varray.h.
28307         * Makefile.in: Update for abovementioned changes.
28308
28309 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
28310
28311         PR debug/43942
28312         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
28313
28314 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28315
28316         * config/picochip/picochip.c (picochip_legitimize_address): Define.
28317         Use this function to do machine-specific conversion.
28318         (picochip_legitimize_reload_address): Likewise.
28319         (picochip_legitimate_address_p): Check valid base register only if
28320         strict.
28321         (picochip_check_conditional_copy): Check for modw only if opnd is
28322         register.
28323         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
28324         to call the function in c.
28325         * config/picochip/picochip-protos.h
28326         (picochip_legitimize_reload_address): Define.
28327         * config/picochip/picochip.md (supported_compare1): Define.
28328
28329 2010-04-30  Jan Hubicka  <jh@suse.cz>
28330
28331         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
28332         (cgraph_global_info): Remove inlined.
28333         (LTO_cgraph_tag_names): Remove.
28334         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
28335         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
28336         simplify cgraph tags and document.
28337         (lto_output_node): Use only LTO_cgraph_unavail_node and
28338         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
28339         for_functions_valid, global info, process and output flags.
28340         (input_overwrite_node): Initialize estimated stack size and
28341         estimated growth.  Do not read flags we no longer store.
28342         (input_node): Likewise do not read info no longer stored.
28343         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
28344         flag.
28345
28346 2010-04-30  Richard Guenther  <rguenther@suse.de>
28347
28348         PR tree-optimization/43879
28349         * tree-ssa-structalias.c (get_constraint_for_1): Properly
28350         handle non-zero initializers.
28351
28352 2010-04-30  Richard Guenther  <rguenther@suse.de>
28353
28354         * builtins.c (fold_builtin_1): Delete free (0).
28355
28356 2010-04-29  Jan Hubicka  <jh@suse.cz>
28357
28358         * gengtype.c (open_base_files): Add lto-streamer.h
28359         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
28360         (pass_ipa_cp): GGC collect.
28361         * toplev. (compile_file): Do not output symbols.
28362         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
28363         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
28364         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
28365         * lto-section-in.c: Include ggc.h
28366         (lto_new_in_decl_state): Alloc in GGC.
28367         (lto_delete_in_decl_state): Likewise.
28368         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
28369         Collect.
28370
28371 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28372
28373         PR target/42895
28374         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
28375         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
28376         (HONOR_REG_ALLOC_ORDER): Describe new macro.
28377         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
28378         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
28379         account only if HONOR_REG_ALLOC_ORDER is not defined.
28380         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
28381         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
28382
28383 2010-04-29  Jon Grant  <04@jguk.org>
28384
28385         * collect2.c (vflag): Change type from int to bool.
28386         (debug): Likewise.
28387         (helpflag): New global bool.
28388         (main): Set vflag and debug with boolean, not integer truth values.
28389         Accept new "--help" option and output usage text if found.
28390         * collect2.h (vflag): Update prototype.
28391         (debug): Likewise.
28392
28393 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28394
28395         PR bootstrap/43936
28396         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
28397
28398 2010-04-29  Richard Guenther  <rguenther@suse.de>
28399
28400         PR bootstrap/43935
28401         * plugin.h (invoke_plugin_callbacks): Annotate arguments
28402         with ATTRIBUTE_UNUSED.
28403
28404 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28405
28406         PR target/43921
28407         * config/i386/i386.c (get_some_local_dynamic_name): Replace
28408         INSN_P with NONDEBUG_INSN_P.
28409         (distance_non_agu_define): Likewise.
28410         (distance_agu_use): Likewise.
28411
28412 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28413
28414         From Dominique d'Humieres  <dominiq@lps.ens.fr>
28415         PR bootstrap/43858
28416         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
28417         test_set.
28418
28419 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
28420
28421         * plugin.h (invoke_plugin_callbacks): New inline function.
28422         * plugin.c (flag_plugin_added): New global flag.
28423         (add_new_plugin): Initialize above flag.
28424         (invoke_plugin_callbacks): Rename to ...
28425         (invoke_plugin_callbacks_full): ... this.
28426
28427 2010-04-28  Jan Hubicka  <jh@suse.cz>
28428
28429         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
28430         (lto_varpool_replace_node): New.
28431         (lto_symtab_resolve_symbols): Resolve varpool nodes.
28432         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
28433         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
28434         * cgraph.h (varpool_node_ptr): New type.
28435         (varpool_node_ptr): New vector.
28436         (varpool_node_set_def): New structure.
28437         (varpool_node_set): New type.
28438         (varpool_node_set): New vector.
28439         (varpool_node_set_element_def): New structure.
28440         (varpool_node_set_element, const_varpool_node_set_element): New types.
28441         (varpool_node_set_iterator): New type.
28442         (varpool_node): Add prev pointers, add used_from_other_partition,
28443         in_other_partition.
28444         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
28445         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
28446         varpool_get_node, varpool_remove_node): Declare.
28447         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
28448         varpool_node_set_size): New inlines.
28449         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
28450         * tree-pass.h (varpool_node_set_def): Forward declare.
28451         (ipa_opt_pass_d): Summary writting takes vnode sets too.
28452         (ipa_write_optimization_summaries): Update prototype.
28453         * ipa-cp.c (ipcp_write_summary): Update.
28454         * ipa-reference.c (ipa_reference_write_summary): Update.
28455         * lto-cgraph.c (lto_output_varpool_node): New static function.
28456         (output_varpool): New function.
28457         (input_varpool_node): New static function.
28458         (input_varpool_1): New function.
28459         (input_cgraph): Input varpool.
28460         * ipa-pure-const.c (pure_const_write_summary): Update.
28461         * lto-streamer-out.c (lto_output): Update, output varpool too.
28462         (write_global_stream): Kill WPA hack.
28463         (produce_asm_for_decls): Update.
28464         (output_alias_pair_p): Handle variables.
28465         (output_unreferenced_globals): Output only needed partition of varpool.
28466         * ipa-inline.c (inline_write_summary): Update.
28467         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
28468         cgraph.
28469         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
28470         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
28471         varpool_node_set_new, varpool_node_set_add,
28472         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
28473         debug_varpool_node_set): New functions.
28474         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
28475         (execute_one_pass): Process new decls too.
28476         (ipa_write_summaries_2): Pass around vsets.
28477         (ipa_write_summaries_1): Likewise.
28478         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
28479         to add.
28480         (ipa_write_optimization_summaries_1): Pass around vsets.
28481         (ipa_write_optimization_summaries): Likewise.
28482         * varpool.c (varpool_get_node): New.
28483         (varpool_node): Update doubly linked lists.
28484         (varpool_remove_node): New.
28485         (dump_varpool_node): More dumping.
28486         (varpool_enqueue_needed_node): Update doubly linked lists.
28487         (decide_is_variable_needed): Kill ltrans hack.
28488         (varpool_finalize_decl): Kill lto hack.
28489         (varpool_assemble_decl): Skip decls in other partitions.
28490         (varpool_assemble_pending_decls): Update doubly linkes lists.
28491         (varpool_empty_needed_queue): Likewise.
28492         (varpool_extra_name_alias): Likewise.
28493         * lto-streamer.c (lto_get_section_name): Add vars section.
28494         * lto-streamer.h (lto_section_type): Update.
28495         (output_varpool, input_varpool): Declare.
28496
28497 2010-04-28  Mike Stump  <mikestump@comcast.net>
28498
28499         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
28500
28501 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28502
28503         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
28504         record or union type with RECORD_OR_UNION_TYPE_P predicate.
28505         (lto_input_ts_type_tree_pointers): Likewise.
28506         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
28507         (lto_output_ts_type_tree_pointers): Likewise.
28508
28509 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28510
28511         Uniquization of constants at the Tree level
28512         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
28513         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
28514         bit to the end.
28515         (tree_output_constant_def): Declare.
28516         * gimplify.c (gimplify_init_constructor): When using block copy, first
28517         uniquize the constant constructor on the RHS.
28518         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
28519         DECL_IN_CONSTANT_POOL flag.
28520         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
28521         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
28522         constant pool.
28523         (assemble_variable): Deal with symbols belonging to the tree constant
28524         pool.
28525         (get_constant_section): Add ALIGN parameter and simplify.
28526         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
28527         (assemble_constant_contents): Use the expression of the VAR_DECL.
28528         (output_constant_def_contents): Use the alignment of the VAR_DECL.
28529         (tree_output_constant_def): New global function.
28530         (mark_constant): Use the expression of the VAR_DECL.
28531         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
28532         its expression.
28533         (output_object_block): Likewise and assemble the expression.
28534
28535 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28536
28537         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
28538         hash_tree, eq_tree): New tree hash table.
28539         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
28540         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
28541         lto_orig_address_remove): Reimplement.
28542
28543 2010-04-28  Xinliang David Li  <davidxl@google.com>
28544
28545         PR c/42643
28546         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
28547         (compute_uninit_opnds_pos): New function.
28548         (is_non_loop_exit_postdominating): New function.
28549         (compute_control_dep_chain): New function.
28550         (find_pdom): New function.
28551         (convert_control_dep_chain_into_preds): New function.
28552         (find_predicates): New function.
28553         (find_control_equiv_block): New function.
28554         (collect_phi_def_edges): New function.
28555         (find_def_preds): New function.
28556         (find_dom): New function.
28557         (dump_predicates): New function.
28558         (get_cmp_code): New function.
28559         (is_value_included_in): New function.
28560         (find_matching_predicate_in_rest_chains): New function.
28561         (use_pred_not_overlap_with_undef_path_pred): New function.
28562         (is_use_properly_guarded): New function.
28563         (normalize_cond_1): New function.
28564         (is_and_or_or): New function.
28565         (normalize_cond): New function.
28566         (is_gcond_subset_of): New function.
28567         (is_subset_of_any): New function.
28568         (is_or_set_subset_of): New function.
28569         (is_and_set_subset_of): New function.
28570         (is_norm_cond_subset_of): New function.
28571         (is_pred_expr_subset_of): New function.
28572         (is_pred_chain_subset_of): New function.
28573         (is_included_in): New function.
28574         (is_superset_of): New function.
28575         (find_uninit_use): New function.
28576         (warn_uninitialized_phi): New function.
28577         (compute_possibly_undefined_names): New function.
28578         (ssa_undefined_value_p): New function.
28579         (execute_late_warn_uninitialized): New function.
28580         * tree-ssa.c (ssa_undefined_value_p): Removed.
28581         (warn_uninit): Changed to extern.
28582         (warn_uninitialized_phi): Removed.
28583         (warn_uninitialized_vars): Changed to extern.
28584         (execute_late_warn_uninitialized): Removed
28585         * tree-flow.h: Add new prototypes.
28586         * timevar.def: Add new time variable.
28587         * Makefile.in: Add new build file.
28588
28589 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
28590
28591         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
28592         type if available.
28593
28594 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28595
28596         PR target/22224
28597         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
28598
28599 2010-04-28  Martin Jambor  <mjambor@suse.cz>
28600
28601         * cgraph.h (struct cgraph_node): New field indirect_calls.
28602         (struct cgraph_indirect_call_info): New type.
28603         (struct cgraph_edge): Removed field indirect_call. New fields
28604         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
28605         (cgraph_create_indirect_edge): Declare.
28606         (cgraph_make_edge_direct): Likewise.
28607         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
28608         * ipa-prop.h (struct ipa_param_call_note): Removed.
28609         (struct ipa_node_params): Removed field param_calls.
28610         (ipa_create_all_structures_for_iinln): Declare.
28611         * cgraph.c: Described indirect edges and uids in initial comment.
28612         (cgraph_add_edge_to_call_site_hash): New function.
28613         (cgraph_edge): Search also among the indirect edges, use
28614         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
28615         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
28616         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
28617         site hash.
28618         (initialize_inline_failed): Assign a reason to indirect edges.
28619         (cgraph_create_edge_1): New function.
28620         (cgraph_create_edge): Moved some functionality to
28621         cgraph_create_edge_1.
28622         (cgraph_create_indirect_edge): New function.
28623         (cgraph_edge_remove_callee): Add an assert checking for
28624         non-indirectness.
28625         (cgraph_edge_remove_caller): Special-case indirect edges.
28626         (cgraph_remove_edge): Likewise.
28627         (cgraph_set_edge_callee): New function.
28628         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
28629         (cgraph_make_edge_direct): New function.
28630         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
28631         the declaration of the call statement matches.
28632         (cgraph_node_remove_callees): Special-case indirect edges.
28633         (cgraph_clone_edge): Likewise.
28634         (cgraph_clone_node): Clone also the indirect edges.
28635         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
28636         indirect_call, dump count of indirect_calls edges.
28637         * ipa-prop.c (iinlining_processed_edges): New variable.
28638         (ipa_note_param_call): Create indirect edges instead of
28639         creating notes.  New parameter node.
28640         (ipa_analyze_call_uses): New parameter node, pass it on to
28641         ipa_note_param_call.
28642         (ipa_analyze_stmt_uses): Likewise.
28643         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
28644         (print_edge_addition_message): Work on edges rather than on notes.
28645         (update_call_notes_after_inlining): Likewise, renamed to
28646         update_indirect_edges_after_inlining.
28647         (ipa_create_all_structures_for_iinln): New function.
28648         (ipa_free_node_params_substructures): Do not free notes.
28649         (ipa_edge_duplication_hook): Propagate bits within
28650         iinlining_processed_edges bitmap.
28651         (ipa_node_duplication_hook): Do not duplicate notes.
28652         (free_all_ipa_structures_after_ipa_cp): Renamed to
28653         ipa_free_all_structures_after_ipa_cp.
28654         (free_all_ipa_structures_after_iinln): Renamed to
28655         ipa_free_all_structures_after_iinln.
28656         (ipa_write_param_call_note): Removed.
28657         (ipa_read_param_call_note): Removed.
28658         (ipa_write_indirect_edge_info): New function.
28659         (ipa_read_indirect_edge_info): Likewise.
28660         (ipa_write_node_info): Do not stream notes, do stream information
28661         in indirect edges.
28662         (ipa_read_node_info): Likewise.
28663         (lto_ipa_fixup_call_notes): Removed.
28664         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
28665         * ipa-inline.c (pass_ipa_inline): Likewise.
28666         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
28667         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
28668         * tree-inline.c (copy_bb): Removed an unnecessary double check for
28669         is_gimple_call.
28670         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
28671         edges.
28672         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
28673         (output_cgraph): Stream also indirect edges.
28674         (lto_output_edge): Added capability to stream indirect edges.
28675         (input_edge): Likewise.
28676         (input_cgraph_1): Likewise.
28677         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
28678         of indirect edges.
28679
28680 2010-04-28  Richard Guenther  <rguenther@suse.de>
28681
28682         PR tree-optimization/43879
28683         PR tree-optimization/43909
28684         * tree-ssa-structalias.c (struct variable_info): Add
28685         only_restrict_pointers flag.
28686         (new_var_info): Initialize it.  Increment stats.total_vars here.
28687         (create_function_info_for): Do not increment stats.total_vars here.
28688         (get_function_part_constraint): Fix build with C++.
28689         (insert_into_field_list): Remove.
28690         (push_fields_onto_fieldstack): Properly merge fields.
28691         (create_variable_info_for): Split and simplify.
28692         (create_variable_info_for_1): New piece.
28693         (intra_create_variable_infos): Properly make restrict constraints
28694         from parameters.
28695
28696 2010-04-28  Richard Guenther  <rguenther@suse.de>
28697
28698         PR c++/43880
28699         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
28700
28701 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28702             Jan Hubicka  <hubicka@ucw.cz>
28703
28704         * doc/invoke.texi (-Wsuggest-attribute=const,
28705         -Wsuggest-attribute=pure): Document.
28706         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
28707         (function_always_visible_to_compiler_p,
28708         suggest_attribute, warn_function_pure, warn_function_const):
28709         New functions.
28710         (check_call): Improve debug info.
28711         (analyze_function): Do not check availability.
28712         (add_new_function): Check availability.
28713         (propagate): Output warnings.
28714         (skip_function_for_local_pure_const): New function.
28715         (local_pure_const): Use it; output warnings.
28716         * common.opt (Wsuggest-attribute=const,
28717         Wsuggest-attribute=pure): New.
28718
28719 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28720
28721         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
28722         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
28723         or DW_CFA_def_cfa_offset{,_sf}.
28724
28725 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28726
28727         * tree.h: Fix truncated long macros.
28728
28729 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
28730
28731         * collect2.c (TARGET_64BIT): Redefine to target's default.
28732         * tlink.c: Likewise.
28733         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
28734         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
28735         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
28736         for underscoring __USER_LABEL_PREFIX__.
28737         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
28738         (SUB_LINK_ENTRY32): New.
28739         (SUB_LINK_ENTRY64): New.
28740         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
28741         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
28742         (SUB_LINK_ENTRY64): New.
28743         (SUB_LINK_ENTRY): New.
28744         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
28745         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
28746         x64 target is choosen.
28747         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
28748         * configure: Regenerated.
28749         * configure.ac (leading-mingw64-underscores): Option added.
28750
28751 2010-04-27  Jan Hubicka  <jh@suse.cz>
28752
28753         * doc/invoke.texi (-fipa-profile): Document.
28754         * opts.c (decode_options): Enable ipa-profile at -O1.
28755         * timevar.def (TV_IPA_PROFILE): Define.
28756         * common.opt (fipa-profile): Add.
28757         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
28758         flag for clones.
28759         (cgraph_propagate_frequency): Handle only local ones.
28760         * tree-pass.h (pass_ipa_profile): Declare.
28761         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
28762         (pass_ipa_profile): Use TV_IPA_PROFILE.
28763         * ipa.c (ipa_profile): New function.
28764         (gate_ipa_profile): Likewise.
28765         (pass_ipa_profile): New global variable.
28766         * passes.c (pass_ipa_profile): New.
28767
28768 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
28769
28770         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
28771
28772 2010-04-27  Martin Jambor  <mjambor@suse.cz>
28773
28774         PR middle-end/43812
28775         * ipa.c (dissolve_same_comdat_group_list): New function.
28776         (function_and_variable_visibility): Call
28777         dissolve_same_comdat_group_list when comdat group contains external or
28778         newly local nodes.
28779         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
28780         lists are circular and that they contain only DECL_ONE_ONLY nodes.
28781
28782 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28783
28784         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
28785         (const_hash_1) <VECTOR_CST>: New case.
28786         (compare_constant) <VECTOR_CST>: Likewise.
28787         <ADDR_EXPR>: Deal with LABEL_REFs.
28788         (copy_constant) <VECTOR_CST>: New case.
28789
28790 2010-04-27  Jan Hubicka  <jh@suse.cz>
28791
28792         * cgraph.c (cgraph_propagate_frequency): New function.
28793         * cgraph.h (cgraph_propagate_frequency): Declare.
28794         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
28795         cgraph_propagate_frequency.
28796
28797 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28798
28799         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
28800
28801 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
28802
28803         PR target/40657
28804         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
28805         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
28806         here to determine which regs to push and how much stack to reserve.
28807
28808 2010-04-27  Jie Zhang  <jie@codesourcery.com>
28809
28810         * doc/gimple.texi (gimple_statement_with_ops): Remove
28811         addresses_taken field.
28812         (gimple_statement_with_memory_ops): Likewise.
28813
28814 2010-04-27  Jan Hubicka  <jh@suse.cz>
28815
28816         * tree-inline.c (eni_inlining_weights): Remove.
28817         (estimate_num_insns): Special case more builtins.
28818
28819 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
28820
28821         PR c/32207
28822         * c-typeck.c (build_binary_op): Move forward check for comparison
28823         pointer with null pointer constant and adjust the diagnostic message.
28824
28825 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
28826
28827         PR lto/42776
28828         * configure.ac (gcc_cv_as_section_has_align): Set if installed
28829         binutils supports extended .section directive needed by LTO, or
28830         warn if older binutils found.
28831         (LTO_BINARY_READER): New AC_SUBST'd variable.
28832         (LTO_USE_LIBELF): Likewise.
28833         * config.gcc (lto_binary_reader): New target-specific configure
28834         variable.
28835         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
28836         (LTO_USE_LIBELF): Likewise.
28837         * configure: Regenerate.
28838
28839         * collect2.c (is_elf): Rename from this ...
28840         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
28841          object files in addition to ELF-formatted ones.
28842         (scan_prog_file): Caller updated.  Also allow for LTO info marker
28843         symbol to be prefixed or not by an extra underscore.
28844
28845         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
28846         * config/i386/winnt.c: Also #include lto-streamer.h
28847         (i386_pe_asm_named_section): Specify 1-byte section alignment for
28848         LTO named sections.
28849         (i386_pe_asm_output_aligned_decl_common): Add comment.
28850         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
28851
28852 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
28853
28854         PR target/43889
28855         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
28856         Add missing earlyclobber for second alternative.
28857
28858 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
28859
28860         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
28861         bits for artificial defs at the top of the block.
28862         * fwprop.c (single_def_use_enter_block): Don't call it.
28863
28864 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
28865
28866         PR 43715
28867         * configure.ac: Use "$gcc_cv_nm -g" on darwin
28868         instead of "$gcc_cv_objdump -T".
28869         Use "-undefined dynamic_lookup" on darwin.
28870         * configure: Regenerate.
28871
28872 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
28873
28874         PR c/43893
28875         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
28876
28877 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28878
28879         * c-parser.c (struct c_token): Move location field up.
28880         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
28881         (struct c_declspecs): Convert typespec_word, storage_class, and
28882         default_int_p into bitfields.
28883         (struct c_declarator): Move loc field up.
28884
28885 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
28886
28887         * cfgloop.h (struct loop): Move can_be_parallel field up.
28888         * ipa-prop.h (struct ip_node_params): Move bitfields up.
28889         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
28890         down.
28891         (struct iv_cand): Convert pos field into a bitfield.
28892         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
28893         field up.
28894         (struct _stmt_vec_info): Shuffle fields for better packing.
28895
28896 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28897
28898         * varasm.c (IN_NAMED_SECTION): Remove guard.
28899         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
28900         (IN_NAMED_SECTION_P): ...this.
28901         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
28902         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
28903
28904 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
28905
28906         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
28907         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
28908         of shadowing it.  Fix comments.
28909
28910 2010-04-26  Jan Hubicka  <jh@suse.cz>
28911
28912         * cgraph.c (cgraph_create_node): Set node frequency to normal.
28913         (cgraph_clone_node): Copy function frequency.
28914         * cgraph.h (node_frequency): New enum
28915         (struct cgraph_node): Add.
28916         * final.c (rest_of_clean_state): Update.
28917         * lto-cgraph.c (lto_output_node): Output node frequency.
28918         (input_overwrite_node): Input node frequency.
28919         * tre-ssa-loop-ivopts (computation_cost): Update.
28920         * lto-streamer-out.c (output_function): Do not output function
28921         frequency.
28922         * predict.c (maybe_hot_frequency_p): Update and handle functions
28923         executed once.
28924         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
28925         attribute lookup.
28926         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
28927         (compute_function_frequency): Set noreturn functions to be executed
28928         once.
28929         (choose_function_section): Update.
28930         * lto-streamer-in.c (input_function): Do not input function frequency.
28931         * function.c (allocate_struct_function): Do not initialize function
28932         frequency.
28933         * function.h (function_frequency): Remove.
28934         (struct function): Remove function frequency.
28935         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
28936         (try_update): Update.
28937         * tree-inline.c (initialize_cfun): Do not update function frequency.
28938         * passes.c (pass_init_dump_file): Update.
28939         * i386.c (ix86_compute_frame_layout): Update.
28940         (ix86_pad_returns): Update.
28941
28942 2010-04-26  Jie Zhang  <jie@codesourcery.com>
28943
28944         PR tree-optimization/43833
28945         * tree-vrp.c (range_int_cst_p): New.
28946         (range_int_cst_singleton_p): New.
28947         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
28948         when both operands are constants.  Use range_int_cst_p in
28949         BIT_IOR_EXPR case.
28950
28951 2010-04-26  Jan Hubicka  <jh@suse.cz>
28952
28953         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
28954
28955 2010-04-26  Richard Guenther  <rguenther@suse.de>
28956
28957         PR lto/43080
28958         * gimple.c (gimple_decl_printable_name): Deal gracefully
28959         with a NULL DECL_NAME.
28960
28961 2010-04-26  Richard Guenther  <rguenther@suse.de>
28962
28963         PR lto/42425
28964         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
28965         if emitting debug information and it is either a function
28966         or a namespace decl.
28967
28968 2010-04-26  Ira Rosen  <irar@il.ibm.com>
28969
28970         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
28971         determine if the statement is vectorizable, and a macro to access it.
28972         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
28973         Skip statements that can't be vectorized. If the analysis fails,
28974         mark the statement as unvectorizable if vectorizing basic block.
28975         (vect_compute_data_refs_alignment): Likewise.
28976         (vect_verify_datarefs_alignment): Skip statements marked as
28977         unvectorizable. Add print.
28978         (vect_analyze_group_access): Skip statements that can't be
28979         vectorized. If the analysis fails, mark the statement as
28980         unvectorizable if vectorizing basic block.
28981         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
28982         * tree-vect-stmts.c (vectorizable_store): Fix the number of
28983         generated stmts for SLP.
28984         (new_stmt_vec_info): Initialize the new field.
28985         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
28986         statements marked as unvectorizable.
28987
28988 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
28989
28990         * c-common.c (flag_isoc1x): New.
28991         (flag_isoc99): Update comment.
28992         * c-common.h (flag_isoc1x): New.
28993         (flag_isoc99): Update comment.
28994         * c-cppbuiltin.c (builtin_define_float_constants): Also define
28995         __<type>_DECIMAL_DIG__.
28996         * c-opts.c (set_std_c1x): New.
28997         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
28998         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
28999         * c.opt (-std=c1x, -std=gnu1x): New options.
29000         * doc/cpp.texi: Mention -std=c1x.
29001         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
29002         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
29003         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
29004         * doc/standards.texi: Mention C1X.
29005         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
29006         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
29007         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
29008         Define for C1X.
29009
29010 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
29011
29012         * config/i386/gmon-sol2.c (_mcleanup): Change format string
29013         placeholder from 0x%x to %#x.
29014         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29015         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29016         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29017         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29018         * config/i386/i386.c (ix86_target_string): Ditto.
29019         (output_pic_addr_const): Ditto.
29020         (print_operand): Ditto.
29021
29022 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
29023
29024         * combine.c (find_split_point): Add third argument.  Use it
29025         to find nested multiply-accumulate instructions.  Adjust calls.
29026         (try_combine): Adjust call to find_split_point.
29027
29028 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
29029
29030         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
29031
29032 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
29033
29034         PR tree-optimization/41442
29035         * fold-const.c (merge_truthop_with_opposite_arm): New function.
29036         (fold_binary_loc): Call it.
29037
29038 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29039
29040         * toplev.c (general_init): Set default for fdiagnostics-show-option.
29041         * opts.c (common_handle_option): Allow disabling it.
29042         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
29043
29044 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
29045
29046         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
29047         between modes if both types are integral.
29048
29049 2010-04-23  Richard Guenther  <rguenther@suse.de>
29050
29051         PR tree-optimization/43572
29052         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
29053
29054 2010-04-23  Richard Guenther  <rguenther@suse.de>
29055
29056         PR lto/43455
29057         * tree-inline.c (tree_can_inline_p): Also check compatibility
29058         of return types.
29059
29060 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29061
29062         PR tree-optimization/43846
29063         * tree-sra.c (struct access): New flag grp_assignment_read.
29064         (build_accesses_from_assign): Set grp_assignment_read.
29065         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
29066         (enum mark_read_status): New type.
29067         (analyze_access_subtree): Propagate grp_assignment_read, create
29068         accesses also if both direct_read and root->grp_assignment_read.
29069
29070 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29071
29072         PR middle-end/43835
29073         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
29074         function does not have type attributes.
29075
29076 2010-04-23  Richard Guenther  <rguenther@suse.de>
29077
29078         PR lto/42653
29079         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
29080         of FUNCTION_DECLs.
29081
29082 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29083
29084         * sese.h (create_if_region_on_edge): Remove.
29085
29086         * sese.c (create_if_region_on_edge): Make static.
29087
29088         * tree-inline.c: Do not include ggc.h.
29089
29090         * expr.c: Do not include ggc.h.
29091
29092         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
29093         dependencies.
29094
29095 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
29096
29097         PR target/43744
29098         * config/sh/sh.c (find_barrier): Don't emit a constant pool
29099         in the middle of insns for casesi_worker_2.
29100
29101 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
29102
29103         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
29104
29105 2010-04-22  Ira Rosen  <irar@il.ibm.com>
29106
29107         PR tree-optimization/43842
29108         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
29109         loop unrolling in update of exit phis. Fix comment.
29110         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
29111         least two reduction statements in the loop before starting SLP
29112         analysis.
29113
29114 2010-04-22  Nick Clifton  <nickc@redhat.com>
29115
29116         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
29117
29118 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
29119
29120         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
29121         to simplify a + ~a.
29122
29123 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29124
29125         * tree-parloops.c (loop_parallel_p): New argument
29126         parloop_obstack.  Pass it down.
29127         (parallelize_loops): New variable parloop_obstack.  Initialize it,
29128         pass it down, free it.
29129
29130         * tree-loop-linear.c (linear_transform_loops): Pass down
29131         lambda_obstack.
29132
29133         * tree-data-ref.h (lambda_compute_access_matrices): New argument
29134         of type struct obstack *.
29135
29136         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
29137         scratch_obstack.  Initialize it, pass down, free it.
29138
29139         * lambda.h (lambda_loop_new): Remove.
29140         (lambda_matrix_new, lambda_matrix_inverse)
29141         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
29142         argument of type struct obstack *.
29143
29144         * lambda-trans.c (lambda_trans_matrix_new): New argument
29145         lambda_obstack.  Pass it down, use obstack allocation for ret.
29146         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
29147         it down.
29148
29149         * lambda-mat.c (lambda_matrix_get_column)
29150         (lambda_matrix_project_to_null): Remove.
29151         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
29152         allocation for mat.
29153         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
29154         lambda_obstack.
29155
29156         * lambda-code.c (lambda_loop_new): New function.
29157         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
29158         (lambda_compute_auxillary_space, lambda_compute_target_space)
29159         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
29160         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
29161         (build_access_matrix): New argument lambda_obstack.  Use obstack
29162         allocation for am.
29163         (lambda_compute_step_signs, lambda_compute_access_matrices): New
29164         argument lambda_obstack.  Pass it down.
29165
29166 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29167
29168         * optabs.h (expand_widening_mult): Declare.
29169
29170 2010-04-22  Richard Guenther  <rguenther@suse.de>
29171
29172         PR tree-optimization/43845
29173         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
29174         lookup the CALL_EXPR function and arguments.
29175
29176 2010-04-22  Nick Clifton  <nickc@redhat.com>
29177
29178         * config/stormy16/stormy16.c
29179         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
29180         * config/stormy16/stormy16.h: Tidy up formatting.
29181         (DONT_USE_BUILTIN_SETJMP): Remove definition.
29182         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
29183         (ineqbranchsi): Delete pattern.
29184         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
29185         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
29186         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
29187         stormy16-lib2-ucmpsi2.c.
29188
29189 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29190
29191         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
29192         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
29193         extra set merge_set_noclobber, and use it to relax the final test
29194         slightly.
29195         * df.h (df_simulate_find_noclobber_defs): Declare.
29196         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
29197         conditional defs.
29198         (df_simulate_find_noclobber_defs): New function.
29199
29200 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
29201
29202         * config/i386/i386.md: Use {} around multi-line preparation statements.
29203
29204 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29205
29206         * c-tree.h (push_init_level, pop_init_level, set_init_index)
29207         (process_init_element): New argument of type struct obstack *.
29208
29209         * c-typeck.c (push_init_level, pop_init_level, set_designator)
29210         (set_init_index, set_init_label, set_nonincremental_init)
29211         (set_nonincremental_init_from_string, find_init_member)
29212         (output_init_element, output_pending_init_elements)
29213         (process_init_element): New argument braced_init_obstack.  Pass it
29214         down.
29215         (push_range_stack, add_pending_init): New argument
29216         braced_init_obstack.  Use obstack allocation.
29217
29218         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
29219         braced_init_obstack.  Pass it down.
29220         (c_parser_braced_init): New variables ret, braced_init_obstack.
29221         Initialize obstack, pass it down and finally free it.
29222
29223 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29224
29225         PR middle-end/29274
29226         * tree-pass.h (pass_optimize_widening_mul): Declare.
29227         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
29228         gate_optimize_widening_mul): New static functions.
29229         (pass_optimize_widening_mul): New.
29230         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
29231         <case MULT_EXPR>: Remove support for widening multiplies.
29232         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
29233         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
29234         simplify_gen_unary rather than directly building extensions.
29235         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
29236         WIDEN_MULT_EXPR.
29237         * expmed.c (expand_widening_mult): New function.
29238         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
29239
29240 2010-04-21  Jan Hubicka  <jh@suse.cz>
29241
29242         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
29243         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
29244         * lto-wpa-fixup.c: Remove.
29245         * Makefile.in (lto-wpa-fixup.o): Remove.
29246         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
29247         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
29248         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
29249
29250 2010-04-21  Jan Hubicka  <jh@suse.cz>
29251
29252         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
29253         add write_optimization_summary, read_optimization_summary.
29254         (ipa_write_summaries_of_cgraph_node_set): Remove.
29255         (ipa_write_optimization_summaries): Declare.
29256         (ipa_read_optimization_summaries): Declare.
29257         * ipa-cp.c (pass_ipa_cp): Update.
29258         * ipa-reference.c (pass_ipa_reference): Update.
29259         * ipa-pure-const.c (pass_ipa_pure_const): Update.
29260         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
29261         Update.
29262         * ipa-inline.c (pass_ipa_inline): Update.
29263         * ipa.c (pass_ipa_whole_program): Update.
29264         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
29265         * passes.c (ipa_write_summaries_1): Do not test wpa.
29266         (ipa_write_optimization_summaries_1): New.
29267         (ipa_write_optimization_summaries): New.
29268         (ipa_read_summaries): Do not test ltrans.
29269         (ipa_read_optimization_summaries_1): New.
29270         (ipa_read_optimization_summaries): New.
29271
29272 2010-04-21  Jan Hubicka  <jh@suse.cz>
29273
29274         * lto-cgraph.c (lto_output_node): Do not output comdat groups
29275         for boundary nodes.
29276         (output_cgraph): Do not arrange comdat groups for boundary nodes.
29277
29278 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29279
29280         PR debug/40040
29281         * dwarf2out.c (add_name_and_src_coords_attributes): Add
29282         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
29283
29284 2010-04-21  Jan Hubicka  <jh@suse.cz>
29285
29286         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
29287
29288 2010-04-21  Jan Hubicka  <jh@suse.cz>
29289
29290         * varpool.c (decide_is_variable_needed): Variable is always needed
29291         during ltrans.
29292
29293 2010-04-21  Jan Hubicka  <jh@suse.cz>
29294
29295         * opts.c (decode_options): Enable pure-const pass for whopr.
29296
29297 2010-04-21  Jan Hubicka  <jh@suse.cz>
29298
29299         * cgraph.c (dump_cgraph_node): Dump also assembler name.
29300         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
29301         at WPA dumping.
29302         (cgraph_decide_inlining): Do not expect callee to be removed in all
29303         cases.
29304
29305 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
29306
29307         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
29308
29309 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29310
29311         * config/i386/i386.md (x86_shrd): Add athlon_decode and
29312         amdfam10_decode attributes.
29313
29314 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29315
29316         PR middle-end/43570
29317         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
29318         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
29319         (lower_copyprivate_clauses): Use private var in outer
29320         context instead of original var.  Make sure the types
29321         are correct for VLAs.
29322
29323 2010-04-21  Richard Guenther  <rguenther@suse.de>
29324
29325         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
29326         to non-pointer objects.
29327
29328 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29329
29330         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
29331         last chain entry if it starts with the still current label.
29332         (add_location_or_const_value_attribute): Check that
29333         loc_list->first->next is NULL instead of comparing ->first with ->last.
29334         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
29335         to add_var_loc_to_decl.
29336
29337         * dwarf2out.c (output_call_frame_info): For dw_cie_version
29338         >= 4 add also address size and segment size fields into CIE header.
29339
29340         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
29341         long as address size is the same as sizeof (void *) and
29342         segment size is 0.
29343         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
29344         address size or segment size is unexpected, return DW_EH_PE_omit.
29345         (classify_object_over_fdes): If get_cie_encoding returned
29346         DW_EH_PE_omit, return -1.
29347         (init_object): If classify_object_over_fdes returned -1,
29348         pretend there were no FDEs at all.
29349
29350 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29351
29352         * config/i386/i386.md (bswap<mode>2): Macroize expander from
29353         bswap{si,di}2 using SWI48 mode iterator.
29354         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
29355         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
29356         set modrm attribute of bswap insn to 0 and remove length attribute.
29357         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
29358         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
29359         set mode attribute to <MODE> and remove length attribute.
29360
29361 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
29362
29363         PR rtl-optimization/43520
29364         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
29365         zero available registers.
29366
29367 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29368
29369         * builtins.c (fold_builtin_cproj): Fold more cases.
29370
29371 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29372
29373         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
29374         (fold_builtin_1): Fold builtin cproj.
29375         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
29376         Use ATTR_CONST_NOTHROW_LIST.
29377
29378 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
29379
29380         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
29381         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
29382         ffsi2_no_cmove for !TARGET_CMOVE.
29383         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
29384         (ffssi2): Remove expander.
29385         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
29386         mode iterator.
29387         (ctz<mode>2): Ditto from ctz{si,di}2.
29388         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
29389         mode iterator.
29390         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
29391         mode iterator.
29392
29393 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29394
29395         * dwarf2out.c (AT_linkage_name): Define.
29396         (clone_as_declaration): Handle DW_AT_linkage_name.
29397         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
29398         of DW_AT_MIPS_linkage_name.
29399         (move_linkage_attr): Likewise.
29400         (dwarf2out_finish): Likewise.
29401
29402 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
29403
29404         PR middle-end/41952
29405         * fold-const.c (fold_comparison): New folding rule.
29406
29407 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
29408
29409         * double-int.h (double_int_setbit): Declare.
29410         * double-int.c (double_int_setbit): New function.
29411         * rtl.h (immed_double_int_const): Declare.
29412         * emit-rtl.c (immed_double_int_const): New function.
29413         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
29414         and immed_double_int_const functions.
29415         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
29416         expand_copysign_bit): (Ditto.).
29417         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
29418         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
29419         * dojump.c (prefer_and_bit_test): (Ditto.).
29420         * expr.c (convert_modes, reduce_to_bit_field_precision,
29421         const_vector_from_tree): (Ditto.).
29422         * expmed.c (mask_rtx, lshift_value): (Ditto.).
29423
29424 2010-04-20  Jan Hubicka  <jh@suse.cz>
29425
29426         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
29427         (dump_cgraph_node): Dump new flags.
29428         * cgraph.h (struct cgraph_node): Add flags
29429         reachable_from_other_partition and in_other_partition.
29430         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
29431         other partition can not be removed.
29432         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
29433         the other partition must be output; silence sanity checking on
29434         leaking functions bodies from other paritition.
29435         * lto-cgraph.c (reachable_from_other_partition_p): New function.
29436         (lto_output_node): Output new flags; do not sanity check that inline
29437         clones are output; drop lto_forced_extern_inline_p code; do not mock
29438         visibility flags at partition boundaries.
29439         (add_node_to): New function.
29440         (output_cgraph): Use it to sort functions so masters appear before
29441         clones.
29442         (input_overwrite_node): Input new flags.
29443         * passes.c (ipa_write_summaries): Do not call
29444         lto_new_extern_inline_states.
29445         * lto-section-out.c (forced_extern_inline,
29446         lto_new_extern_inline_states lto_delete_extern_inline_states,
29447         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
29448         * lto-streamer.h (lto_new_extern_inline_states,
29449         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
29450         lto_forced_extern_inline_p): Kill.
29451
29452 2010-04-20  Richard Guenther  <rguenther@suse.de>
29453
29454         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
29455         from vars that can have pointers.
29456         (process_constraint): Dump useless constraints.
29457
29458 2010-04-20  Richard Guenther  <rguenther@suse.de>
29459
29460         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
29461         (dump_sa_points_to_info): Remove asserts.
29462         (init_base_vars): nothing_id isn't an escape point nor does it
29463         have pointers.
29464
29465 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29466
29467         * tree.h (TYPE_REF_IS_RVALUE): Define.
29468         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
29469         should_move_die_to_comdat, prune_unused_types_walk): Handle
29470         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
29471         (modified_type_die, gen_reference_type_die): Emit
29472         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
29473         if TYPE_REF_IS_RVALUE and -gdwarf-4.
29474
29475 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29476
29477         PR target/43635
29478         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
29479         calls for -fpic -m31 if they have been sibcall optimized.
29480
29481 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
29482
29483         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
29484         ar.lc fixed and call-used.
29485
29486         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
29487
29488 2010-04-19  Jan Hubicka  <jh@suse.cz>
29489
29490         * opts.c (decode_options): Disable whpr incompatible passes.
29491         * lto/lto.c (lto_1_to_1_map): Skip clones.
29492         (read_cgraph_and_symbols): Do not mark everything as needed.
29493         (do_whole_program_analysis): Do map only after optimizing;
29494         set proper cgraph_state; use passmanager.
29495
29496 2010-04-19  DJ Delorie  <dj@redhat.com>
29497
29498         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
29499         POINTER_PLUS_EXPR and fix them.
29500
29501 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
29502
29503         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
29504         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
29505         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
29506         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
29507         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
29508         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
29509         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
29510         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
29511         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
29512         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
29513         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
29514
29515 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
29516
29517         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
29518         (check_cond_move_block): Likewise.
29519         (cond_move_process_if_block): Likewise.
29520         (noce_find_if_block): Improve formatting.
29521         (find_if_header): Pass 0 to memset and tweak conditions.
29522         (cond_exec_find_if_block): Fix long lines and tweak conditions.
29523
29524 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29525
29526         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
29527         for -gdwarf-4.
29528
29529         PR middle-end/43337
29530         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
29531         with non-local decl doesn't need chain.
29532
29533 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
29534
29535         * ira-color.c (allocno_reload_assign): Avoid accumulating
29536         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
29537
29538 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29539
29540         * gimple.h (create_tmp_reg): Declare.
29541         * gimplify.c (create_tmp_reg): New function.
29542         (gimplify_return_expr): Use create_tmp_reg.
29543         (gimplify_omp_atomic): Likewise.
29544         (gimple_regimplify_operands): Likewise.
29545         * tree-dfa.c (make_rename_temp): Likewise.
29546         * tree-predcom.c (predcom_tmp_var): Likewise.
29547         (reassociate_to_the_same_stmt): Likewise.
29548         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
29549         (get_replaced_param_substitute): Likewise.
29550         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29551         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
29552         * tree-ssa-pre.c (get_representative_for): Likewise.
29553         (create_expression_by_pieces): Likewise.
29554         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
29555         (create_tailcall_accumulator): Likewise.
29556
29557 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29558
29559         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
29560         new_stmt.
29561         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
29562
29563 2010-04-19  Richard Guenther  <rguenther@suse.de>
29564
29565         PR tree-optimization/43796
29566         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
29567         from SCEV in the lattice.
29568         (vrp_visit_phi_node): Dump change.
29569
29570 2010-04-19  Richard Guenther  <rguenther@suse.de>
29571
29572         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
29573         * configure: Re-generated.
29574
29575 2010-04-19  Richard Guenther  <rguenther@suse.de>
29576
29577         PR tree-optimization/43783
29578         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
29579         constant ARRAY_REF operands two and three if possible.
29580
29581 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
29582
29583         PR target/43766
29584         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
29585
29586 2010-04-19  Jie Zhang  <jie@codesourcery.com>
29587
29588         PR target/43662
29589         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
29590
29591 2010-04-19  Ira Rosen  <irar@il.ibm.com>
29592
29593         PR tree-optimization/37027
29594         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
29595         and macro to access it.
29596         (vectorizable_reduction): Add argument.
29597         (vect_get_slp_defs): Likewise.
29598         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
29599         statements for possible use in SLP.
29600         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
29601         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
29602         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
29603         add new argument.
29604         (vectorizable_reduction): Likewise.
29605         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
29606         vect_get_slp_defs.
29607         (vectorizable_type_demotion, vectorizable_type_promotion,
29608         vectorizable_store): Likewise.
29609         (vect_analyze_stmt): Update call to vectorizable_reduction.
29610         (vect_transform_stmt): Likewise.
29611         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
29612         (vect_build_slp_tree): Fix indentation. Check that there are no loads
29613         from different interleaving chains in same node.
29614         (vect_slp_rearrange_stmts): New function.
29615         (vect_supported_load_permutation_p): Allow load permutations for
29616         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
29617         inside SLP nodes if necessary.
29618         (vect_analyze_slp_instance): Handle reductions.
29619         (vect_analyze_slp): Try to build SLP instances originating from groups
29620         of reductions.
29621         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
29622         (vect_get_constant_vectors): Create initial vectors for reductions
29623         according to reduction code. Add new argument.
29624         (vect_get_slp_defs): Add new argument, pass it to
29625         vect_get_constant_vectors.
29626         (vect_schedule_slp_instance): Remove SLP tree root statements.
29627
29628 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29629
29630         * tree.h (ENUM_IS_SCOPED): Define.
29631         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
29632         for ENUM_IS_SCOPED enums.
29633
29634 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
29635
29636         * fold-const.c (fold_comparison): Use ssizetype.
29637         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
29638         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
29639         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
29640         * tree-object-size.c (compute_object_sizes): Use size_type_node.
29641
29642         * tree.h (initialize_sizetypes): Remove parameter.
29643         (build_common_tree_nodes): Remove second parameter.
29644         * stor-layout.c (initialize_sizetypes): Remove parameter.
29645         Always create an unsigned type.
29646         (set_sizetype): Assert that the passed type is unsigned and simplify.
29647         * tree.c (build_common_tree_nodes): Remove second parameter.
29648         Adjust call to initialize_sizetypes.
29649         * c-decl.c (c_init_decl_processing): Remove second argument in call to
29650         build_common_tree_nodes.
29651
29652 2010-04-18  Matthias Klose  <doko@ubuntu.com>
29653
29654         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
29655
29656 2010-04-18  Ira Rosen  <irar@il.ibm.com>
29657
29658         PR tree-optimization/43771
29659         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
29660         load permutation doesn't have gaps.
29661
29662 2010-04-18  Jan Hubicka  <jh@suse.cz>
29663
29664         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
29665         (sse_prologue_save_insn expander): Use new pattern.
29666         (sse_prologue_save_insn1): New pattern and splitter.
29667         (sse_prologue_save_insn): Update to deal also with 64bit aligned
29668         blocks.
29669         * i386.c (setup_incoming_varargs_64): Do not compute jump
29670         destination here.
29671         (ix86_gimplify_va_arg): Update alignment needed.
29672         (ix86_local_alignment): Do not align all local arrays to 128bit.
29673
29674 2010-04-17  Jan Hubicka  <jh@suse.cz>
29675
29676         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
29677
29678 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29679
29680         * arm.md (negdi2): Remove redundant code to force values into a
29681         register.
29682
29683 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29684
29685         * arm/bpabi.S: Add EABI alignment attributes to objects.
29686         * arm/bpabi-v6m.S: Likewise.
29687         * arm/crti.asm: Likewise.
29688         * arm/crtn.asm: Likewise.
29689         * arm/lib1funcs.asm: Likewise.
29690         * arm/libunwind.S: Likewise.
29691
29692 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29693
29694         * arm-protos.h (tune_params): New structure.
29695         * arm.c (current_tune): New variable.
29696         (arm_constant_limit): Delete.
29697         (struct processors): Add pointer to the tune parameters.
29698         (arm_slowmul_tune): New tuning option.
29699         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
29700         (all_cores): Adjust to pick up the tuning model.
29701         (arm_constant_limit): New function.
29702         (arm_override_options): Select the appropriate tuning model.  Delete
29703         initialization of arm_const_limit.
29704         (arm_split_constant): Use the new constant-limit model.
29705         (arm_rtx_costs): Pick up the current tuning model.
29706         * arm.md (is_strongarm, is_xscale): Delete.
29707         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
29708         for Xscale variant architectures.
29709         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
29710
29711 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29712
29713         * config/arm/arm.c (arm_gen_constant): Remove unused variable
29714         can_shift.
29715         (arm_rtx_costs_1): Remove unused variable extra_cost.
29716         (arm_unwind_emit_set): Use variable offset.
29717         (thumb1_output_casesi): Remove unused variable flags.
29718
29719 2010-04-16  Jeff Law  <law@redhat.com>
29720
29721         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
29722         needing assignment rather than doing a two-phase assignment.  Remove
29723         unused variable 'm'.
29724
29725 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29726
29727         PR bootstrap/43767
29728         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
29729
29730 2010-04-16  Doug Kwan  <dougkwan@google.com>
29731
29732         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
29733         (next_operand_entry_id): New static variable.
29734         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
29735         (add_to_ops_vec): Assigned unique ID to operand entry.
29736         (struct oecount_s): New field ID.
29737         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
29738         (undistribute_ops_list): Assign unique IDs to oecounts.
29739         (init_reassoc): reset next_operand_entry_id.
29740
29741 2010-04-16  Doug Kwan  <dougkwan@google.com>
29742
29743         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
29744         missing left parenthesis.
29745
29746 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
29747
29748         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
29749         *btdi_rex64 using SWI48 mode iterator.
29750         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
29751         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
29752         *jcc_btdi_mask_rex64.
29753
29754 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
29755
29756         * double-int.h (tree_to_double_int): Convert to macro.
29757         * double-int.c (tree_to_double_int): Remove.
29758
29759 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29760
29761         PR debug/43762
29762         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
29763         with want_address 2 and in case a single element list might be
29764         possible, call it again with want_address 0.
29765
29766 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
29767
29768         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
29769         case 'W' print operands for HI mode.
29770         * config/h8300/h8300.h (Y0, Y2) : New constraints.
29771         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
29772         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
29773         * config/h8300/predicate.md (bit_register_indirect_operand): New.
29774
29775         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
29776
29777         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
29778         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
29779         #xx:3 and #xx:4 mode.
29780
29781         * config/h8300/h8300.md (inverted load with HImode dest): Add
29782         support for H8300SX.
29783
29784         * config/h8300/predicate.md (bit_operand): Allow immediate values that
29785         satisfy 'U' constraint.
29786
29787 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29788
29789         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
29790         * configure: Regenerate.
29791         * config.in: Regenerate.
29792         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
29793         works.
29794
29795 2010-04-16  Richard Guenther  <rguenther@suse.de>
29796
29797         * tree.h (struct tree_decl_minimal): Move pt_uid ...
29798         (struct tree_decl_common): ... here.
29799         (DECL_PT_UID): Adjust.
29800         (SET_DECL_PT_UID): Likewise.
29801         (DECL_PT_UID_SET_P): Likewise.
29802
29803 2010-04-16  Richard Guenther  <rguenther@suse.de>
29804
29805         PR tree-optimization/43572
29806         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
29807         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
29808         * tree-flow.h (is_call_clobbered): Remove.
29809         * tree-flow-inline.h (is_call_clobbered): Likewise.
29810         * tree-dfa.c (dump_variable): Do not dump call clobber state.
29811         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
29812         (execute_return_slot_opt): Adjust.
29813         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
29814         check for call clobbered vars here.
29815         (find_tail_calls): Move tailcall verification to the
29816         proper place.
29817
29818 2010-04-16  Diego Novillo  <dnovillo@google.com>
29819
29820         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
29821
29822 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29823
29824         PR target/40603
29825         * config/arm/arm.md (cbranchqi4): New pattern.
29826         * config/arm/predicates.md (const0_operand,
29827         cbranchqi4_comparison_operator): New predicates.
29828
29829 2010-04-16  Richard Guenther  <rguenther@suse.de>
29830
29831         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
29832         (dump_gimple_stmt): Likewise.
29833
29834 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29835
29836         * recog.h (struct recog_data): New field is_operator.
29837         (struct insn_operand_data): New field is_operator.
29838         * recog.c (extract_insn): Set recog_data.is_operator.
29839         * genoutput.c (output_operand_data): Emit code to set the
29840         is_operator field.
29841         * reload.c (find_reloads): Use it rather than testing for an
29842         empty constraint string.
29843
29844         PR target/41514
29845         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
29846         If the previous insn is a cbranchsi4_insn with the same arguments,
29847         omit the compare instruction.
29848
29849         * config/arm/arm.md (addsi3_cbranch): If destination is a high
29850         register, inputs must be low registers and we need a low register
29851         scratch.  Handle alternative 2 like alternative 3.
29852
29853 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29854
29855         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
29856         don't call get_addr on both.  If one expression is a VALUE and
29857         the other a REG, check VALUE's locs if the REG isn't among them.
29858
29859 2010-04-16  Christian Bruel  <christian.bruel@st.com>
29860
29861         * config/sh/sh.h (sh_frame_pointer_required): New function.
29862         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
29863         (flag_omit_frame_pointer) Set.
29864         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
29865         (rounded_frame_size): Adjust size with outgoing_args_size.
29866         (sh_set_return_address): Must return from stack pointer.
29867         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
29868         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
29869         (ACCUMULATE_OUTGOING_ARGS): Define.
29870         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
29871         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
29872
29873 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
29874
29875         PR target/43471
29876         * config/sh/sh.c (sh_legitimize_reload_address): Use
29877         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
29878         Remove a unneeded check for offset_base.
29879
29880 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
29881
29882         * configure: Regenerated.
29883
29884 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29885
29886         * config/s390/s390.c (s390_call_save_register_used): Switch back
29887         to HARD_REGNO_NREGS.
29888
29889 2010-04-15  Richard Guenther  <rguenther@suse.de>
29890
29891         * alias.c (alias_set_subset_of): Handle alias-set zero
29892         child properly.
29893
29894 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
29895             Julian Brown  <julian@codesourcery.com>
29896
29897         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
29898         alternatives according to use of high and low regs.
29899         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
29900         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
29901         optimizing for size on Thumb-2.
29902
29903 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
29904
29905         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
29906
29907 2010-04-15  Richard Guenther  <rguenther@suse.de>
29908
29909         * tree-ssa-structalias.c (struct variable_info): Add
29910         is_fn_info flag.
29911         (new_var_info): Initialize it.
29912         (dump_constraints): Support printing last added constraints.
29913         (debug_constraints): Adjust.
29914         (dump_constraint_graph): Likewise.
29915         (make_heapvar_for): Check for NULL cfun.
29916         (get_function_part_constraint): New function.
29917         (get_fi_for_callee): Likewise.
29918         (find_func_aliases): Properly implement IPA PTA constraints.
29919         (process_ipa_clobber): New function.
29920         (find_func_clobbers): Likewise.
29921         (insert_into_field_list_sorted): Remove.
29922         (create_function_info_for): Properly allocate vars for IPA mode.
29923         Do not use insert_into_field_list_sorted.
29924         (create_variable_info_for): Properly generate constraints for
29925         global vars in IPA mode.
29926         (dump_solution_for_var): Always dump the solution.
29927         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
29928         (find_what_var_points_to): Adjust.
29929         (pt_solution_set): Change.
29930         (pt_solution_ior_into): New function.
29931         (pt_solution_empty_p): Export.
29932         (pt_solution_includes_global): Adjust.
29933         (pt_solution_includes_1): Likewise.
29934         (pt_solutions_intersect_1): Likewise.
29935         (dump_sa_points_to_info): Check some invariants.
29936         (solve_constraints): Move constraint dumping ...
29937         (compute_points_to_sets): ... here.
29938         (ipa_pta_execute): ... and here.
29939         (compute_may_aliases): Do not re-compute points-to info
29940         locally if IPA info is available.
29941         (ipa_escaped_pt): New global var.
29942         (ipa_pta_execute): Properly implement IPA PTA.
29943         * tree-into-ssa.c (dump_decl_set): Support dumping
29944         decls not in referenced-vars.
29945         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
29946         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
29947         (dump_points_to_solution): Likewise.
29948         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
29949         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
29950         (remap_gimple_stmt): Reset call clobber/use information if necessary.
29951         (copy_decl_to_var): Copy DECL_PT_UID.
29952         (copy_result_decl_to_var): Likewise.
29953         * tree.c (make_node_stat): Initialize DECL_PT_UID.
29954         (copy_node_stat): Copy it.
29955         * tree.h (DECL_PT_UID): New macro.
29956         (SET_DECL_PT_UID): Likewise.
29957         (DECL_PT_UID_SET_P): Likewise.
29958         (struct tree_decl_minimal): Add pt_uid member.
29959         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
29960         (pt_solution_empty_p): Declare.
29961         (pt_solution_set): Adjust.
29962         (ipa_escaped_pt): Declare.
29963         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
29964         * gimple-pretty-print.c (pp_points_to_solution): New function.
29965         (dump_gimple_call): Dump call clobber/use information.
29966         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
29967         * tree-pass.h (TDF_ALIAS): New dump option.
29968         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
29969         * doc/invoke.texi (-fipa-pta): Update documentation.
29970
29971 2010-04-15  Richard Guenther  <rguenther@suse.de>
29972
29973         * Makefile.in (OBJS-common): Add gimple-fold.o.
29974         (gimple-fold.o): New rule.
29975         * tree.h (maybe_fold_offset_to_reference,
29976         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
29977         prototypes ...
29978         * gimple.h: ... here.
29979         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
29980         may_propagate_address_into_dereference): Move prototypes ...
29981         * gimple.h: ... here.
29982         * tree-ssa-ccp.c (get_symbol_constant_value,
29983         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
29984         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
29985         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
29986         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
29987         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
29988         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
29989         gimplify_and_update_call_from_tree): Move ...
29990         * gimple-fold.c: ... here.  New file.
29991         (ccp_fold_builtin): Rename to ...
29992         (gimple_fold_builtin): ... this.
29993         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
29994
29995 2010-04-15  Richard Guenther  <rguenther@suse.de>
29996
29997         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
29998         fit_double_type, force_fit_type_double, add_double_with_sign,
29999         neg_double, mul_double_with_sign, lshift_double, rshift_double,
30000         lrotate_double, rrotate_double, div_and_round_double): Move ...
30001         * double-int.c: ... here.
30002         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
30003         add_double, neg_double, mul_double_with_sign, mul_double,
30004         lshift_double, rshift_double, lrotate_double, rrotate_double,
30005         div_and_round_double): Move prototypes ...
30006         * double-int.h: ... here.
30007
30008 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
30009
30010         PR target/43742
30011         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
30012         matching constraints to ensure inputs match the output.
30013
30014 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30015
30016         PR target/43742
30017         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
30018         in an input-only operand.
30019
30020 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
30021
30022         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
30023         (double_int_not, double_int_lshift, double_int_rshift): Declare.
30024         (double_int_negative_p): Convert to static inline function.
30025         * double-int.c (double_int_lshift, double_int_lshift): New functions.
30026         (double_int_negative_p): Remove.
30027         * tree.h (lshift_double, rshift_double):
30028         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
30029         * fold-const.c (fold_convert_const_int_from_real,
30030         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
30031         (lshift_double): Change type of arith argument to bool.
30032         (rshift_double): Change type of arith argument to bool. Correct
30033         comment.
30034         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30035
30036 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
30037
30038         PR target/21803
30039         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
30040         at the start and end of the then/else blocks, and omit them from the
30041         conversion.
30042         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
30043         argument; all callers changed.  Pass zero to old_insns_match_p instead.
30044         (flow_find_head_matching_sequence): New function.
30045         (old_insns_match_p): Check REG_EH_REGION notes for calls.
30046         * basic-block.h (flow_find_cross_jump,
30047         flow_find_head_matching_sequence): Declare functions.
30048
30049 2010-04-14  Jason Merrill  <jason@redhat.com>
30050
30051         PR c++/36625
30052         * c-common.c (attribute_takes_identifier_p): New fn.
30053         * c-common.h: Declare it.
30054
30055 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30056
30057         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
30058         splitter condition.
30059         (*udivmod<mode>4): Ditto.
30060
30061 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30062
30063         * config/i386/i386.md (maxmin_int): Rename code attribute from
30064         maxminiprefix and update all users.
30065         (maxmin_float): Ditto from maxminfprefix.
30066         (logic): Ditto from logicprefix.
30067         (absneg_mnemonic): Ditto from absnegprefix.
30068         * config/i386/mmx.md: Update all users of maxminiprefix,
30069         maxminfprefix and logicprefix for rename.
30070         * config/i386/sse.md: Ditto.
30071         * config/i386/sync.md (sync_<code><mode>): Update for
30072         logicprefix rename.
30073
30074 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30075
30076         PR 42966
30077         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
30078         warnings converted to errors.
30079
30080 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30081
30082         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
30083         used insn_type variable.
30084         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
30085         to avoid set-but-not-used warning.
30086
30087 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30088
30089         * df-core.c (df_ref_debug): Change format string placeholder
30090         from 0x%x to %#x.
30091         * dwarf2asm.c (dw2_asm_output_data_raw,
30092         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
30093         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
30094         * dwarf2out.c (output_cfi, output_cfi_directive,
30095         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
30096         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
30097         Ditto.
30098         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
30099         * print-rtl.c (print_rtx): Ditto.
30100
30101 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
30102
30103         PR middle-end/42694
30104         * builtins.c (expand_builtin_pow_root): New function to expand pow
30105         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
30106         series of sqrt and cbrt calls under -ffast-math.
30107         (expand_builtin_pow): Call it.
30108
30109 2010-04-14  Michael Matz  <matz@suse.de>
30110
30111         PR tree-optimization/42963
30112         * tree-cfg.c (touched_switch_bbs): New static variable.
30113         (group_case_labels_stmt): New function broken out from ...
30114         (group_case_labels): ... here, use the above.
30115         (start_recording_case_labels): Allocate touched_switch_bbs.
30116         (end_recording_case_labels): Deallocate it, call
30117         group_case_labels_stmt.
30118         (gimple_redirect_edge_and_branch): Remember index of affected BB.
30119
30120 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30121
30122         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
30123         from insn template.
30124
30125 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30126
30127         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
30128
30129 2010-04-13  Jan Hubicka  <jh@suse.cz>
30130
30131         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
30132         of optimized out static functions.
30133         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
30134         cost computation.  Also sanity check for overflows.
30135         (update_caller_keys): Update cgraph_edge_badness call; properly
30136         update fibheap and sanity check that it is up to date.
30137         (add_new_edges_to_heap): Update cgraph_edge_badness.
30138         (cgraph_decide_inlining_of_small_function): Likewise;
30139         add sanity checking that badness in heap is up to date;
30140         improve dumping of reason; Update badness of calls to the
30141         offline copy of function currently inlined; dump badness
30142         of functions not inlined because of unit growth limits.
30143
30144 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
30145
30146         PR middle-end/32628
30147         * c-common.c (pointer_int_sum): Disregard overflow that occured only
30148         because of sign-extension change when converting to sizetype here...
30149         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
30150
30151         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
30152         the folding to constants.  Remove redundant final conversion.
30153         (fold_binary) <associate>: Do not associate if the re-association of
30154         constants alone overflows.
30155         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
30156         to the end of the list.
30157         (multiple_of_p) <COND_EXPR>: New case.
30158
30159 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30160
30161         * opt-functions.awk (opt_sanitized_name): New.
30162         (opt_enum): New.
30163         * optc-gen.awk: Use it
30164         * opth-gen.awk: Use it.
30165
30166 2010-04-13  Martin Jambor  <mjambor@suse.cz>
30167
30168         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
30169         (sra_modify_assign): Delete stmts loading dead data even if racc has no
30170         children.  Call replace_uses_with_default_def_ssa_name to handle
30171         SSA_NAES on lhs.
30172
30173 2010-04-13  Michael Matz  <matz@suse.de>
30174
30175         PR middle-end/43730
30176         * builtins.c (expand_builtin_interclass_mathfn): Also create
30177         a register if the predicate doesn't match.
30178
30179 2010-04-13  Diego Novillo  <dnovillo@google.com>
30180
30181         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
30182         * c-pch.c: Include timevar.h.
30183         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
30184         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
30185         * ggc-common.c: Include timevar.h.
30186         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
30187         * timevar.def (TV_PCH_SAVE): Define.
30188         (TV_PCH_CPP_SAVE): Define.
30189         (TV_PCH_PTR_REALLOC): Define.
30190         (TV_PCH_PTR_SORT): Define.
30191         (TV_PCH_RESTORE): Define.
30192         (TV_PCH_CPP_RESTORE): Define.
30193
30194 2010-04-13  Michael Matz  <matz@suse.de>
30195
30196         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
30197         into MINUS_EXPRs.
30198         (can_reassociate_p): New function.
30199         (break_up_subtract_bb, reassociate_bb): Use it.
30200
30201 2010-04-13  Richard Guenther  <rguenther@suse.de>
30202
30203         PR bootstrap/43737
30204         * builtins.c (c_readstr): Fix assert.
30205
30206 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
30207
30208         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
30209         when generating cltd insn.
30210
30211         (*ashl<mode>3_1): Remove special handling for register operand 2.
30212         (*ashlsi3_1_zext): Ditto.
30213         (*ashlhi3_1): Ditto.
30214         (*ashlhi3_1_lea): Ditto.
30215         (*ashlqi3_1): Ditto.
30216         (*ashlqi3_1_lea): Ditto.
30217         (*<shiftrt_insn><mode>3_1): Ditto.
30218         (*<shiftrt_insn>si3_1_zext): Ditto.
30219         (*<shiftrt_insn>qi3_1_slp): Ditto.
30220         (*<rotate_insn><mode>3_1): Ditto.
30221         (*<rotate_insn>si3_1_zext): Ditto.
30222         (*<rotate_insn>qi3_1_slp): Ditto.
30223
30224 2010-04-13  Richard Guenther  <rguenther@suse.de>
30225
30226         * tree-ssa-structalias.c (callused_id): Remove.
30227         (call_stmt_vars): New.
30228         (get_call_vi): Likewise.
30229         (lookup_call_use_vi): Likewise.
30230         (lookup_call_clobber_vi): Likewise.
30231         (get_call_use_vi): Likewise.
30232         (get_call_clobber_vi): Likewise.
30233         (make_transitive_closure_constraints): Likewise.
30234         (handle_const_call): Adjust to do per-call call-used handling.
30235         (handle_pure_call): Likewise.
30236         (find_what_var_points_to): Remove general callused handling.
30237         (init_base_vars): Likewise.
30238         (init_alias_vars): Initialize call_stmt_vars.
30239         (compute_points_to_sets): Process call-used and call-clobbered
30240         vars for call statements.
30241         (delete_points_to_sets): Free call_stmt_vars.
30242
30243 2010-04-13  Richard Guenther  <rguenther@suse.de>
30244
30245         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30246         Only add RW dependence for dependence distance zero.
30247         Adjust maximal vectorization factor according to dependences.
30248         Move alignment handling ...
30249         (vect_find_same_alignment_drs): ... here.  New function.
30250         (vect_analyze_data_ref_dependences): Adjust.
30251         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
30252         (vect_analyze_data_refs): Adjust minimal vectorization factor
30253         according to data references.
30254         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
30255         dependences before determining the vectorization factor.
30256         Analyze alignment after determining the vectorization factor.
30257         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
30258         dependences before alignment.
30259         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
30260         Adjust prototype.
30261         (vect_analyze_data_refs): Likewise.
30262         (MAX_VECTORIZATION_FACTOR): New define.
30263
30264 2010-04-13  Duncan Sands  <baldrick@free.fr>
30265
30266         * except.h (lang_eh_type_covers): Remove.
30267         * except.c (lang_eh_type_covers): Likewise.
30268
30269 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30270             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30271
30272         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
30273         * config/s390/s390.c: Replace UNTIS_PER_WORD with
30274         UNITS_PER_LONG where it is ABI relevant.
30275         (s390_return_addr_rtx): Likewise.
30276         (s390_back_chain_rtx): Likewise.
30277         (s390_frame_area): Likewise.
30278         (s390_frame_info): Likewise.
30279         (s390_initial_elimination_offset): Likewise.
30280         (save_gprs): Likewise.
30281         (s390_emit_prologue): Likewise.
30282         (s390_emit_epilogue): Likewise.
30283         (s390_function_arg_advance): Likewise.
30284         (s390_function_arg): Likewise.
30285         (s390_va_start): Likewise.
30286         (s390_gimplify_va_arg): Likewise.
30287         (s390_function_profiler): Likewise.
30288         (s390_optimize_prologue): Likewise.
30289         (s390_rtx_costs): Likewise.
30290         (s390_secondary_reload): Likewise.
30291         (s390_promote_function_mode): Likewise.
30292         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
30293         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
30294         registers available.
30295         (s390_unwind_word_mode): New function.
30296         (s390_function_value): Split 64 bit values into register pair if
30297         used as return value.
30298         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
30299         function call parameters.  Handle parallels.
30300         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
30301         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
30302         (DWARF_CIE_DATA_ALIGNMENT): New macro.
30303         (s390_expand_setmem): Remove unused variable src_addr.
30304         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
30305         deal with 64 bit registers.
30306         * config/s390/s390.h: Define __zarch__ predefined macro.
30307         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
30308         (UNITS_PER_LONG): New macro.
30309         * libjava/include/s390-signal.h: Define extended ucontext
30310         structure containing the upper halfs of the 64 bit registers.
30311
30312 2010-04-13  Simon Baldwin  <simonb@google.com>
30313
30314         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
30315
30316 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
30317
30318         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
30319         rvalue on the RHS if the LHS is of a non-renamable type.
30320         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
30321
30322 2010-04-13  Matthias Klose  <doko@ubuntu.com>
30323
30324         * gcc.c (cc1_options): Handle -iplugindir before processing
30325         the cc1 spec. Only add -iplugindir once.
30326         (cpp_unique_options): Add -iplugindir option if -fplugin* options
30327         found.
30328         * common.opt (iplugindir): Remove `Separate' property, initialize.
30329         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
30330         option.
30331         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
30332         (distclean): Remove plugin dir.
30333         * doc/invoke.texi: Document -iplugindir.
30334
30335 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
30336
30337         * doc/plugins.texi (Loading Plugins): Document short
30338         -fplugin=foo option.
30339         (Plugin API): Mention default_plugin_dir_name function.
30340
30341         * gcc.c (find_file_spec_function): Add new declaration.
30342         (static_spec_func): Use it for "find-file".
30343         (find_file_spec_function): Add new function.
30344         (cc1_options): Add -iplugindir option if -fplugin* options found.
30345
30346         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
30347
30348         * plugin.c (add_new_plugin): Updated comment, and handle short
30349         plugin name.
30350         (default_plugin_dir_name): Added new function.
30351
30352         * common.opt (iplugindir): New option to set the plugin directory.
30353
30354 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
30355
30356         * config/i386/i386.md (any_rotate): New code iterator.
30357         (rotate_insn): New code attribute.
30358         (rotate): Ditto.
30359         (SWIM124): New mode iterator.
30360         (<rotate_insn>ti3): New expander.
30361         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
30362         any_rotate code iterator.
30363         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
30364         using any_rotate code iterator and SWIM124 mode iterator.
30365         (ix86_rotlti3): New insn_and_split pattern.
30366         (ix86_rotrti3): Ditto.
30367         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
30368         ix86_rotl{di,ti}3 patterns.
30369         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
30370         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
30371         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
30372         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
30373         code iterator and SWI mode iterator.
30374         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
30375         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
30376         code iterator.
30377         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
30378         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
30379         (bswap rotatert splitter): Add splitter.
30380         (bswap splitter): Macroize splitter using any_rotate code iterator.
30381         Add insn predicate to split only for TARGET_USE_XCHGB or when
30382         optimizing function for size.
30383
30384 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30385
30386         * config/pa/pa.c (emit_move_sequence): Remove use of
30387         deleted variable flag_argument_noalias.
30388
30389 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30390
30391         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
30392         configurations.
30393         Add to unsupported targets list.
30394         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
30395         sparc*-sun-solaris2.[567]* from target lists.
30396         * configure: Regenerate.
30397         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
30398         removal.
30399         Remove Solaris 7 patch references.
30400         (Specific, sparc-sun-solaris2.7): Removed.
30401         (sparc-sun-solaris2*): Update Solaris 7 example.
30402         (sparc64-*-solaris2*): Likewise.
30403
30404 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30405
30406         * config.build (alpha*-dec-osf4*): Remove.
30407         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
30408         of obsolete configurations.
30409         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
30410         support.
30411         * config/alpha/t-osf4: Renamed to ...
30412         * config/alpha/t-osf5: ... this.
30413         * config/alpha/osf.h: Renamed to ...
30414         * config/alpha/osf5.h: ... this.
30415         Merged old osf5.h contents.
30416         Update comments.
30417         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
30418         (EXTRA_SPECS): Removed.
30419         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
30420         reflect removal of Tru64 UNIX V4.0/V5.0 support.
30421         Document that.
30422
30423 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30424
30425         * doc/contrib.texi (Contributors, Rainer Orth): Update.
30426
30427 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
30428
30429         PR/43702
30430         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
30431         __thiscall convention.
30432
30433 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30434
30435         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
30436         orig_base.
30437         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
30438
30439 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30440
30441         * function.c (assign_parms_initialize_all): Add unused attribute
30442         to fntype.
30443
30444 2010-04-12  Richard Guenther  <rguenther@suse.de>
30445
30446         * gsstruct.def (GSS_CALL): New.
30447         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
30448         * gimple.h: Include tree-ssa-alias.h.
30449         (struct gimple_statement_call): New.
30450         (union gimple_statement_struct_d): Add gimple_call member.
30451         (gimple_call_reset_alias_info): Declare.
30452         (gimple_call_use_set): New function.
30453         (gimple_call_clobber_set): Likewise.
30454         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
30455         * gimple.c (gimple_call_reset_alias_info): New function.
30456         (gimple_build_call_1): Call it.
30457         * lto-streamer-in.c (input_gimple_stmt): Likewise.
30458         * tree-inline.c (remap_gimple_stmt): Likewise.
30459         (expand_call_inline): Remove callused handling.
30460         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
30461         * tree-dfa.c (dump_variable): Likewise.
30462         * tree-parloops.c (parallelize_loops): Likewise.
30463         * tree-ssa.c (init_tree_ssa): Likewise.
30464         (delete_tree_ssa): Likewise.
30465         * tree-flow-inline.h (is_call_used): Remove.
30466         * tree-flow.h (struct gimple_df): Remove callused member.
30467         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
30468         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
30469         (ref_maybe_used_by_call_p_1): Simplify.
30470         (call_may_clobber_ref_p_1): Likewise.
30471         * tree-ssa-structalias.c (compute_points_to_sets): Set
30472         the call stmt used and clobbered sets.
30473         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
30474         (find_tail_calls): Verify the tail call.
30475
30476 2010-04-12  Richard Guenther  <rguenther@suse.de>
30477
30478         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
30479         single-iteration always-inline inlining.
30480         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
30481         (cgraph_decide_inlining): Do not handle always-inline specially.
30482         (try_inline): Remove always-inline cycle detection special case.
30483         Do not recurse on always-inlines.
30484         (cgraph_early_inlining): Do not iterate if not optimizing.
30485         (cgraph_gate_early_inlining): remove.
30486         (pass_early_inline): Run unconditionally.
30487         (gate_cgraph_decide_inlining): New function.
30488         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
30489         not inlining or optimizing.
30490         (cgraph_decide_inlining_of_small_functions): Also consider
30491         always-inline functions.
30492         (cgraph_default_inline_p): Return true for nodes which should
30493         disregard inline limits.
30494         (estimate_function_body_sizes): Assume zero size and time for
30495         nodes which are marked as disregarding inline limits.
30496         (cgraph_decide_recursive_inlining): Do not perform recursive
30497         inlining on always-inline nodes.
30498
30499 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
30500
30501         PR bootstrap/43699
30502         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
30503         for exprs satisfying handled_component_p.
30504
30505 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
30506
30507         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
30508         non-constant aggregate elements.
30509
30510         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
30511         is a real initialization.
30512
30513 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
30514
30515         PR c/36774
30516         * c-decl.c (start_function): Move forward check for nested function.
30517
30518 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
30519
30520         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
30521         * config/sh/sh.c: Include reload.h.
30522         (sh_legitimize_reload_address): New.
30523         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
30524         sh_legitimize_reload_address.
30525
30526 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30527
30528         * config/sh/sh.md (*movqi_pop): New insn pattern.
30529         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
30530
30531 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30532
30533         * config/i386/i386.md (any_shiftrt): New code iterator.
30534         (shiftrt_insn): New code attribute.
30535         (shiftrt): Ditto.
30536         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
30537         using any_shiftrt code iterator.
30538         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
30539         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
30540         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
30541         pattern from corresponding peephole2 patterns.
30542         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
30543         using any_shiftrt code iterator.
30544         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
30545         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
30546         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
30547         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
30548         *{ashr,lshr}<mode>3_cmp_zext.
30549         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
30550
30551 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30552
30553         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
30554         scratch register.
30555         (*lshr<mode>3_cconly): Ditto.
30556
30557 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30558
30559         * config/i386/i386.md (lshr<mode>3): Macroize expander from
30560         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30561         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30562         pattern from *lshr{di,ti}3_1 and corresponding splitters using
30563         DWI mode iterator.
30564         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30565         from corresponding peephole2 patterns.
30566         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
30567         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
30568         and *lshrdi3_1_rex64 using SWI mode iterator.
30569         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
30570         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
30571         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
30572         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
30573         and *lshrdi3_cmp_rex64 using SWI mode iterator.
30574         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
30575         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
30576         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
30577         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
30578         SWI mode iterator.
30579
30580 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
30581
30582         * config/i386/i386.md (ashr<mode>3): Macroize expander from
30583         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30584         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30585         pattern from *ashr{di,ti}3_1 and corresponding splitters using
30586         DWI mode iterator.
30587         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30588         from corresponding peephole2 patterns.
30589         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
30590         (ashrsi3_cvt): Rename from ashrsi3_31.
30591         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
30592         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
30593         and x86_64_shift_adj_3 using SWI48 mode iterator.
30594         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
30595         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
30596         and *ashrdi3_1_rex64 using SWI mode iterator.
30597         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
30598         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
30599         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
30600         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
30601         and *ashrdi3_cmp_rex64 using SWI mode iterator.
30602         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
30603         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
30604         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
30605         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
30606         SWI mode iterator.
30607         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
30608         * config/i386/i386.c (ix86_split_ashr): Update for renamed
30609         x86_shift<mode>_adj_3 expanders.
30610
30611 2010-04-10  Wei Guozhi  <carrot@google.com>
30612
30613         PR target/42601
30614         * config/arm/arm.c (arm_pic_static_addr): New function.
30615         (legitimize_pic_address): Call arm_pic_static_addr when it detects
30616         a static symbol.
30617         (arm_output_addr_const_extra): Output expression for new pattern.
30618         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
30619
30620 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
30621
30622         * ira-costs.c (record_reg_classes): Ignore alternatives that are
30623         not enabled.
30624
30625         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
30626         * web.c: Include "insn-config.h" and "recog.h".
30627         (union_match_dups): New function.
30628         (web_main): Call it.
30629         (union_defs): Don't try to recognize match_dups.
30630
30631         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
30632         if doing so would replace the entire pattern.
30633
30634 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30635
30636         PR target/43707
30637         PR target/43709
30638         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
30639         and splitter pattern.  Change splitter operand 1 predicate to
30640         nonmemory_operand.
30641
30642 2010-04-09  Martin Jambor  <mjambor@suse.cz>
30643
30644         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
30645         lattices are addresses of CONST_DECLs with the same initial value.
30646         (ipcp_print_all_lattices): Print values of CONST_DECLs.
30647         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
30648
30649 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
30650             Bernd Schmidt  <bernds@codesourcery.com>
30651
30652         * loop-invariant.c (replace_uses): New static function.
30653         (move_invariant_reg): Use it to ensure we can replace the uses.
30654
30655 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
30656
30657         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
30658         function template.
30659         (picochip_override_options): Enable section anchors only above -O1.
30660         (picochip_reorg): Fixed a couple of build warnings.
30661
30662 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30663
30664         * configure.ac (plugin -rdynamic test): Log result.
30665         * configure: Regenerate.
30666         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
30667         (RDYNAMIC_SPEC): Define.
30668         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
30669
30670 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30671
30672         * configure.ac: Determine Sun ld version numbers.
30673         (comdat_group): Restrict GNU ld version checks to gld.
30674         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
30675         (enable_comdat): Support --enable-comdat.
30676         * configure: Regenerate.
30677         * doc/install.texi (Configuration): Document --enable-comdat.
30678
30679 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30680
30681         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
30682         * config/sol2-gld.h: ... here.
30683         * config.gcc (sparc*-*-solaris2*): Reflect this.
30684         (i[34567]86-*-solaris2*): Use it.
30685
30686 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
30687
30688         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
30689         setup_clocks_p.
30690         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
30691
30692 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30693
30694         PR 42965
30695         * diagnostic.c (diagnostic_initialize): Initialize
30696         some_warnings_are_errors.
30697         (diagnostic_finish): New.
30698         (diagnostic_action_after_output): Call it before exiting.
30699         (diagnostic_report_diagnostic): Do not print message here. Set
30700         some_warnings_are_errors.
30701         * diagnostic.h (diagnostic_context): Delete
30702         issue_warnings_are_errors_message. Add some_warnings_are_errors.
30703         (diagnostic_finish): Declare.
30704         * toplev.c (toplev_main): Call it before exit.
30705
30706 2010-04-09  Jason Merrill  <jason@redhat.com>
30707
30708         PR c++/42623
30709         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
30710         for incomplete type.
30711
30712         PR c++/41788
30713         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
30714         based on a warning flag.
30715
30716 2010-04-09  Richard Guenther  <rguenther@suse.de>
30717
30718         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
30719
30720 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
30721
30722         PR bootstrap/43684
30723         * varasm.c (default_assemble_visibility): Wrap vars that are
30724         set, but unused, by targets without GAS.
30725         * config/rs6000/rs6000.c (paired_emit_vector_compare):
30726         Remove set, but unused, vars.
30727         (rs6000_legitimize_tls_address): Likewise.
30728         (altivec_expand_dst_builtin): Likewise.
30729         * config/darwin.c (machopic_classify_symbol): Likewise.
30730         (machopic_indirection_name): Likewise.
30731
30732 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30733
30734         * config/i386/i386.md (DWI): New mode iterator.
30735         (S): New mode attribute.
30736         (shift_operand): Ditto.
30737         (shift_immediate_operand): Ditto.
30738         (ashl_input_operand): Ditto.
30739         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
30740         using SDWIM mode iterator.
30741         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30742         pattern from *ashl{di,ti}3_1 and corresponding splitters using
30743         DWI mode iterator.
30744         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
30745         from corresponding peephole2 patterns.
30746         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
30747         and x86_64_shift_adj_1 using SWI48 mode iterator.
30748         (x86_shift<mode>_adj_2): Ditto.
30749         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
30750         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
30751         using SWI48 mode iterator.
30752         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
30753         *ashldi3_cmp_rex64 using SWI mode iterator.
30754         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
30755         *ashldi3_cconly_rex64 using SWI mode iterator.
30756         * config/i386/i386.c (ix86_split_ashl): Update for renamed
30757         x86_shift<mode>_adj_{1,2}.
30758         (ix86_split_ashr): Ditto.
30759         (ix86_split_lshr): Ditto.
30760
30761 2010-04-09  Richard Guenther  <rguenther@suse.de>
30762
30763         * target.h (builtin_conversion): Pass in input and output types.
30764         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
30765         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
30766         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
30767         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
30768
30769         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
30770         Handle AVX modes.
30771         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
30772
30773 2010-04-09  Richard Guenther  <rguenther@suse.de>
30774
30775         PR target/43152
30776         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
30777
30778 2010-04-09  Richard Guenther  <rguenther@suse.de>
30779
30780         * tree-vectorizer.h (struct _stmt_vec_info): Document
30781         that vectype is the type of the LHS.
30782         (supportable_widening_operation, supportable_narrowing_operation):
30783         Get both input and output vector types as arguments.
30784         (vect_is_simple_use_1): Declare.
30785         (get_same_sized_vectype): Likewise.
30786         * tree-vect-loop.c (vect_determine_vectorization_factor):
30787         Set STMT_VINFO_VECTYPE to the vector type of the def.
30788         (vectorizable_reduction): Adjust.
30789         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
30790         Adjust.  Specify the output vector type.
30791         (vect_pattern_recog_1): Adjust.
30792         * tree-vect-stmts.c (get_same_sized_vectype): New function.
30793         (vectorizable_call): Adjust.
30794         (vectorizable_conversion): Likewise.
30795         (vectorizable_operation): Likewise.
30796         (vectorizable_type_demotion): Likewise.
30797         (vectorizable_type_promotion): Likewise.
30798         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
30799         the def.
30800         (vect_is_simple_use_1): New function.
30801         (supportable_widening_operation): Get both input and output
30802         vector types.
30803         (supportable_narrowing_operation): Likewise.
30804         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
30805
30806 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
30807
30808         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
30809         __thiscall and _thiscall as predefined macros.
30810         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
30811         thiscall attribute handling.
30812         (ix86_comp_type_attributes): Likewise.
30813         (ix86_function_regparm): Likewise.
30814         (ix86_return_pops_args): Likewise.
30815         (init_cumulative_args): Likewise.
30816         (find_drap_reg): Likewise.
30817         (ix86_static_chain): Likewise.
30818         (x86_this_parameter): Likewise.
30819         (x86_output_mi_thunk): Likewise.
30820         (ix86_attribute_table): Add description for thiscall attribute.
30821         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
30822         * doc/extend.texi: Add documentation for thiscall.
30823
30824 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30825
30826         PR c++/28584
30827         * c.opt (Wint-to-pointer-cast): Available in C++.
30828         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
30829
30830 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
30831
30832         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
30833         * calls.c (expand_call): Pass the function type to aggregate_value_p.
30834         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
30835         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
30836         function type instead.  Reorder and simplify checks.
30837
30838         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
30839
30840 2010-04-08  Jing Yu  <jingyu@google.com>
30841             Zdenek Dvorak  <ook@ucw.cz>
30842
30843         PR tree-optimization/42720
30844         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
30845         loop unswitch conditions here from ...
30846         (tree_unswitch_single_loop): ... here.
30847
30848 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30849
30850         * tree-if-conv.c: Fix comments and simplify logic.
30851
30852 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
30853
30854         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
30855         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
30856         (main_tree_if_conversion): Update call to tree_if_conversion.
30857
30858 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30859
30860         PR 42485
30861         * doc/invoke.texi (-b,-V): Delete.
30862         * doc/tm.texi: Do not mention -b.
30863         * gcc.c (display_help): Delete -b and -V.
30864         (process_command): Delete -b and -V.
30865         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
30866
30867 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
30868             Wolfgang Gellerich  <gellerich@de.ibm.com>
30869
30870         Implement target hook for loop unrolling
30871         * target.h (loop_unroll_adjust): Add a new target hook function.
30872         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
30873         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
30874         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
30875         (s390_loop_unroll_adjust): Implement the new target hook for s390.
30876         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
30877         target hook.
30878         (decide_unroll_stupid): Likewise.
30879
30880 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30881
30882         PR target/43643
30883         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
30884
30885 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30886
30887         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
30888         (Specific, *-*-solaris2*): Likewise.
30889         Don't prefer Sun as over GNU as.
30890
30891 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
30892
30893         * config/s390/s390.c (override_options): Adjust the z10 defaults
30894         for max-unroll-times, max-completely-peeled-insns
30895         and max-completely-peel-times.
30896
30897 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30898
30899         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
30900         instructions for z10.
30901         (s390_expand_setmem): Likewise.
30902         (s390_expand_cmpmem): Likewise.
30903
30904 2010-04-08  Richard Guenther  <rguenther@suse.de>
30905
30906         PR tree-optimization/43679
30907         * tree-ssa-pre.c (eliminate): Only propagate copies.
30908
30909 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30910
30911         PR bootstrap/43681
30912         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
30913         set but not used variable warning.
30914
30915 2010-04-08  Wei Guozhi  <carrot@google.com>
30916
30917         PR target/41653
30918         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
30919         (arm_size_rtx_costs): Call the new function when optimized for size.
30920
30921 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
30922
30923         PR debug/43670
30924         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
30925         op0 is not a MEM, just return NULL instead of assertion
30926         failure.
30927         (discover_nonconstant_array_refs): Don't walk debug stmts.
30928
30929 2010-04-08  Doug Kwan  <dougkwan@google.com>
30930
30931         * configure.ac: Recognize gold and do not use its version number
30932         to test ld features.
30933         * configure: Regenerate.
30934
30935 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
30936
30937         PR middle-end/40815
30938         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
30939         (negate_value): Move code to push elements to broken_up_substracts ...
30940         (eliminate_plus_minus_pair): ... here.  Push operands that have no
30941         negative pair to plus_negates.
30942         (repropagate_negates, init_reassoc, fini_reassoc): Update.
30943
30944 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30945
30946         * doc/install.texi (Configuration): Move description of
30947         --enable-lto, --with-libelf*, --enable-gold from Java section to
30948         general section.
30949
30950         * doc/generic.texi (Working with declarations)
30951         (Function Properties, C and C++ Trees): Fix typos.
30952         * doc/sourcebuild.texi (Top Level): Likewise.
30953
30954 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
30955
30956         PR c/18624
30957         * tree.h (DECL_READ_P): Define.
30958         (struct tree_decl_common): Add decl_read_flag.
30959         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
30960         a set but not used warning.
30961         (merge_decls): Merge DECL_READ_P flag.
30962         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
30963         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
30964         * c-common.c (handle_used_attribute, handle_unused_attribute):
30965         Likewise.
30966         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
30967         New prototypes.
30968         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
30969         New functions.
30970         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
30971         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
30972         c_parser_binary_expression, c_parser_cast_expression,
30973         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
30974         Call default_function_array_read_conversion instead of
30975         default_function_array_conversion where needed.
30976         (c_parser_unary_expression, c_parser_conditional_expression,
30977         c_parser_postfix_expression_after_primary, c_parser_initelt):
30978         Likewise.  Call mark_exp_read where needed.
30979         (c_parser_statement_after_labels, c_parser_asm_operands,
30980         c_parser_typeof_specifier, c_parser_sizeof_expression,
30981         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
30982         where needed.
30983         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
30984         New.
30985         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
30986         (warn_unused_but_set_parameter): Default to warn_unused
30987         && extra_warnings.
30988         * doc/invoke.texi: Document -Wunused-but-set-variable and
30989         -Wunused-but-set-parameter.
30990
30991         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
30992         used count variable.
30993         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
30994         when operandN variables aren't used in the body of the expander
30995         or splitter.
30996         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
30997         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
30998         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
30999         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
31000         FOR_EACH_IMM_USE_ON_STMT): Likewise.
31001         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
31002         * tree.c (PROCESS_ARG): Likewise.
31003
31004 2010-04-07  Simon Baldwin  <simonb@google.com>
31005
31006         * diagnostic.h (diagnostic_override_option_index): New macro to
31007         set a diagnostic's option_index.
31008         * c-tree.h (c_cpp_error): Add warning reason argument.
31009         * opts.c (_warning_as_error_callback): New.
31010         (register_warning_as_error_callback): Store callback for
31011         warnings enabled via enable_warning_as_error.
31012         (enable_warning_as_error): Call callback, minor code tidy.
31013         * opts.h (register_warning_as_error_callback): Declare.
31014         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
31015         response to -Werror=.
31016         (c_common_init_options): Register warning_as_error_callback in opts.c.
31017         * common.opt: Add -Wno-cpp option.
31018         * c-common.c (struct reason_option_codes_t): Map cpp warning
31019         reason codes to gcc option indexes.
31020         * (c_option_controlling_cpp_error): New function, lookup the gcc
31021         option index for a cpp warning reason code.
31022         * (c_cpp_error): Add warning reason argument, call
31023         c_option_controlling_cpp_error for diagnostic_override_option_index.
31024         * doc/invoke.texi: Document -Wno-cpp.
31025
31026 2010-04-07  Richard Guenther  <rguenther@suse.de>
31027
31028         * ipa-reference.c (mark_load): Use get_base_address.
31029         (mark_store): Likewise.
31030
31031         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
31032         inserting GIMPLE_NOPs into the IL.
31033         * tree-ssa-structalias.c (get_constraint_for_component_ref):
31034         Explicitly strip handled components and indirect references.
31035
31036         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
31037         folding address expressions.
31038         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
31039         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
31040         operand_equal_p to compare decls.
31041         (ptr_deref_may_alias_decl_p): Likewise.
31042         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
31043         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
31044         Handle reversed comparison ops.
31045         * tree-sra.c (asm_visit_addr): Use get_base_address.
31046         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
31047         * ipa-reference.c (mark_address): Use get_base_address.
31048
31049 2010-04-07  Richard Guenther  <rguenther@suse.de>
31050
31051         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
31052         Propagate constants everywhere.
31053
31054 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31055
31056         PR debug/43516
31057         * tree.c (MAX_INT_CACHED_PREC): Define.
31058         (nonstandard_integer_type_cache): New array.
31059         (build_nonstandard_integer_type): Cache results for precision
31060         <= MAX_INT_CACHED_PREC.
31061
31062 2010-04-07  Richard Guenther  <rguenther@suse.de>
31063
31064         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
31065         -fargument-noalias-global, -fargument-noalias-anything): Remove.
31066         * common.opt: Likewise.
31067         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
31068         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
31069         (nonoverlapping_memrefs_p): Likewise.
31070         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
31071         * opts.c (common_handle_option): Handle OPT_fargument_alias,
31072         OPT_fargument_noalias, OPT_fargument_noalias_anything and
31073         OPT_fargument_noalias_global for backward compatibility.
31074
31075 2010-04-07  Richard Guenther  <rguenther@suse.de>
31076
31077         PR tree-optimization/43270
31078         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
31079         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
31080         * tree-ssa-pre.c (phi_translate_1): Adjust.
31081         (fully_constant_expression): Split out vn_reference handling to ...
31082         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
31083         Fold reads from constant strings.
31084         (vn_reference_lookup): Handle fully constant references.
31085         (vn_reference_lookup_pieces): Likewise.
31086         * Makefile.in (expmed.o-warn): Add -Wno-error.
31087
31088 2010-04-07  Martin Jambor  <mjambor@suse.cz>
31089
31090         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
31091
31092 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
31093
31094         PR driver/41594
31095         * gcc.c: Add -static-libstdc++ to list of recognized options.
31096
31097 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31098
31099         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
31100
31101 2010-04-07  Richard Guenther  <rguenther@suse.de>
31102
31103         PR middle-end/42617
31104         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
31105         bases build simple mem attributes to retain points-to information.
31106
31107 2010-04-07  Richard Guenther  <rguenther@suse.de>
31108
31109         PR middle-end/42617
31110         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
31111         preserve points-to related information.
31112
31113 2010-04-07  Richard Guenther  <rguenther@suse.de>
31114
31115         PR middle-end/42617
31116         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
31117         discard plain indirect references.
31118         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
31119         * tree.c (tree_nop_conversion): Likewise.
31120
31121 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
31122
31123         PR debug/43628
31124         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
31125
31126 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
31127
31128         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
31129         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
31130
31131 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31132
31133         * tree-if-conv.c: Fix indentation and comments.
31134
31135 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31136
31137         * tree-if-conv.c: Sort static functions in topological order.
31138
31139 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31140
31141         * tree-if-conv.c: Fix indentation and comments.
31142
31143 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31144
31145         PR middle-end/43519
31146         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
31147         lang_hooks.types.type_for_size instead of
31148         build_nonstandard_integer_type.
31149         When converting an unsigned type to signed, double its precision.
31150         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
31151         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
31152         (graphite_create_new_loop_guard): When ub + 1 wraps around,
31153         use lb <= ub.
31154
31155 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31156
31157         PR middle-end/43519
31158         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
31159         POINTER_PLUS_EXPR for pointer types.
31160
31161 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31162
31163         PR middle-end/43519
31164         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
31165         * graphite-clast-to-gimple.c: Include langhooks.h.
31166         (max_signed_precision_type): New.
31167         (max_precision_type): Takes two types as arguments.
31168         (precision_for_value): New.
31169         (precision_for_interval): New.
31170         (gcc_type_for_interval): New.
31171         (gcc_type_for_value): New.
31172         (gcc_type_for_clast_term): New.
31173         (gcc_type_for_clast_red): New.
31174         (gcc_type_for_clast_bin): New.
31175         (gcc_type_for_clast_expr): Split up into several functions.
31176         (gcc_type_for_clast_eq): Rewritten.
31177         (compute_bounds_for_level): New.
31178         (compute_type_for_level_1): New.
31179         (compute_type_for_level): New.
31180         (gcc_type_for_cloog_iv): Removed.
31181         (gcc_type_for_iv_of_clast_loop): Rewritten.
31182         (graphite_create_new_loop): Compute the lower and upper bound types
31183         with gcc_type_for_clast_expr.
31184         (graphite_create_new_loop_guard): Same.
31185         (find_cloog_iv_in_expr): Removed.
31186         (compute_cloog_iv_types_1): Removed.
31187         (compute_cloog_iv_types): Removed.
31188         (gloog): Do not call compute_cloog_iv_types.
31189         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
31190         GBB_CLOOG_IV_TYPES.
31191         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
31192         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
31193         (GBB_CLOOG_IV_TYPES): Removed.
31194
31195 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31196
31197         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
31198         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
31199         (detect_commutative_reduction): Same.
31200
31201 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31202
31203         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
31204         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
31205         argument.
31206         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
31207         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
31208         (rewrite_commutative_reductions_out_of_ssa): Same.
31209         * passes.c (execute_function_todo): Call verify_ssa for every pass
31210         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
31211         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
31212         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
31213         with an extra argument.
31214         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
31215         verify_ssa only when the extra argument is true.
31216         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
31217         with an extra argument.
31218         (tree_transform_and_unroll_loop): Same.
31219
31220 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31221
31222         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
31223         for all the passes of the LNO having LOOP_CLOSED_SSA.
31224         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
31225         * tree-loop-distribution.c (pass_loop_distribution): Same.
31226         * tree-pass.h (TODO_verify_loops): Removed.
31227         * tree-ssa-loop.c (pass_tree_loop_init): Same.
31228         (pass_lim): Same.
31229         (pass_tree_unswitch): Same.
31230         (pass_predcom): Same.
31231         (pass_vectorize): Same.
31232         (pass_linear_transform): Same.
31233         (pass_graphite_transforms): Same.
31234         (pass_iv_canon): Same.
31235         (pass_complete_unroll): Same.
31236         (pass_complete_unrolli): Same.
31237         (pass_parallelize_loops): Same.
31238         (pass_loop_prefetch): Same.
31239         (pass_iv_optimize): Same.
31240
31241 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
31242
31243         PR middle-end/32824
31244         * passes.c (init_optimization_passes): Move pass_lim before
31245         pass_copy_prop and pass_dce_loop.
31246
31247 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31248
31249         PR target/43667
31250         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
31251         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
31252         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
31253         MULTI_* defines for 4 argument vpermil2p* builtins.
31254
31255 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31256
31257         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
31258         * config/i386/i386.c (x86_maybe_negate_const_int): New.
31259         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
31260         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
31261         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
31262         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
31263         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
31264         Use x86_maybe_negate_const_int to output insn mnemonic.
31265         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
31266         check from instruction predicate.  Update comments.
31267         * config/i386/sync.md (sync_add<mode>): Use
31268         x86_maybe_negate_const_int to output insn mnemonic.
31269
31270 2010-04-06  Jan Hubicka  <jh@suse.cz>
31271
31272         PR tree-optimization/42906
31273         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
31274         IGNORE_SELF argument.  Set visited_control_parents for fully
31275         processed BBs.
31276         (find_obviously_necessary_stmts): Update call of
31277         mark_control_dependent_edges_necessary.
31278         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
31279
31280 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31281
31282         * config/i386/i386.md: Remove comment about 'e' and 'E'
31283         operand modifier.
31284
31285 2010-04-06  Richard Guenther  <rguenther@suse.de>
31286
31287         PR tree-optimization/43627
31288         * tree-vrp.c (extract_range_from_unary_expr): Widenings
31289         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
31290         not varying.
31291
31292 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31293
31294         * BASE-VER: Change to 4.6.0.
31295
31296         PR target/43638
31297         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
31298         handling.
31299
31300 2010-04-06  Richard Guenther  <rguenther@suse.de>
31301
31302         PR middle-end/43661
31303         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
31304
31305 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31306
31307         * doc/invoke.texi (Optimize Options): Document that LTO
31308         won't remove object access purely due to incompatible
31309         declarations.
31310
31311 2010-04-04  Matthias Klose  <doko@ubuntu.com>
31312
31313         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
31314         Initialize variable.
31315
31316 2010-04-03  Richard Guenther  <rguenther@suse.de>
31317
31318         PR middle-end/42509
31319         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
31320         require a non-NULL MEM_OFFSET.
31321
31322 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
31323
31324         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
31325         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
31326         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
31327         config/alpha/predicates.md, config/arm/arm.md,
31328         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
31329         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
31330         config/darwin9.h, config/darwin.c, config/darwin.h,
31331         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
31332         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
31333         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
31334         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
31335         config/mips/mips.md, config/mn10300/mn10300.c,
31336         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
31337         config/rs6000/aix.h, config/rs6000/dfp.md,
31338         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
31339         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
31340         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
31341         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
31342         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
31343         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
31344         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
31345         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
31346         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
31347         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
31348         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
31349         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
31350         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
31351         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
31352         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
31353         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
31354         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
31355         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
31356         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
31357         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
31358         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
31359         opt-functions.awk, opth-gen.awk, params.def, passes.c,
31360         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
31361         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
31362         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
31363         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
31364         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
31365         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31366         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
31367         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
31368         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
31369         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
31370         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
31371         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
31372         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
31373         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
31374
31375 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31376
31377         PR other/43620
31378         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
31379         * aclocal.m4: Regenerate.
31380
31381 2010-04-02  Richard Guenther  <rguenther@suse.de>
31382
31383         PR tree-optimization/43629
31384         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
31385         if we have seen a constant value.
31386
31387 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
31388
31389         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
31390
31391 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
31392
31393         PR target/43469
31394         * arm.c (legitimize_tls_address): Adjust call to
31395         gen_tls_load_dot_plus_four.
31396         (arm_note_pic_base): New function.
31397         (arm_cannot_copy_insn_p): Use it.
31398         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
31399         constraint.
31400
31401 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31402
31403         PR bootstrap/43531
31404
31405         Revert:
31406         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31407
31408         * Makefile.in ($(out_object_file)): Depend on
31409         gt-$(basename $(notdir $(out_file))).h.
31410
31411 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
31412
31413         * config.gcc (lm32-*-rtems*): Add t-lm32.
31414
31415 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
31416
31417         * config.gcc: Add lm32-*-rtems*.
31418         * config/lm32/rtems.h: New file.
31419
31420 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
31421
31422         PR target/42609
31423         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
31424
31425 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
31426
31427         * dwarf2out.c (output_compilation_unit_header): For
31428         -gdwarf-4 use version 4 instead of version 3.
31429         (output_line_info): For version 4 and above emit additional
31430         maximum ops per insn header field.
31431         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
31432
31433         * dwarf2out.c (is_c_family, is_java): Remove.
31434         (lower_bound_default): New function.
31435         (add_bound_info, gen_descr_array_type_die): Use it.
31436
31437 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
31438
31439         PR debug/43325
31440         * dwarf2out.c (gen_variable_die): Allow debug info for variable
31441         re-declaration when it happens in a function.
31442
31443 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
31444
31445         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
31446         (cgraph_remove_function_insertion_hook): Same.
31447         (cgraph_call_function_insertion_hooks): Same.
31448
31449 2010-04-01  Richard Guenther  <rguenther@suse.de>
31450
31451         PR middle-end/43614
31452         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
31453         and TREE_THIS_VOLATILE.
31454         (copy_ref_info): Likewise.
31455         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
31456         * tree.c (build6_stat): Ignore side-effects of all but arg5
31457         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
31458         TARGET_MEM_REF.
31459
31460 2010-04-01  Richard Guenther  <rguenther@suse.de>
31461
31462         PR tree-optimization/43607
31463         * ipa-type-escape.c (check_call): Do not access non-existing
31464         arguments.
31465
31466 2010-04-01  Richard Guenther  <rguenther@suse.de>
31467
31468         PR middle-end/43602
31469         Revert
31470         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31471                     Jack Howarth  <howarth@bromo.med.uc.edu>
31472
31473         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31474         variables TLS.
31475
31476 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31477
31478         * doc/install.texi (Prerequisites): Document libelf usability on
31479         IRIX 5/6 and Solaris 2.
31480         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
31481         Update GNU as, GNU ld requirements.
31482         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
31483         Document Sun Studio compiler download.
31484         Update and simplify as, ld recommendations.
31485         (Specific, *-*-solaris2.7): Note obsoletion, removal.
31486
31487 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31488
31489         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
31490         with_tune_32 to pentium4.
31491
31492 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
31493
31494         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
31495
31496 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31497
31498         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
31499         obsoletion, removal.
31500         Update IDO URL.
31501         Document GNU as requirement.
31502         Update configure requirements.
31503         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
31504         Recomment IRIX 6.5.18+.
31505         Document IDF/IDL requirement.
31506         Document GNU as requirement.
31507         Document GNU ld bootstrap failure.
31508         Remove freeware.sgi.com reference.
31509
31510 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31511
31512         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
31513         UNIX V4.0, V5.0 obsoletion, removal.
31514         Remove --with-gc=simple reference.
31515         Update VM requirements during bootstrap.
31516         Remove -oldas bootstrap description.
31517         Update binutils reference.
31518         Remove comparison failure note.
31519
31520 2010-03-31  Richard Guenther  <rguenther@suse.de>
31521             Zdenek Dvorak  <ook@ucw.cz>
31522             Sebastian Pop  <sebastian.pop@amd.com>
31523
31524         PR middle-end/43464
31525         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
31526         with multiple arguments.
31527         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
31528
31529 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31530
31531         * graphite-dependences.c (print_pddr): Call print_pdr with an
31532         extra argument.
31533         * graphite-poly.c (debug_pdr): Add an extra argument for the
31534         verbosity level.
31535         (print_pdr): Same.
31536         (print_pbb_domain): Same.
31537         (print_pbb): Same.
31538         (print_scop_context): Same.
31539         (print_scop): Same.
31540         (print_cloog): Same.
31541         (debug_pbb_domain): Same.
31542         (debug_pbb): Same.
31543         (print_pdrs): Same.
31544         (debug_pdrs): Same.
31545         (debug_scop_context): Same.
31546         (debug_scop): Same.
31547         (debug_cloog): Same.
31548         (print_scop_params): Same.
31549         (debug_scop_params): Same.
31550         (print_iteration_domain): Same.
31551         (print_iteration_domains): Same.
31552         (debug_iteration_domain): Same.
31553         (debug_iteration_domains): Same.
31554         (print_scattering_function): Same.
31555         (print_scattering_functions): Same.
31556         (debug_scattering_function): Same.
31557         (debug_scattering_functions): Same.
31558         * graphite-poly.h (debug_pdr): Update declaration.
31559         (print_pdr): Same.
31560         (print_pbb_domain): Same.
31561         (print_pbb): Same.
31562         (print_scop_context): Same.
31563         (print_scop): Same.
31564         (print_cloog): Same.
31565         (debug_pbb_domain): Same.
31566         (debug_pbb): Same.
31567         (print_pdrs): Same.
31568         (debug_pdrs): Same.
31569         (debug_scop_context): Same.
31570         (debug_scop): Same.
31571         (debug_cloog): Same.
31572         (print_scop_params): Same.
31573         (debug_scop_params): Same.
31574         (print_iteration_domain): Same.
31575         (print_iteration_domains): Same.
31576         (debug_iteration_domain): Same.
31577         (debug_iteration_domains): Same.
31578         (print_scattering_function): Same.
31579         (print_scattering_functions): Same.
31580         (debug_scattering_function): Same.
31581         (debug_scattering_functions): Same.
31582
31583 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31584
31585         * graphite-poly.c (print_scattering_function_1): New.
31586         (print_scattering_function): Call it.
31587         (print_scop_params): Remove spaces at the end of lines.
31588         (print_cloog): New.
31589         (debug_cloog): New.
31590         * graphite-poly.h (print_cloog): Declared.
31591         (debug_cloog): Declared.
31592
31593 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31594
31595         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
31596         in loop->header.
31597         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
31598         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
31599         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
31600         to switch between adding the IV bump in loop->latch or in loop->header.
31601
31602 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31603
31604         * graphite-poly.c (print_scattering_function): Pretty print following
31605         the scoplib format.
31606         (print_pdr): Same.
31607         (print_pbb_domain): Same.
31608         (dump_gbb_cases): Same.
31609         (dump_gbb_conditions): Same.
31610         (print_pdrs): Same.
31611         (print_pbb): Same.
31612         (print_scop_params): Same.
31613         (print_scop_context): Same.
31614         (print_scop): Same.
31615         (print_pbb_body): New.
31616         (lst_indent_to): New.
31617         (print_lst): Start new lines with a #.
31618         * graphite-poly.h (pbb_bb): New.
31619         (pbb_index): Use pbb_bb.
31620         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
31621         disjuncts.
31622         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
31623
31624 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31625
31626         * dwarf2out.c (size_of_die): For -gdwarf-4 use
31627         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
31628         and 0 instead of 1 for dw_val_class_flag.
31629         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
31630         dw_val_class_range_list, dw_val_class_loc_list,
31631         dw_val_class_lineptr and dw_val_class_macptr, use
31632         DW_FORM_flag_present for dw_val_class_flag and
31633         DW_FORM_exprloc for dw_val_class_loc.
31634         (output_die): For -gdwarf-4 print dw_val_class_loc
31635         size as uleb128 instead of 1 or 2 bytes and don't print
31636         anything for dw_val_class_flag.
31637
31638         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
31639         instead of cselib_lookup following by tweaking locs->setting_insn.
31640
31641         PR bootstrap/43596
31642         * cselib.c (cselib_process_insn): Clear cselib_current_insn
31643         even before returning from label, setjmp call or volatile asm
31644         handling.
31645
31646 2010-03-31  Richard Guenther  <rguenther@suse.de>
31647
31648         PR middle-end/43600
31649         * cgraphunit.c (cgraph_output_in_order): Do not allocate
31650         temporary data on stack.
31651
31652 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31653
31654         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
31655         (PUSHSECTION_ASM_OP): Remove.
31656         (POPSECTION_ASM_OP): Remove.
31657         (PUSHSECTION_FORMAT): Remove.
31658         * config/sol2.h (PUSHSECTION_FORMAT): Define.
31659         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
31660         * config/sol2.c (solaris_output_init_fini): Use it.
31661
31662 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31663
31664         PR 43574
31665         * opt-functions.awk (var_type_struct): Use signed char type
31666         for simple variables.
31667
31668 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31669
31670         * config/sol2.c: Include output.h.
31671         (solaris_assemble_visibility): New function.
31672         * config/t-sol2 (sol2.o): Add output.h dependency.
31673         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
31674         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
31675         Redefine.
31676
31677 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31678
31679         PR target/43580
31680         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
31681         V2SImode or XFmode on PRE_DEC.
31682
31683         PR debug/43557
31684         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
31685         BLKmode.
31686
31687 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31688
31689         PR 43562
31690         * reload.h (caller_save_initialized_p): Declare.
31691         * toplev.c (backend_init_target): Don't call
31692         init_caller_save but set caller_save_initialized_p to false.
31693         * caller-save.c (caller_save_initialized_p): Define.
31694         (init_caller_save): Check caller_save_initialized_p.
31695         * ira.c (ira): Call init_caller_save if flag_caller_saves.
31696
31697 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31698
31699         PR target/39048
31700         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
31701         and soft-fp/t-softfp to tmake_file.
31702         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
31703         (LIBGCC2_TF_CEXT): Define.
31704         (TF_SIZE): Define.
31705
31706 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
31707
31708         PR debug/42977
31709         * cselib.c (n_useless_values): Document handling of debug locs.
31710         (n_useless_debug_values, n_debug_values): New variables.
31711         (new_elt_loc_list): Don't add to debug values, keep count.
31712         (promote_debug_loc): New.
31713         (cselib_reset_table): Zero new variables.
31714         (entry_and_rtx_equal_p): Promote debug locs.
31715         (discard_useless_locs): Increment n_useless_debug_values for
31716         debug values.
31717         (remove_useless_values): Adjust n_useless_values and n_debug_values
31718         with n_useless_debug_values.
31719         (add_mem_for_addr): Promote debug locs.
31720         (cselib_lookup_mem): Likewise.
31721         (cselib_lookup_addr): Renamed to...
31722         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
31723         (cselib_log_lookup): ... this.  Turn into...
31724         (cselib_lookup_addr): ... new wrapper.
31725         (cselib_lookup_from_insn): New.
31726         (cselib_invalidate_regno): Increment n_useless_debug_values for
31727         debug values.
31728         (cselib_invalidate_mem): Likewise.
31729         (cselib_process_insn): Take n_deleted and n_debug_values into
31730         account to guard remove_useless_value call.
31731         (cselib_finish): Zero n_useless_debug_values.
31732         * cselib.h (cselib_lookup_from_insn): Declare.
31733         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
31734         (sched_analyze_2): Likewise.
31735
31736 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
31737
31738         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
31739         functions.
31740         (adjust_mems): Replace narrowing SUBREG of expression containing
31741         just PLUS, MINUS, MULT and ASHIFT of registers and constants
31742         with operations in the narrower mode.
31743
31744         PR debug/43593
31745         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
31746         regs_invalidated_by_call instead all call_used_reg_set registers.
31747
31748 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
31749
31750         PR middle-end/43430
31751         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
31752         pointer comparisons with types_compatible_p.
31753         * tree-vect-stmts.c (vectorizable_call): Same.
31754         (vectorizable_condition): Same.
31755
31756 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31757
31758         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
31759         stack check if the mask would be zero.
31760
31761 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31762             Jack Howarth  <howarth@bromo.med.uc.edu>
31763
31764         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31765         variables TLS.
31766
31767 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
31768
31769         PR other/25232
31770         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
31771         and __unordtf2.
31772         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
31773         Include ___unordxf2 and ___unordtf2.
31774         * config/i386/libgcc-glibc.ver: Do not define inheritance from
31775         GCC_4.4.0 here.
31776
31777 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
31778
31779         * config/lm32/t-lm32: New file.
31780         * config.gcc: Use the above file when targetting lm32.
31781
31782 2010-03-28  Duncan Sands  <baldrick@free.fr>
31783
31784         * Makefile.in (PLUGIN_HEADERS): Add except.h.
31785
31786 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31787
31788         PR middle-end/43431
31789         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
31790         Improve vectorization cost model diagnostic.
31791
31792 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31793
31794         PR middle-end/43436
31795         * tree-vect-data-refs.c (vect_analyze_data_refs): When
31796         compute_data_dependences_for_loop returns false, early exit
31797         and output an extra diagnostic for the failed data reference
31798         analysis.
31799
31800 2010-03-29  Richard Guenther  <rguenther@suse.de>
31801
31802         PR tree-optimization/43560
31803         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
31804         (can_sm_ref_p): Treat stores to readonly locations as trapping.
31805
31806 2010-03-29  Jie Zhang  <jie@codesourcery.com>
31807
31808         PR 43564
31809         * toplev.c (process_options): Set optimization_default_node
31810         and optimization_current_node.
31811         * opts.c (decode_options): Don't set optimization_default_node
31812         and optimization_current_node.
31813
31814 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
31815
31816         * config/rtems.h: Abandon -qrtems_debug.
31817
31818 2010-03-28  Jan Hubicka  <jh@suse.cz>
31819
31820         PR tree-optimization/43505
31821         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
31822         map should not be copied.
31823
31824 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31825
31826         PR middle-end/41674
31827         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
31828         cdtors, set DECL_PRESERVE_P.
31829         * ipa.c (cgraph_externally_visible_p): Return true if declaration
31830         should be preseved.
31831
31832 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
31833
31834         PR tree-optimization/43528
31835         * stor-layout.c (place_field): Check that constant fits into
31836         unsigned HWI when skipping calculation of MS bitfield layout.
31837
31838 2010-03-27  Jan Hubicka  <jh@suse.cz>
31839
31840         PR middle-end/43391
31841         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
31842         notice_global_symbol work.
31843
31844 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
31845
31846         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
31847         instead of dwarf2out_decl.
31848         (struct var_loc_node): Remove section_label field.
31849         (dwarf2out_function_decl): New function.
31850         (dwarf2out_var_location): Don't set section_label field.
31851         (dwarf2out_begin_function): Don't empty decl_loc_table here.
31852
31853 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
31854
31855         PR tree-optimization/43544
31856         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
31857         First argument for builtin vectorized function hook is now a
31858         tree to be able to distinguish between machine specific and
31859         standard builtins.
31860         * targhooks.c (default_builtin_vectorized_function): Ditto.
31861         * targhooks.h (default_builtin_vectorized_function): Ditto.
31862         * target.h (struct gcc_target): Ditto.
31863         * tree-vect-stmts.c (vectorizable_function): Ditto.
31864         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
31865         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
31866         Ditto.
31867
31868 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
31869
31870         PR c/43381
31871         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
31872         nested binding iff it is a FUNCTION_DECL.
31873         (store_parm_decls_newstyle): Pass nested=true to bind for
31874         FUNCTION_DECLs amongst parameters.
31875
31876 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31877
31878         * var-tracking.c (vt_expand_loc_callback): Don't run
31879         cselib_expand_value_rtx_cb in dummy mode if
31880         cselib_dummy_expand_value_rtx_cb returned false.
31881
31882         * var-tracking.c (emit_note_insn_var_location): For one part
31883         notes with offset 0, don't add EXPR_LIST around the location.
31884         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
31885         add_location_or_const_value_attribute): Adjust for that change.
31886
31887         PR debug/43540
31888         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
31889         into first operand and location into second.
31890         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
31891         dw_cfi_oprnd_loc for DW_CFA_expression.
31892         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
31893         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
31894         assume first argument is regnum and second argument is location.
31895
31896 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31897
31898         PR target/42113
31899         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
31900         of scratch register to DImode.  Split to DImode comparison operator.
31901         Use SImode subreg of scratch register in the multiplication.
31902         (*cmp_sadd_sidi): Ditto.
31903         (*cmp_ssub_si): Ditto.
31904         (*cmp_ssub_sidi): Ditto.
31905
31906 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
31907
31908         PR target/43524
31909         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
31910         Remove invalid assert and wrong comment.
31911
31912 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
31913
31914         PR debug/43516
31915         * flags.h (final_insns_dump_p): New extern.
31916         * final.c (final_insns_dump_p): New variable.
31917         (rest_of_clean_state): Set it before -fdump-final-insns=
31918         dumping, clear afterwards.
31919         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
31920         MEM_ALIAS_SET on MEMs.
31921
31922 2010-03-26  David S. Miller  <davem@davemloft.net>
31923
31924         * configure.ac: Fix sparc GOTDATA_OP bug check.
31925         * configure: Rebuild.
31926
31927 2010-03-26  Alan Modra  <amodra@gmail.com>
31928
31929         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
31930
31931 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31932
31933         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
31934         TLS_SECTION_ASM_FLAG.
31935
31936 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
31937
31938         PR bootstrap/43511
31939         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
31940         Clear first_function_block_is_cold.
31941
31942         PR c/43385
31943         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
31944         argument if the argument is truth_value_p.
31945
31946 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
31947
31948         * config/rs6000/constraints.md: Update copyright year for my changes.
31949
31950         PR target/43484
31951         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
31952         used in reg+reg addressing, swap registers.
31953
31954 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
31955
31956         PR debug/43293
31957         * target.h (struct gcc_target): Add code_end hook.
31958         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
31959         if not yet defined.
31960         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
31961         * toplev.c (compile_file): Call targetm.asm_out.code_end
31962         hook before unwind info/debug info output.
31963         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
31964         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
31965         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31966         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
31967         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
31968         * config/i386/i386.c (ix86_file_end): Renamed to...
31969         (ix86_code_end): ... this.  Make static.  Don't call
31970         file_end_indicate_exec_stack.  Emit unwind info using
31971         final_start_function/final_end_function.
31972         (darwin_x86_file_end): Remove.
31973         (TARGET_ASM_CODE_END): Define.
31974         * config/i386/i386.h (TARGET_ASM_FILE_END,
31975         NEED_INDICATE_EXEC_STACK): Don't define.
31976         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
31977         (TARGET_ASM_FILE_END): Define to darwin_file_end.
31978         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
31979         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
31980
31981         PR target/43498
31982         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
31983         at the beginning and final_end_function at the end.
31984         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
31985
31986 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31987
31988         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
31989         and Sun as TLS syntax.
31990         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
31991         * configure: Regenerate.
31992         * config.in: Regenerate.
31993         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
31994         (default_elf_asm_named_section): Use it.
31995         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
31996         (i386_output_dwarf_dtprel): Likewise.
31997         (output_addr_const_extra): Likewise.
31998         (output_pic_addr_const): Lowercase @GOTTPOFF.
31999         (output_addr_const_extra): Likewise.
32000         (output_pic_addr_const): Lowercase @GOTNTPOFF.
32001         (output_addr_const_extra): Likewise.
32002         (output_pic_addr_const): Lowercase @INDNTPOFF.
32003         (output_addr_const_extra): Likewise.
32004         (output_pic_addr_const): Lowercase @NTPOFF.
32005         (output_addr_const_extra): Likewise.
32006         (output_pic_addr_const): Lowercase @TPOFF.
32007         (output_addr_const_extra): Likewise.
32008         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
32009         (*tls_global_dynamic_64): Likewise.
32010         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
32011         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
32012
32013         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
32014         (ASM_OUTPUT_TLS_COMMON): Use it.
32015         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
32016
32017         PR target/38118
32018         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
32019         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
32020         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
32021         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
32022         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32023         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
32024
32025 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32026
32027         * config/i386/i386.c (override_options): Don't accept
32028         -mtls-dialect=sun any longer.
32029         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
32030         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
32031         (*tls_local_dynamic_base_32_sun): Likewise.
32032         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32033
32034 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32035
32036         PR debug/43508
32037         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
32038         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
32039
32040         PR debug/43479
32041         * ira.c (adjust_cleared_regs): New function.
32042         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
32043
32044         PR debug/19192
32045         PR debug/43479
32046         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
32047         from gimple_block.
32048         * expr.c (expand_expr_real): Restore previous
32049         curr_insn_source_location and curr_insn_block after
32050         expand_expr_real_1 call.
32051         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
32052         instead of expand_expr_real_1.
32053
32054 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
32055
32056         PR rtl-optimization/43413
32057         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
32058         hard regs too.
32059
32060 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
32061
32062         PR target/43348
32063         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
32064         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
32065
32066 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
32067
32068         * config/i386/i386.c (ix86_target_string): Add -mfma.
32069         Fix a typo in comment.
32070
32071 2010-03-22  Mike Stump  <mikestump@comcast.net>
32072
32073         PR target/23071
32074         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
32075         Don't overly align based upon packed packed fields.
32076
32077 2010-03-22  Jason Merrill  <jason@redhat.com>
32078
32079         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
32080         Use () rather than [], and move before the element type.
32081
32082 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32083
32084         * doc/configfiles.texi (Configuration Files): Removed
32085         fixinc/Makefile*, intl/Makefile.*.
32086         * doc/makefile.texi: Fixed markup. Abstract from version
32087         control system used.
32088         (Makefile): Removed obsolete java/parse.y example.
32089         * doc/sourcebuild.texi: Likewise.
32090         (Top Level): Added config, gnattools, libdecnumber, libgcc,
32091         libgomp, libssp.  Removed fastjar.
32092         (Miscellaneous Docs): Clarify location.
32093         Added COPYING3, COPYING3.LIB.
32094         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
32095
32096 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32097
32098         PR target/38085
32099         * config/i386/i386.c (x86_function_profiler)
32100         [!NO_PROFILE_COUNTERS]: Fix typo.
32101         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
32102         instead of callq.
32103
32104 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
32105             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32106
32107         * doc/sourcebuild.texi (Test Directives): Split into six
32108         subsections, with most of the current text in new subsections
32109         Directives, Selectors, and Final Actions.
32110         (Directives): Split list of test directives into multiple
32111         subsubsections.
32112         (Selectors): Describe use and syntax of selectors.
32113         (Effective-Target Keywords): Describe all existing keywords.
32114         (Add Options): Describe features for dg-add-options.
32115         (Require Support): Describe variants of dg-require-support.
32116         (Final Actions): Describe commands to use in dg-final.
32117
32118 2010-03-22  Michael Matz  <matz@suse.de>
32119
32120         PR middle-end/43475
32121         * recog.c (validate_replace_rtx_group): Replace also in
32122         REG_EQUAL and REG_EQUIV notes.
32123
32124 2010-03-22  Richard Guenther  <rguenther@suse.de>
32125
32126         PR tree-optimization/43390
32127         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
32128         sure vector extracts are type correct.
32129
32130 2010-03-22  Richard Guenther  <rguenther@suse.de>
32131
32132         PR middle-end/40106
32133         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
32134         x * sqrt (x) even when optimizing for size if the target
32135         has native support for sqrt.
32136
32137 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
32138
32139         * varasm.c (make_decl_rtl_for_debug): Also clear
32140         flag_mudflap for the duration of make_decl_rtl call.
32141
32142         PR debug/43443
32143         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
32144         locs from preserved VALUEs.
32145
32146 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32147
32148         PR middle-end/42718
32149         * pa.md (movmemsi): Set align to one if zero.
32150         (movmemdi): Likewise.
32151
32152 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
32153
32154         PR target/42321
32155         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
32156         with their corresponding prologue pushes.
32157
32158 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
32159
32160         PR target/43156
32161         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
32162         at the begining or end.
32163         (spu_expand_epilogue): Likewise.
32164
32165 2010-03-20  Richard Guenther  <rguenther@suse.de>
32166
32167         PR rtl-optimization/43438
32168         * combine.c (make_extraction): Properly zero-/sign-extend an
32169         extraction of the low part of a CONST_INT.  Also handle
32170         CONST_DOUBLE.
32171
32172 2010-03-19  Mike Stump  <mikestump@comcast.net>
32173
32174         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
32175         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
32176         (override_options): Use SUBTARGET32_DEFAULT_CPU.
32177
32178 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
32179
32180         PR c/43211
32181         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
32182         an error.
32183
32184 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
32185
32186         PR rtl-optimization/42258
32187         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
32188         use that may match DEF.
32189
32190         PR target/40697
32191         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
32192         the cost of loading the constant rather than assuming
32193         COSTS_N_INSNS (1).
32194         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
32195         outer code is AND, do the same tests as the andsi3 expander and
32196         return COSTS_N_INSNS (1) if and is cheap.
32197
32198         * optabs.c (avoid_expensive_constant): Fix formatting.
32199
32200 2010-03-19  Michael Matz  <matz@suse.de>
32201
32202         PR c++/43116
32203         * attribs.c (decl_attributes): When rebuilding a function pointer
32204         type use the same qualifiers as the original pointer type.
32205
32206 2010-03-19  Martin Jambor  <mjambor@suse.cz>
32207
32208         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
32209         and is_gimple_ip_invariant_address.
32210
32211 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32212
32213         Revert
32214         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32215
32216         * config/arm/arm.c (arm_override_options): Turn off
32217         flag_dwarf2_cfi_asm for AAPCS variants.
32218
32219 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32220
32221         PR target/43399
32222         * config/arm/arm.c (emit_multi_reg_push): Update comments.
32223         Use PRE_MODIFY instead of PRE_DEC.
32224         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
32225         (vfp_emit_fstmd): Likewise.
32226
32227 2010-03-19  Michael Matz  <matz@suse.de>
32228
32229         PR target/43305
32230         * builtins.c (expand_builtin_interclass_mathfn,
32231         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
32232         if that fails.
32233
32234 2010-03-19  Richard Guenther  <rguenther@suse.de>
32235
32236         PR tree-optimization/43415
32237         * tree-ssa-pre.c (phi_translate): Split out worker to ...
32238         (phi_translate_1): ... this.
32239         (phi_translate): Move all caching here.  Cache all NARY
32240         and REFERENCE translations.
32241
32242 2010-03-19  David S. Miller  <davem@davemloft.net>
32243
32244         With help from Eric Botcazou.
32245         * config/sparc/sparc.c: Include dwarf2out.h.
32246         (emit_pic_helper): Delete.
32247         (pic_helper_symbol_name): Delete.
32248         (pic_helper_emitted_p): Delete.
32249         (pic_helper_needed): New.
32250         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
32251         (get_pc_thunk_name): New.
32252         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
32253         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
32254         Set pic_helper_needed to true.  Don't call emit_pic_helper.
32255         (sparc_expand_prologue): Update load_pic_register call.
32256         (sparc_output_mi_thunk): Likewise.
32257         (sparc_file_end): Emit a hidden comdat symbol for the PIC
32258         thunk if possible.  Output CFI information as needed.
32259
32260 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
32261             Jack Howarth  <howarth@bromo.med.uc.edu>
32262
32263         PR target/36399
32264         * config/i386/i386.h: Fix ABI on darwin x86-32.
32265
32266 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
32267
32268         * tree.h: Declare make_decl_rtl_for_debug.
32269         * varasm.c (make_decl_rtl_for_debug): New.
32270         * dwarf2out.c (rtl_for_decl_location): Call it.
32271         * cfgexpand.c (expand_debug_expr): Call it.
32272
32273 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32274
32275         PR bootstrap/43399
32276         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
32277         mem_mode.
32278
32279         PR bootstrap/43403
32280         * var-tracking.c (vt_init_cfa_base): Do nothing if
32281         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
32282
32283 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
32284
32285         PR debug/42873
32286         * var-tracking.c (canonicalize_vars_star): New.
32287         (dataflow_post_merge_adjust): Use it.
32288
32289 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32290
32291         PR debug/43058
32292         * var-tracking.c (non_suitable_const): New function.
32293         (add_uses): For DEBUG_INSNs with constants, don't record any
32294         value, instead just the constant value itself.
32295         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
32296         is not VAR_LOC_UNKNOWN_P, set var to the constant.
32297         (emit_notes_in_bb): Likewise.
32298         (emit_note_insn_var_location): For onepart variables if
32299         cur_loc is a VOIDmode constant, use DECL_MODE.
32300
32301 2010-03-18  Martin Jambor  <mjambor@suse.cz>
32302
32303         PR middle-end/42450
32304         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
32305         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
32306         all non-clones.  Moved call redirection...
32307         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
32308         (cgraph_materialize_all_clones): Dispose of all
32309         combined_args_to_skip bitmaps.
32310         (verify_cgraph_node): Do not check for edges pointing to wrong
32311         nodes in inline clones.
32312         * tree-inline.c (copy_bb): Call
32313         cgraph_redirect_edge_call_stmt_to_callee.
32314         * ipa.c (cgraph_remove_unreachable_nodes): Call
32315         cgraph_node_remove_callees even when there are used clones.
32316
32317 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32318
32319         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
32320
32321 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32322
32323         PR target/43383
32324         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
32325         for 32bit.
32326
32327 2010-03-18  Michael Matz  <matz@suse.de>
32328
32329         PR middle-end/43419
32330         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
32331         into sqrt(x) if we need to preserve signed zeros.
32332
32333 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
32334             Eric Botcazou  <ebotcazou@adacore.com>
32335
32336         PR rtl-optimization/43360
32337         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
32338         note if we don't know its invariant status.
32339
32340 2010-03-18  Michael Matz  <matz@suse.de>
32341
32342         PR tree-optimization/43402
32343         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
32344         PHI chains of ssa names registered for update.
32345
32346 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
32347
32348         PR target/42427
32349         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
32350         non-offsettable and pre_modify update addressing.
32351         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
32352         and "2" alternatives "#".
32353         (*movdd_softfloat32): Make all alternatives "#";
32354         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
32355         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
32356         (*movdf_softfloat32): Make all alternatives "#";
32357         (movdi): Use the new DIFD mode iterator to create a common splitter
32358         for movdi, movdf and movdd patterns.
32359
32360 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
32361
32362         * common.opt (dumpdir): Remove redundant tab.
32363
32364 2010-03-17  Martin Jambor  <mjambor@suse.cz>
32365
32366         PR tree-optimization/43347
32367         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
32368         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
32369
32370 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
32371
32372         PR rtl-optimization/42216
32373         * regrename.c (create_new_chain): New function, broken out from...
32374         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
32375         appending a use to an empty chain.
32376         (build_def_use): Remove previous changes that convert OP_INOUT to
32377         OP_OUT operands; instead detect the case where an OP_INOUT operand
32378         uses a previously untracked register and create an empty chain for it.
32379
32380 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32381
32382         * doc/extend.texi (Function Attributes): Rewrite unfinished
32383         sentence in ms_abi documentation.
32384
32385 2010-03-17  Alan Modra  <amodra@gmail.com>
32386
32387         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
32388         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
32389         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
32390         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
32391
32392 2010-03-16  Richard Henderson  <rth@redhat.com>
32393
32394         PR middle-end/43365
32395         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
32396         (lower_try_finally): Save and restore eh_seq around the expansion
32397         of the try-finally.
32398
32399 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32400
32401         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
32402         statements before splitting block.
32403
32404 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32405
32406         * doc/sourcebuild.texi (Testsuites): Fix markup.
32407         Use pathnames relative to gcc/testsuite.
32408         (Test Directives): Move description of how timeout is determined.
32409         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
32410         (C Tests): Correct gcc.misc-tests directory.
32411         Framework tests now live in gcc.test-framework.
32412
32413 2010-03-16  Richard Guenther  <rguenther@suse.de>
32414
32415         PR middle-end/43379
32416         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
32417         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
32418
32419 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32420             Alexandre Oliva  <aoliva@redhat.com>
32421
32422         PR tree-optimization/42917
32423         * lambda-code.c (remove_iv): Skip debug statements.
32424         (lambda_loopnest_to_gcc_loopnest): Likewise.
32425         (not_interesting_stmt): Debug statements are not interesting.
32426
32427 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
32428
32429         PR debug/43051
32430         PR debug/43092
32431         * cselib.c (cselib_preserve_constants,
32432         cfa_base_preserved_val): New static variables.
32433         (preserve_only_constants): New function.
32434         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
32435         clear its REG_VALUES.  If cselib_preserve_constants, don't
32436         empty the whole hash table, but preserve there VALUEs with constants,
32437         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
32438         (cselib_preserve_cfa_base_value): New function.
32439         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
32440         (cselib_init): Change argument to int bitfield.  Set
32441         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
32442         is in it.
32443         (cselib_finish): Clear cselib_preserve_constants and
32444         cfa_base_preserved_val.
32445         * cselib.h (enum cselib_record_what): New enum.
32446         (cselib_init): Change argument to int.
32447         (cselib_preserve_cfa_base_value): New prototype.
32448         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
32449         * dse.c (dse_step1): Likewise.
32450         * cfgcleanup.c (thread_jump): Likewise.
32451         * sched-deps.c (sched_analyze): Likewise.
32452         * gcse.c (local_cprop_pass): Likewise.
32453         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
32454         If FN is non-NULL, call the callback always and whenever it returns
32455         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
32456         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
32457         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
32458         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
32459         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
32460         * var-tracking.c: Include recog.h.
32461         (bb_stack_adjust_offset): Remove.
32462         (vt_stack_adjustments): Don't call it, instead just gather the
32463         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
32464         (adjust_stack_reference): Remove.
32465         (compute_cfa_pointer): New function.
32466         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
32467         (struct adjust_mem_data): New type.
32468         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
32469         functions.
32470         (get_address_mode): New function.
32471         (replace_expr_with_values): Use it.
32472         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
32473         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
32474         (adjust_sets): Remove.
32475         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
32476         Use get_address_mode.
32477         (get_adjusted_src): Remove.
32478         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
32479         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
32480         (add_with_sets): Don't call adjust_sets.
32481         (fp_setter, vt_init_cfa_base): New functions.
32482         (vt_initialize): Change return type to bool.  Move most of pool etc.
32483         initialization to the beginning of the function from end.  Pass
32484         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
32485         If !frame_pointer_needed, call vt_stack_adjustment before mos
32486         vector is filled, call vt_init_cfa_base if argp/framep has been
32487         eliminated to sp.  If frame_pointer_needed and argp/framep has
32488         been eliminated to hard frame pointer, set
32489         hard_frame_pointer_adjustment and call vt_init_cfa_base after
32490         encountering fp setter in the prologue.  For MO_ADJUST, call
32491         log_op_type before pusing the op into mos vector, not afterwards.
32492         Call adjust_insn before cselib_process_insn/add_with_sets,
32493         call cancel_changes (0) afterwards.
32494         (variable_tracking_main_1): Adjust for vt_initialize calling
32495         vt_stack_adjustments and returning whether it succeeded or not.
32496
32497 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
32498
32499         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
32500         debug statements.
32501
32502 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
32503
32504         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
32505         has been set.
32506         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
32507         drap_reg has not been set.
32508
32509 2010-03-15  Michael Matz  <matz@suse.de>
32510
32511         PR middle-end/43300
32512         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
32513         use it to expand block copies.
32514         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
32515         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
32516         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
32517
32518 2010-03-15  Richard Guenther  <rguenther@suse.de>
32519
32520         PR tree-optimization/43367
32521         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
32522         elimination check.
32523
32524 2010-03-15  Richard Guenther  <rguenther@suse.de>
32525
32526         PR tree-optimization/43317
32527         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
32528
32529 2010-03-15  Martin Jambor  <mjambor@suse.cz>
32530
32531         PR tree-optimization/43141
32532         * tree-sra.c (create_abstract_origin): New function.
32533         (modify_function): Call create_abstract_origin.
32534
32535 2010-03-15  Chris Demetriou  <cgd@google.com>
32536
32537         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
32538         wasn't copied.
32539
32540 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32541
32542         PR middle-end/43354
32543         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
32544         call insert_out_of_ssa_copy for default definitions.
32545
32546 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32547
32548         * graphite-clast-to-gimple.c (my_long_long): Defined.
32549         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
32550         * graphite-sese-to-poly.c (my_long_long): Defined.
32551         (scop_ivs_can_be_represented): Use it.
32552
32553 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32554
32555         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
32556         graphite-max-bbs-per-function, and loop-block-tile-size.
32557         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
32558         with "maximum".
32559         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
32560
32561 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32562
32563         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
32564         forward declaration.
32565         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
32566         (add_upper_bounds_from_estimated_nit): New.
32567         (build_loop_iteration_domains): Use it.
32568
32569 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32570
32571         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
32572
32573 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32574
32575         PR middle-end/43306
32576         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
32577         should be an INTEGER_CST.  Also handle CASE_CONVERT.
32578
32579 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32580
32581         * graphite.c (graphite_initialize): To bound the number of bbs per
32582         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
32583         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
32584         * doc/invoke.texi: Document it.
32585
32586 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32587
32588         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
32589         * graphite-sese-to-poly.h (build_poly_scop): Same.
32590
32591 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32592
32593         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
32594         the number of parameters in the scop.  Use as an upper bound
32595         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
32596         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
32597         * doc/invoke.texi: Document it.
32598
32599 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
32600
32601         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
32602         * doc/c-tree.texi: Remove.
32603         * doc/generic.texi: Merge c-tree.texi here.
32604         * doc/gccint.texi (Trees): Remove menu entry.
32605         (c-tree.texi): Remove @include.
32606         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
32607         * doc/languages.texi (Reading RTL): Ditto.
32608
32609 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
32610
32611         PR target/42869
32612         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
32613
32614 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
32615
32616         PR middle-end/42431
32617         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
32618         code added to work around reload clobbering CONST insns.
32619
32620 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
32621
32622         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
32623         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
32624         (cselib_preserve_only_values): Remove retain argument, don't
32625         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
32626         * cselib.h (cselib_preserve_only_values): Remove retain argument.
32627         * var-tracking.c (micro_operation): Move insn field before union.
32628         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
32629         (struct variable_tracking_info_def): Remove n_mos field, change
32630         mos into a vector of micro_operations.
32631         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
32632         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
32633         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
32634         changing into a vector.
32635         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
32636         come before all other uops generated by add_stores.
32637         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
32638         argument removal.
32639         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
32640         a vector.  Run just one pass over the bbs instead of separate counting
32641         and computation phase.
32642         (vt_finalize): Free VTI (bb)->mos vector instead of array.
32643
32644         PR debug/43329
32645         * tree-inline.c (remap_decls): Put old_var rather than origin_var
32646         into *nonlocalized_list vector.
32647         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
32648         even if origin is non-NULL.
32649         (gen_variable_die): Likewise.
32650         (process_scope_var): Don't change origin.
32651         (gen_decl_die): Likewise.
32652         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
32653         before adding new edges instead of after it, fix moving over
32654         debug stmts.
32655
32656 2010-03-11  David S. Miller  <davem@davemloft.net>
32657
32658         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
32659         of four.
32660         * configure: Rebuild.
32661
32662 2010-03-11  Martin Jambor  <mjambor@suse.cz>
32663
32664         PR tree-optimization/43257
32665         * tree.c (assign_assembler_name_if_neeeded): New function.
32666         (free_lang_data_in_cgraph): Assembler name assignment moved to the
32667         above new function.
32668         * tree.h (assign_assembler_name_if_neeeded): Declare.
32669         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
32670         the function if needed.
32671
32672 2010-03-11  Chris Demetriou  <cgd@google.com>
32673
32674         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
32675         include/stdint-gcc.h, and include/stdint.h world-readable.
32676
32677 2010-03-11  Richard Guenther  <rguenther@suse.de>
32678
32679         PR tree-optimization/43255
32680         * tree-vrp.c (process_assert_insertions_for): Do not insert
32681         asserts for trivial conditions.
32682
32683 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32684
32685         PR tree-optimization/43280
32686         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
32687         generation.  Move calculation of size out of the if branch.
32688         (find_bswap): Modify compare number generation.
32689
32690 2010-03-11  Richard Guenther  <rguenther@suse.de>
32691
32692         PR lto/43200
32693         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
32694         (input_gimple_stmt): Fixup handled component types during
32695         operand read.  Also fix up decls in ADDR_EXPRs.
32696
32697 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
32698
32699         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
32700         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
32701
32702 2010-03-10  Jan Hubicka  <jh@suse.cz>
32703
32704         PR c/43288
32705         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
32706         * varasm.c (get_variable_section): Don't do that here...
32707         (make_decl_rtl): ... and here.
32708         (do_assemble_alias): Produce decl RTL.
32709         (assemble_alias): Likewise.
32710
32711 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32712
32713         PR debug/43290
32714         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
32715         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
32716         of fde->vdrap_reg.
32717         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
32718         (based_loc_descr): Only express drap or vdrap regno based expressions
32719         using DW_OP_fbreg when not optimizing.
32720         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
32721         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
32722         REG_CFA_SET_VDRAP note.
32723
32724 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
32725
32726         PR tree-optimization/43236
32727         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
32728         error in calculation of base address in reverse iteration case.
32729         (generate_builtin): Take number of latch executions if the statement
32730         is in the latch.
32731
32732 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
32733
32734         PR middle-end/42859
32735         * tree-eh.c: Include pointer-set.h.
32736         (lower_eh_dispatch): Filter out duplicate case labels and
32737         remove the unneeded edge when the label is unused.  Return
32738         true when some edges are removed.
32739         (execute_lower_eh_dispatch): When any lowering resulted in
32740         removing an edge, also delete unreachable blocks.
32741
32742 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32743
32744         PR bootstrap/43287
32745         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
32746         UNSPEC_MACHOPIC_OFFSET.
32747
32748 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
32749
32750         PR target/43294
32751         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
32752         (m68k_delegitimize_address): New function.
32753
32754 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
32755
32756         PR debug/43299
32757         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
32758
32759         PR debug/43299
32760         * var-tracking.c (adjust_sets): New function.
32761         (count_with_sets, add_with_sets): Use it.
32762         (get_adjusted_src): New inline function.
32763         (add_stores): Use it.
32764
32765         PR debug/43304
32766         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
32767         call cselib_dummy_expand_value_rtx_cb instead of
32768         cselib_expand_value_rtx_cb.
32769
32770         PR debug/43293
32771         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
32772         * config/i386/i386.c: Include debug.h and dwarf2out.h.
32773         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
32774         and .cfi_endproc around the pic thunks.
32775         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
32776         all queued unwind info register saves are saved before the call.
32777         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
32778         considered as sp-=4 for unwind info and the pop as sp+=4 which
32779         also clobbers dest, but doesn't actually restore it.
32780
32781         PR debug/43290
32782         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
32783         RTX_FRAME_RELATED_P.
32784
32785 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32786
32787         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
32788         whitespaces in output template.
32789
32790 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32791
32792         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
32793         out array boundary.
32794
32795 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32796
32797         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
32798         builtins.exp in a separate job.
32799
32800 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32801
32802         * graphite-sese-to-poly.c (add_param_constraints): Use
32803         lower_bound_in_type and upper_bound_in_type.
32804
32805 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32806
32807         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
32808         instead of unsigned_type_node.
32809
32810 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32811             Reza Yazdani  <reza.yazdani@amd.com>
32812
32813         PR middle-end/43065
32814         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
32815         on pointer type parameters.
32816
32817 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32818
32819         PR middle-end/42644
32820         PR middle-end/42130
32821         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
32822         handle conversions from pointer to integers.
32823         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
32824         induction variable, to be able to work with code generated by CLooG.
32825         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
32826         (build_poly_scop): Bail out if we cannot codegen a loop.
32827
32828 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32829
32830         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
32831         code generation with gloog_error.
32832
32833 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32834
32835         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
32836         Call fold_convert on all the returned values.
32837         (expand_scalar_variables_expr): Pass to
32838         expand_scalar_variables_ssa_name the type of the resulting expression.
32839
32840 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32841
32842         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
32843         ppl_min_for_le_pointset.
32844         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
32845         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
32846
32847 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32848
32849         * graphite-dependences.c (map_into_dep_poly): Removed.
32850         (dependence_polyhedron_1): Use combine_context_id_scat.
32851
32852 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32853
32854         * graphite-poly.h (struct poly_scattering): Add layout documentation.
32855         (struct poly_bb): Same.
32856         (combine_context_id_scat): New.
32857
32858 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32859
32860         PR middle-end/42326
32861         * sese.c (name_defined_in_loop_p): Return false for default
32862         definitions.
32863
32864 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32865
32866         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
32867         and clean up the logic.
32868
32869 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32870
32871         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
32872         early return.
32873
32874 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32875
32876         * var-tracking.c (remove_cselib_value_chains): Define only for
32877         ENABLE_CHECKING.
32878         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
32879         delete_slot_part, emit_notes_for_differences_1): Don't call
32880         remove_cselib_value_chains here.
32881         (set_slot_part, emit_notes_for_differences_2): Don't call
32882         add_cselib_value_chains here.
32883         (preserved_values): New vector.
32884         (preserve_value): New function.
32885         (add_uses, add_stores, vt_add_function_parameters): Use it
32886         instead of cselib_preserve_value.
32887         (changed_values_stack): New vector.
32888         (check_changed_vars_0): New function.
32889         (check_changed_vars_1, check_changed_vars_2): Use it.
32890         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
32891         changed_values_stack VALUEs.
32892         (vt_emit_notes): For all preserved_values call
32893         add_cselib_value_chains.  If ENABLE_CHECKING call
32894         remove_cselib_value_chains before verifying value_chains is empty.
32895         Initialize and free changed_values_stack.
32896         (vt_initialize): Initialize preserved_values.
32897         (vt_finalize): Free preserved_values.
32898
32899 2010-03-08  Richard Guenther  <rguenther@suse.de>
32900
32901         PR tree-optimization/43269
32902         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
32903         region detection.
32904
32905 2010-03-08  Martin Jambor  <mjambor@suse.cz>
32906
32907         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
32908         (ipa_is_param_called): Removed.
32909         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
32910         (ipa_print_node_params): Do not print the called flag.
32911         (ipa_write_node_info): Do not stream the called flag.
32912         (ipa_read_node_info): Likewise.
32913
32914 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
32915
32916         PR debug/43176
32917         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
32918         * cselib.c (struct expand_value_data): Add dummy field.
32919         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
32920         dummy to false.
32921         (cselib_dummy_expand_value_rtx_cb): New function.
32922         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
32923         any rtl.
32924         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
32925         * var-tracking.c: Include pointer-set.h.
32926         (variable): Change n_var_parts to char from int.  Add
32927         cur_loc_changed and in_changed_variables fields.
32928         (variable_canonicalize): Remove.
32929         (shared_var_p): New inline function.
32930         (unshare_variable): Maintain cur_loc_changed and
32931         in_changed_variables fields.  If var was in changed_variables,
32932         replace it there with new_var.  Just copy cur_loc instead of
32933         resetting it to something else.
32934         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
32935         (dataflow_set_union): Don't call variable_canonicalize.
32936         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
32937         of their DEBUG_EXPR_TREE_DECLs.
32938         (canonicalize_loc_order_check): Verify that cur_loc is NULL
32939         and in_changed_variables and cur_loc_changed is false.
32940         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
32941         and cur_loc_changed.  Don't update cur_loc here.
32942         (variable_merge_over_src): Don't call variable_canonicalize.
32943         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
32944         removing loc that is equal to cur_loc, clear cur_loc,
32945         set cur_loc_changed and ensure variable_was_changed is called.
32946         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
32947         compare pointers in cur_loc check, if it is equal to loc,
32948         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
32949         (variable_different_p): Remove compare_current_location argument,
32950         don't compare cur_loc.
32951         (dataflow_set_different_1): Adjust variable_different_p caller.
32952         (variable_was_changed): If dv had some var in changed_variables
32953         already, reset in_changed_variables flag for it and propagate
32954         cur_loc_changed over to the new variable.  On empty var
32955         always set cur_loc_changed.  Set in_changed_variables on whatever
32956         var is added to changed_variables.
32957         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
32958         Use shared_var_p.  When removing loc that is equal to cur_loc,
32959         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
32960         end, don't set it to something else, just call variable_was_changed.
32961         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
32962         loc being removed, clear cur_loc and set cur_loc_changed.
32963         Set cur_loc_changed if all locations have been removed.
32964         (struct expand_loc_callback_data): New type.
32965         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
32966         allocated.  Always create SUBREGs if simplify_subreg failed.
32967         Prefer to use cur_loc, when that fails and still in
32968         changed_variables (and seen first time) recompute it.  Set
32969         cur_loc_changed of variables which had to change cur_loc and
32970         compute elcd->cur_loc_changed if any of the subexpressions used
32971         had to change cur_loc.
32972         (vt_expand_loc): Adjust to pass arguments in
32973         expand_loc_callback_data structure.
32974         (vt_expand_loc_dummy): New function.
32975         (emitted_notes): New variable.
32976         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
32977         that weren't used for any other decl in current
32978         emit_notes_for_changes call call vt_expand_loc_dummy to update
32979         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
32980         first loc_chain location if NULL before.  Always use just
32981         cur_loc instead of first loc_chain location.  When cur_loc_changed
32982         is false, when not --enable-checking=rtl just don't emit any note.
32983         When rtl checking, compute the note and assert it is the same
32984         as previous note.  Clear cur_loc_changed and in_changed_variables
32985         at the end before removing from changed_variables.
32986         (check_changed_vars_3): New function.
32987         (emit_notes_for_changes): Traverse changed_vars to call
32988         check_changed_vars_3 on each changed var.
32989         (emit_notes_for_differences_1): Clear cur_loc_changed and
32990         in_changed_variables.  Recompute cur_loc of new_var.
32991         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
32992         (vt_emit_notes): Initialize and destroy emitted_notes.
32993
32994 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
32995
32996         PR rtl-optimization/42220
32997         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
32998         Use verify_reg_tracked to determine if we should use OP_OUT rather
32999         than OP_INOUT.
33000         (build_def_use): If we see an in-out operand for a register that we
33001         know nothing about, treat is an output if possible, fail the block if
33002         not.
33003
33004 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33005
33006         PR debug/42897
33007         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
33008         permanently.
33009
33010 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33011
33012         PR debug/42897
33013         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
33014         uses of relevant DEFs that are dead outside the loop too.
33015
33016 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33017
33018         * var-tracking.c (dataflow_set_merge): Swap src and src2.
33019         Reverted:
33020         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
33021         PR debug/41371
33022         * var-tracking.c (values_to_unmark): New variable.
33023         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
33024         values_to_unmark vector.  Moved body to...
33025         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
33026         instead queue it into values_to_unmark vector.
33027         (vt_find_locations): Free values_to_unmark vector.
33028
33029 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
33030
33031         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
33032         (site.exp): Export them when plugins are enabled.
33033
33034 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
33035
33036         PR middle-end/42326
33037         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
33038         that contain scevs.
33039         (chrec_fold_multiply): Same.
33040
33041 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33042
33043         PR c/43248
33044         * c-decl.c (build_compound_literal): Return early if init is
33045         an error_mark_node.
33046
33047 2010-03-04  Martin Jambor  <mjambor@suse.cz>
33048
33049         PR tree-optimization/43164
33050         PR tree-optimization/43191
33051         * tree-sra.c (type_consists_of_records_p): Reject records with
33052         zero-size bit-fields at the end.
33053
33054 2010-03-04  Mike Stump  <mikestump@comcast.net>
33055
33056         * Makefile.in (TAGS): Remove *.y.
33057
33058 2010-03-04  Richard Guenther  <rguenther@suse.de>
33059
33060         PR tree-optimization/40761
33061         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
33062         in reverse order.
33063         (my_rev_post_order_compute): New function.
33064         (init_pre): Call it.
33065
33066 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
33067
33068         PR middle-end/43209
33069         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
33070         decrease the cost of an IV candidate when the cost is infinite.
33071
33072 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33073
33074         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
33075         Use '3DNow!' for the extension of that name, ensure normal space
33076         after the string.
33077         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
33078
33079 2010-03-03  Jeff Law  <law@redhat.com>
33080
33081         * PR middle-end/32693
33082         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
33083         than gen_rtx_SUBREG.
33084         (extract_bit_field_1): Likewise.
33085
33086 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
33087
33088         * doc/sourcebuild.texi (Test directives): Document that arguments
33089         include-opts and exclude-opts are now optional for dg-skip-if,
33090         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
33091
33092 2010-03-03  Jason Merrill  <jason@redhat.com>
33093
33094         PR c++/12909
33095         * cgraph.h (varpool_node): Add extra_name field.
33096         * varpool.c (varpool_extra_name_alias): New.
33097         (varpool_assemble_decl): Emit extra name aliases.
33098         (varpool_mark_needed_node): Look past an extra name alias.
33099         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
33100         * lto-streamer-in.c (lto_input_tree): Read it.
33101         * lto-streamer-out.c (output_unreferenced_globals): Write it.
33102
33103 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
33104
33105         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
33106         (sparc*-*-solaris2*): ...this.
33107
33108 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
33109
33110         PR debug/43229
33111         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
33112         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
33113         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
33114         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
33115
33116         PR debug/43237
33117         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
33118         fallthrough to default handling, just with want_address 0 instead of 2.
33119         For single element lists, add_AT_loc directly, otherwise create an
33120         artificial variable DIE and stick location list to it.
33121
33122         PR debug/43177
33123         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
33124         (VAL_EXPR_HAS_REVERSE): Define.
33125         (reverse_op): New function.
33126         (add_stores): For reversible operations add an extra MO_VAL_USE.
33127
33128 2010-03-02  Jason Merrill  <jason@redhat.com>
33129
33130         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
33131
33132 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
33133
33134         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
33135         (sparc64-*-linux*): Likewise.
33136         (sparc64-*-solaris2*): Include assembler files before linker ones.
33137         (sparc-*-solaris2*): Simplify and reorder to match previous case.
33138         * config/sparc/gas.h: Delete.
33139         * config/sparc/sol2-64.h: Add copyright notice.
33140         * config/sparc/sol2-gas-bi.h: Likewise.
33141         * config/sparc/sol2-gld.h: Likewise.
33142         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
33143         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
33144         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
33145         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
33146         (sparc_elf_asm_named_section): Rename into...
33147         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
33148
33149 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
33150
33151         * config/alpha/alpha.c (override_options): Fix -mtune error message.
33152
33153 2010-03-02  Jeff Law  <law@redhat.com>
33154
33155         PR middle-end/42431
33156         * reload1.c (rtx_p, substitute_stack): Declare.
33157         (substitute): Record addresses of changed rtxs.
33158         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
33159         Restore the original rtx when complete.
33160         (reload): Free subsitute_stack when complete.
33161
33162 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
33163
33164         * doc/gccint.texi (menu): Add Testsuites as a chapter.
33165         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
33166         new chapter.
33167         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
33168         LTO Testing, gcov Testing, profopt Testing, compat Testing,
33169         Torture Tests): Change from subsection to section.
33170
33171 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
33172             Steven Bosscher  <steven@gcc.gnu.org>
33173
33174         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
33175         instead of bb.
33176
33177 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
33178
33179         PR middle-end/42640
33180         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
33181         the assignment from the new induction variable to the assignment
33182         of the value from the original loop PHI function.
33183
33184 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
33185             Daniel Jacobowitz  <dan@codesourcery.com>
33186
33187         * doc/sourcebuild.texi (Test directives): Clarify options to
33188         dg-skip-if.
33189
33190 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33191
33192         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
33193         Disable cfi directives unless GCC and gas agree on using read-only
33194         .eh_frame sections for 64-bit.
33195         * configure: Regenerate.
33196
33197 2010-03-01  Richard Guenther  <rguenther@suse.de>
33198
33199         PR tree-optimization/43220
33200         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
33201         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
33202
33203 2010-03-01  Richard Guenther  <rguenther@suse.de>
33204             Martin Jambor  <mjambor@suse.cz>
33205
33206         PR middle-end/41250
33207         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
33208         gimplified parameters.
33209
33210 2010-03-01  Christian Bruel  <christian.bruel@st.com>
33211
33212         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
33213
33214 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
33215
33216         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
33217
33218 2010-03-01  Richard Guenther  <rguenther@suse.de>
33219
33220         PR middle-end/43213
33221         * expr.c (expand_assignment): Use the alias-oracle to tell
33222         if the rhs aliases the result decl.
33223
33224 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33225
33226         PR pch/14940
33227         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
33228         to sol_gt_pch_get_address.
33229         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
33230         64-bit, SPARC and x86.
33231         (sol_gt_pch_get_address): New function.
33232
33233 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
33234
33235         * toplev.h (inform_n, error_n): Declare.
33236         * diagnostic.c (inform_n, error_n): New function.
33237
33238 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
33239
33240         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
33241         has no rtl yet when processing local_decls, queue it and recheck
33242         if deferred stack allocation hasn't assigned it rtl.
33243
33244 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
33245
33246         * config/sh/sh.c (unspec_bbr_uid): New.
33247         (gen_block_redirect): Use it instead of INSN_UID.
33248         (gen_far_branch): Likewise.
33249
33250 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
33251
33252         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
33253         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
33254
33255 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33256
33257         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
33258         (Warning Options): -Wno-conversion-null is valid for
33259         Objective-C++ as well.
33260         * doc/tm.texi (Named Address Spaces): Likewise.
33261         * doc/plugins.texi (Plugins): Replace TABs with spaces.
33262         * doc/tree-ssa.texi (Tree SSA): Likewise.
33263
33264 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33265
33266         PR bootstrap/43202
33267         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
33268         by default.  Don't set the default arch for
33269         i[34567]86-*-darwin*|x86_64-*-darwin*.
33270
33271 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33272
33273         PR bootstrap/43202
33274         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
33275         default.  Set the default 32bit/64bit archs with $with_arch
33276         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
33277
33278 2010-02-27  Richard Guenther  <rguenther@suse.de>
33279
33280         PR tree-optimization/43186
33281         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
33282         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
33283         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
33284         unroller iterations.
33285
33286 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33287
33288         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
33289         required and i[34567]86-*-* targets don't support 64bit ISA.
33290
33291 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
33292
33293         PR ada/43096
33294         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
33295         the same alias set.
33296
33297 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33298
33299         * config.gcc: Set the default arch at least to Prescott for
33300         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
33301         if SSE math is enabled.
33302
33303 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33304
33305         * diagnostic.c (diagnostic_initialize): Update.
33306         (diagnostic_report_diagnostic): Test inhibit_notes_p for
33307         informative notes.
33308         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
33309         (diagnostic_inhibit_notes): New.
33310         * toplev.c (process_options): inhibit notes with -fcompare-debug.
33311
33312 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33313
33314         PR c/20631
33315         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
33316         * doc/standards.texi: Likewise.
33317         * doc/extend.texi: Likewise.
33318         * doc/trouble.texi: Likewise.
33319         * doc/cppopts.texi: Likewise.
33320         * doc/install.texi: Likewise.
33321         * c.opt (std=c90,std=gnu90): New options.
33322         * c-opts.c (c_common_handle_option): Handle them.
33323
33324 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33325
33326         PR c/24577
33327         * c-decl.c (undeclared_variable): Use an informative note.
33328
33329 2010-02-26  Richard Guenther  <rguenther@suse.de>
33330
33331         PR tree-optimization/43186
33332         * gimple.h (gimple_fold): Remove.
33333         * gimple.c (gimple_fold): Remove.  Inline into single user ...
33334         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
33335         Try harder for conditions.
33336
33337 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33338
33339         PR debug/43190
33340         * function.c (used_types_insert): Don't skip through named pointer
33341         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
33342         and it is different from the main variant's type.
33343
33344 2010-02-26  Nick Clifton  <nickc@redhat.com>
33345
33346         * config/rx/rx.md (sminsi3): Remove bogus alternative.
33347
33348 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33349
33350         * config.gcc: Support --with-fpmath=sse for x86.
33351
33352         * config/i386/ssemath.h: New.
33353
33354         * doc/install.texi (--with-fpmath=sse): Documented.
33355
33356 2010-02-26  Richard Guenther  <rguenther@suse.de>
33357
33358         PR tree-optimization/43188
33359         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
33360         vector types of over-aligned element type.
33361
33362 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
33363
33364         PR target/43175
33365         * config/i386/i386.c (expand_vec_perm_blend): Use correct
33366         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
33367
33368 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
33369
33370         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
33371
33372 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33373
33374         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
33375         * var-tracking.c: Include diagnostic.h.
33376         (debug_dv): New function.
33377         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
33378
33379         PR debug/43160
33380         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
33381         (add_value_chain, add_value_chains, remove_value_chain,
33382         remove_value_chains): Handle DEBUG_EXPRs.
33383         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
33384
33385         PR debug/43161
33386         * regcprop.c (struct queued_debug_insn_change): New type.
33387         (struct value_data_entry): Add debug_insn_changes field.
33388         (struct value_data): Add n_debug_insn_changes field.
33389         (debug_insn_changes_pool): New variable.
33390         (free_debug_insn_changes, apply_debug_insn_changes,
33391         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
33392         (kill_value_one_regno): Call free_debug_insn_changes if needed.
33393         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
33394         fields.
33395         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
33396         changes for them.
33397         (copyprop_hardreg_forward_1): Don't call apply_change_group for
33398         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
33399         changes, call cprop_find_used_regs via note_stores.
33400         (copyprop_hardreg_forward): When copying vd from predecessor
33401         which has any queued DEBUG_INSN changes, make sure the pointers are
33402         cleared.  At the end call df_analyze and then if there are any
33403         DEBUG_INSN changes queued at the end of some basic block for still
33404         live registers, apply them.
33405         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
33406
33407 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
33408
33409         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
33410         (arm*-*-*): Ditto.
33411
33412 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
33413
33414         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
33415         targets.  Set the default with_cpu/with_arch from arch/cpu.
33416         Allow x86-64 and native for with_cpu/with_arch.
33417
33418 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
33419
33420         * ebitmap.c: Change calls to verify_popcount with calls to
33421         sbitmap_verify_popcount.
33422         (ebitmap_clear_bit): Fixed map->cacheindex test and
33423         map>cache update when bit clearing results in an empty
33424         element.
33425
33426 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
33427
33428         PR target/43154
33429         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
33430         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
33431         and support both V2DF and V2DI modes.
33432         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
33433         support both V2DF and V2DI modes.
33434         (general): Delete trailing whitespace from a few patterns.
33435
33436         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
33437         V2DF/V2DI interleave high/low builtins.
33438
33439         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
33440         new VSX builtins.
33441
33442         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
33443         interleave high/low functions.
33444
33445 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
33446
33447         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
33448         #pragma extern_prefix.
33449
33450 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
33451
33452         PR debug/43166
33453         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
33454         BLKmode, assert op0 is a MEM and just adjust its mode.
33455
33456         PR debug/43165
33457         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
33458         if bitpos isn't multiple of mode's bitsize.
33459
33460 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33461
33462         * c.opt (-ftemplate-depth=): New.
33463         (-ftemplate-depth-): Deprecate.
33464         * optc-gen.awk: Handle -ftemplate-depth=.
33465         * opth-gen.awk: Likewise.
33466         * c-opts.c (c_common_handle_option): Likewise.
33467         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
33468
33469 2010-02-24  Jason Merrill  <jason@redhat.com>
33470
33471         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
33472
33473 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33474
33475         * cfg.c (alloc_aux_for_block): Remove inline.
33476         (alloc_aux_for_edge): Likewise.
33477
33478 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33479
33480         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
33481
33482 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33483
33484         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
33485         * config/i386/sol2-gas.h: New file.
33486         * config.gcc (i[34567]86-*-solaris2*): Use it.
33487
33488 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33489
33490         PR c/43128
33491         * c-typeck.c (ep_convert_and_check): New.
33492         (build_conditional_expr): Use it.
33493         (build_binary_op): Likewise.
33494
33495 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
33496
33497         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
33498
33499         PR debug/43150
33500         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
33501         bounds even for -O+.
33502         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
33503         expr needs to have DECL_NAME set.
33504
33505 2010-02-24  Nick Clifton  <nickc@redhat.com>
33506
33507         * config/mep/mep.c: Include gimple.h.
33508         (mep_function_uses_sp): Delete unused function.
33509         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
33510         parameters.  Use unsigned integers to count args.  Return a
33511         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
33512
33513 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33514
33515         PR target/43107
33516         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
33517         greater or equal to nelt instead of 2 * nelt.
33518         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
33519         with nelt - 1.
33520
33521 2010-02-23  Jason Merrill  <jason@redhat.com>
33522
33523         PR debug/42800
33524         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
33525         in cfun->local_decls even if they have register types.
33526
33527         PR c++/42837
33528         * stor-layout.c (place_field): Don't warn about unnecessary
33529         DECL_PACKED if the type is packed.
33530
33531 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33532
33533         PR target/43139
33534         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
33535         GOTOFF relocs, even when the base reg isn't pic pointer.
33536
33537 2010-02-23  Michael Matz  <matz@suse.de>
33538
33539         PR debug/43077
33540         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
33541         (expand_gimple_basic_block): Generate and use debug temps if there
33542         are debug uses left after the last real use of TERed ssa names.
33543         Unlink debug immediate uses when they are expanded.
33544
33545 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33546
33547         PR 43123
33548         * config/i386/i386.c (override_options): Reorganise to provide
33549         better error messages.
33550
33551 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33552
33553         PR middle-end/43083
33554         * graphite-scop-detection.c (create_single_exit_edge): Move
33555         the call to find_single_exit_edge to....
33556         (create_sese_edges): ...here.  Don't handle multiple edges
33557         exiting the function.
33558         (build_graphite_scops): Don't handle multiple edges
33559         exiting the function.
33560
33561 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33562
33563         PR middle-end/43097
33564         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
33565         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
33566
33567 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33568
33569         PR middle-end/43026
33570         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
33571
33572 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33573
33574         PR c++/43126
33575         * c-typeck.c (convert_arguments): Print declaration location.
33576         * c-common.c (validate_nargs): Rename as
33577         builtin_function_validate_nargs.
33578         (check_builtin_function_arguments): Update.
33579
33580 2010-02-22  Richard Guenther  <rguenther@suse.de>
33581
33582         PR lto/43045
33583         * tree-inline.c (declare_return_variable): Use the type of
33584         the call stmt lhs if available.
33585
33586 2010-02-22  Duncan Sands  <baldrick@free.fr>
33587
33588         * passes.c (register_pass): Always consider all pass lists when
33589         ref_pass_instance_number is zero.
33590
33591 2010-02-22  Richard Guenther  <rguenther@suse.de>
33592
33593         PR tree-optimization/42749
33594         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
33595         parameter.  Do arithmetic in the original type.
33596         (update_accumulator_with_ops): Likewise.
33597         (adjust_accumulator_values): Adjust.
33598
33599 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33600
33601         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
33602         (QI to BLKmode splitter): New splitter.
33603
33604 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
33605
33606         * config/i386/i386.c (initial_ix86_tune_features): Turn on
33607         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
33608
33609 2010-02-22  Richard Guenther  <rguenther@suse.de>
33610
33611         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
33612
33613 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
33614
33615         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
33616         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
33617         ($(T)crti.o, $(T)crtn.o): Remove rules.
33618
33619 2010-02-21  Tobias Burnus  <burnus@net-b.de>
33620
33621         PR fortran/35259
33622         * doc/invoke.texi (-fassociative-math): Document that this
33623         option is automatically enabled for Fortran.
33624
33625 2010-02-20  David S. Miller  <davem@davemloft.net>
33626
33627         * configure.ac: Test if linker and assembler properly support
33628         GOTDATA_OP relocations.
33629         * configure: Rebuild.
33630         * config.in: Likewise.
33631         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
33632         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
33633         (movsi_high_pic): Likewise.
33634         (movdi_lo_sum_pic): Likewise.
33635         (movdi_high_pic): Likewise.
33636         (movsi_pic_gotdata_op): New pattern.
33637         (movdi_pic_gotdata_op): Likewise.
33638         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
33639         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
33640
33641 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
33642
33643         PR target/43067
33644         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
33645         attribute to ssemul.
33646         (xop_mulv2div2di3_high): Ditto.
33647
33648 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33649
33650         PR c++/35669
33651         * c.opt (Wconversion-null): New option.
33652         * doc/invoke.texi (Wconversion-null): Document.
33653
33654 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33655
33656         * common.opt (Wlarger-than-): Add Undocumented.
33657
33658 2010-02-19  Mike Stump  <mikestump@comcast.net>
33659
33660         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
33661
33662 2010-02-19  Jason Merrill  <jason@redhat.com>
33663
33664         PR target/40332
33665         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
33666         * configure: Likewise.
33667
33668 2010-02-20  Alan Modra  <amodra@gmail.com>
33669
33670         PR middle-end/42344
33671         * cgraph.h (cgraph_make_decl_local): Declare.
33672         * cgraph.c (cgraph_make_decl_local): New function.
33673         (cgraph_make_node_local): Use it.
33674         * cgraphunit.c (cgraph_function_versioning): Likewise.
33675         * ipa.c (function_and_variable_visibility): Likewise.
33676
33677 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33678
33679         PR bootstrap/43121
33680         * except.c (sjlj_emit_function_enter): Don't call
33681         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
33682         directly.
33683         * rtl.h (add_reg_br_prob_note): Remove prototype.
33684
33685 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33686
33687         PR 41779
33688         * c-common.c (conversion_warning): Remove widening conversions
33689         before checking the conversion of integers to reals.
33690
33691 2010-02-19  Mike Stump  <mikestump@comcast.net>
33692
33693         PR middle-end/43125
33694         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
33695
33696         PR objc/43061
33697         * cgraphunit.c (process_function_and_variable_attributes): Check
33698         DECL_PRESERVE_P instead of looking up attribute "used".
33699         * ipa-pure-const.c (check_decl): Likewise.
33700         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
33701         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
33702         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
33703         instead of attribute "used".
33704         * config/sol2-c.c (solaris_pragma_init): Likewise.
33705         (solaris_pragma_fini): Likewise.
33706
33707 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33708
33709         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
33710         Use XCNEW instead of xcalloc.
33711         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
33712         XNEW instead of xmalloc.
33713         (get_fields): Use XNEWVEC instead of xmalloc.
33714
33715         PR debug/43084
33716         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
33717         populate vars array.
33718         (create_new_general_access): For debug stmts just reset value.
33719         (get_stmt_accesses): For accesses within debug stmts just record them
33720         using add_access_to_acc_sites instead of preventing the peeling or
33721         counting them as accesses.
33722
33723         PR middle-end/42233
33724         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
33725
33726 2010-02-19  Richard Guenther  <rguenther@suse.de>
33727
33728         PR tree-optimization/42916
33729         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
33730         instructions.
33731
33732 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
33733
33734         * configure.ac: Replace all uses of changequote in macro arguments
33735         with proper quoting.
33736
33737 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33738
33739         PR middle-end/42233
33740         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
33741
33742 2010-02-19  Richard Guenther  <rguenther@suse.de>
33743
33744         PR tree-optimization/42944
33745         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
33746         test for aliasing with errno.
33747
33748 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33749
33750         PR middle-end/42233
33751         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
33752         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
33753         * dojump.c: Include output.h.
33754         (inv): New inline function.
33755         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
33756         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
33757         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
33758         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
33759         argument, pass it down to other calls.
33760         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
33761         add REG_BR_PROB note to the conditional jump.
33762         * cfgexpand.c (add_reg_br_prob_note): Removed.
33763         (expand_gimple_cond): Don't call it, add the probability
33764         as last argument to jumpif_1/jumpifnot_1.
33765         * Makefile.in (dojump.o): Depend on output.h.
33766         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
33767         callers.
33768         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
33769         * stmt.c (do_jump_if_equal): Likewise.
33770         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
33771         * loop-unswitch.c (compare_and_jump_seq): Likewise.
33772         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
33773         Likewise.
33774         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
33775         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
33776         jumpifnot_1 callers.
33777         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
33778         callers.
33779         (store_expr): Adjust jumpifnot caller.
33780         (store_constructor): Adjust jumpif caller.
33781
33782         PR middle-end/42233
33783         * gimplify.c (gimple_boolify): For __builtin_expect call
33784         gimple_boolify also on its first argument.
33785
33786 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
33787
33788         * configure.ac (gnu-unique-object): Wrap regexps using [] in
33789         changequote block.
33790         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
33791         * configure: Regenerated.
33792
33793 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33794
33795         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
33796         lang_hooks.types_compatible_p instead of comptypes.
33797
33798 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33799
33800         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
33801         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
33802         if __prefer_thumb__ is defined.
33803
33804 2010-02-18  Martin Jambor  <mjambor@suse.cz>
33805
33806         PR tree-optimization/43066
33807         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
33808         array with zero-sized element type.
33809
33810 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
33811
33812         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
33813         rtx, allocate struct var_loc_node here and return it to the
33814         caller, and only if it is actually needed.
33815         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
33816         move it earlier and return immediately if it returns NULL.
33817
33818 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
33819
33820         * config/sparc/gas.h: New file.  Restore
33821         TARGET_ASM_NAMED_SECTION to its ELF default.
33822         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
33823         check !HAVE_GNU_AS.
33824         * config/sparc/sparc.c (sparc_elf_asm_named_section):
33825         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
33826         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
33827         after sparc/sysv4.h.
33828
33829 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
33830
33831         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
33832
33833 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
33834
33835         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
33836         patterns from predicated pattern.
33837
33838 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
33839
33840         PR target/43103
33841         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
33842         for insn mnemonic suffix.
33843
33844 2010-02-17  Richard Guenther  <rguenther@suse.de>
33845
33846         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
33847         to loop PHI nodes.
33848
33849 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
33850
33851         PR debug/42918
33852         * caller-save.c (save_call_clobbered_regs): If BB ends with
33853         a DEBUG_INSN, move any notes in between last real insn and the last
33854         DEBUG_INSN after the last DEBUG_INSN.
33855
33856 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
33857
33858         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
33859         Fix return type.  Fix argument type.  Explain meaning of return value.
33860
33861 2010-02-16  Richard Guenther  <rguenther@suse.de>
33862
33863         PR tree-optimization/41043
33864         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
33865         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
33866         statements ...
33867         (vrp_visit_phi_node): ... but only for loop PHI nodes.
33868
33869 2010-02-16  Ira Rosen  <irar@il.ibm.com>
33870
33871         PR tree-optimization/43074
33872         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
33873         * tree-vect-loop.c (vect_analyze_loop_operations): Add
33874         vectorizable cycles in hybrid SLP check.
33875         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
33876
33877 2010-02-16  Richard Guenther  <rguenther@suse.de>
33878
33879         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
33880         (true_dependence): If memrefs_conflict_p computes must-alias
33881         trust it.  Move TBAA check after offset-based disambiguation.
33882         (canon_true_dependence): Likewise.
33883
33884 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
33885
33886         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
33887         * doc/invoke.texi: Document it.
33888         * var-tracking.c: Include toplev.h and params.h.
33889         (vt_find_locations): Return bool indicating success.  Compute
33890         hash sizes unconditionally.  Check new parameter, report.
33891         (variable_tracking_main_1): Check vt_find_locations results and
33892         retry.  Renamed from...
33893         (variable_tracking_main): ... this.  New wrapper to preserve
33894         flag_var_tracking_assignments.
33895         * Makefile.in (var-tracking.o): Adjust dependencies.
33896
33897 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
33898             Jakub Jelinek  <jakub@redhat.com>
33899
33900         PR target/42854
33901         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
33902         if weak_import attribute is present.
33903         * config/darwin.c (machopic_select_section): Likewise.
33904
33905 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
33906
33907         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
33908         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
33909         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
33910         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
33911
33912         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
33913         types.
33914
33915         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
33916         Fix argument types.
33917
33918         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
33919         Rewrite text to refer to the names.
33920
33921 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
33922
33923         * config/i386/i386-builtin-types.def
33924         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
33925         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
33926         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
33927         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
33928         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
33929         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
33930         IX86_BUILTIN_VPERMIL2PS256.
33931         (MULTI_ARG_4_DF2_DI_I): Defined.
33932         (MULTI_ARG_4_DF2_DI_I1): Defined.
33933         (MULTI_ARG_4_SF2_SI_I): Defined.
33934         (MULTI_ARG_4_SF2_SI_I1): Defined.
33935         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
33936         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
33937         __builtin_ia32_vpermil2ps256.
33938         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33939         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33940         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
33941         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
33942         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
33943         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
33944         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
33945         CODE_FOR_xop_vpermil2v8sf3.
33946         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
33947         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
33948         * config/i386/xopintrin.h (_mm_permute2_pd): New.
33949         (_mm256_permute2_pd): New.
33950         (_mm_permute2_ps): New.
33951         (_mm256_permute2_ps): New.
33952
33953 2010-02-15  Nick Clifton  <nickc@redhat.com>
33954
33955         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
33956         boolean parameters.  Use emit_jump_insn when emitting a pop
33957         instruction containing a return insn.
33958         (push): Use 'true' rather than '1' as second parameter to F.
33959         (h8300_expand_prologue): Likewise.
33960         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
33961         (h8300_expand_epilogue): Likewise.
33962
33963 2010-02-15  Richard Guenther  <rguenther@suse.de>
33964
33965         PR middle-end/43068
33966         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
33967         if that is zero.
33968
33969 2010-02-15  Nick Clifton  <nickc@redhat.com>
33970
33971         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
33972         delta.
33973
33974 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
33975
33976         * intl.c (fake_ngettext): New function.
33977         * intl.h (fake_ngettext): Declare.
33978         (ngettext): Define macro.
33979         * collect2.c (notice_translated): New function.
33980         (main): Use notice_translated and ngettext.
33981         * collect2.h (notice_translated): Declare.
33982
33983 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
33984
33985         * reorg.c (delete_computation): Comment fixes.
33986         * caller-save.c (setup_save_areas): Idem.
33987         * sel-sched-dump.c (dump_lv_set): Idem.
33988         * rtl.def: Idem.
33989
33990 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33991
33992         * config/s390/s390.c (s390_sched_init): New function.
33993         (TARGET_SCHED_INIT): Target hook defined.
33994
33995 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
33996             Jack Howarth  <howarth@bromo.med.uc.edu>
33997             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
33998
33999         PR target/42982
34000         Partial revert of unintended change in fix for PR41605.
34001         * config/darwin.h: Fix typo.
34002         * config/darwin9.h: Same.
34003
34004 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34005
34006         * c-pch.c (pch_init): Clear v.
34007
34008 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34009
34010         PR middle-end/42930
34011         * graphite-scop-detection.c (graphite_can_represent_scev): Call
34012         graphite_can_represent_init for MULT_EXPR.
34013
34014 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34015
34016         PR middle-end/42914
34017         PR middle-end/42530
34018         * graphite-sese-to-poly.c (remove_phi): New.
34019         (translate_scalar_reduction_to_array): Call remove_phi.
34020
34021 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34022
34023         PR middle-end/42771
34024         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
34025         * graphite-clast-to-gimple.h (gloog): Update declaration.
34026         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
34027         * graphite-poly.h (struct poly_bb): Add missing comments.
34028         (struct scop): Add poly_scop_p field.
34029         (POLY_SCOP_P): New.
34030         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
34031         * graphite.c (graphite_transform_loops): Build the polyhedral
34032         representation for each scop before code generation.
34033         * sese.c (rename_variables_in_operand): Removed.
34034         (rename_variables_in_expr): Return the renamed expression.
34035         (rename_sese_parameters): New.
34036         * sese.h (rename_sese_parameters): Declared.
34037
34038 2010-02-11  Richard Guenther  <rguenther@suse.de>
34039
34040         PR tree-optimization/42998
34041         * tree-ssa-pre.c (create_expression_by_pieces): Treat
34042         POINTER_PLUS_EXPR properly.
34043
34044 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34045             Changpeng Fang  <changpeng.fang@amd.com>
34046
34047         PR middle-end/40886
34048         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
34049         the cost of an IV candidate when the IV is used in a test against zero.
34050
34051         * gcc.dg/tree-ssa/ivopts-3.c: New.
34052
34053 2010-02-11  Richard Guenther  <rguenther@suse.de>
34054
34055         PR lto/41664
34056         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
34057         pointer-vs-decl case by swapping refs.  Handle some cases
34058         of pointer-vs-decl disambiguations more conservatively.
34059         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
34060         to false after expanding.
34061
34062 2010-02-11  Richard Guenther  <rguenther@suse.de>
34063
34064         PR driver/43021
34065         * gcc.c (process_command): Handle LTO file@offset case more
34066         appropriately.
34067
34068 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34069
34070         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
34071         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
34072         of DEBUG_INSNs.
34073         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
34074
34075         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
34076         if MEM's mode size isn't DWARF2_ADDR_SIZE.
34077         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
34078         Optimize eq/ne comparisons when both arguments are known to be
34079         zero-extended.
34080         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
34081         Don't mask operands unnecessarily if they are known to be already
34082         zero-extended.
34083
34084 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
34085
34086         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
34087         instead of loop.
34088
34089 2010-02-10  Richard Guenther  <rguenther@suse.de>
34090
34091         PR tree-optimization/43017
34092         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
34093         for wrapping signed arithmetic.
34094
34095 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
34096
34097         PR debug/43010
34098         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
34099         if no debug info should be emitted for it.
34100
34101 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
34102
34103         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
34104         note when flag_exceptions is set.
34105
34106 2010-02-10  Duncan Sands  <baldrick@free.fr>
34107
34108         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
34109
34110 2010-02-10  Richard Guenther  <rguenther@suse.de>
34111
34112         PR c/43007
34113         * tree.c (get_unwidened): Handle constants.
34114         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
34115
34116 2010-02-10  Martin Jambor  <mjambor@suse.cz>
34117
34118         PR lto/42985
34119         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
34120         check for variable argument counts independently.
34121
34122 2010-02-10  Christian Bruel  <christian.bruel@st.com>
34123
34124         PR target/42841
34125         * config/sh/sh.c (find_barrier): Increase length for non delayed
34126         conditional branches.
34127
34128 2010-02-10  Christian Bruel  <christian.bruel@st.com>
34129
34130         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
34131
34132 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
34133
34134         * builtins.c (set_builtin_user_assembler_name): Also handle
34135         ffs if int is smaller than word.
34136
34137 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
34138
34139         PR middle-end/42973
34140         * ira-conflicts.c (get_dup): Remove.
34141         (process_reg_shuffles): Add new parameter.  Use it as an
34142         additional guard for copy generation.
34143         (add_insn_allocno_copies): Rewrite.
34144
34145 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
34146
34147         * common.opt (fsched2-use-traces): Preserved for backward
34148         compatibility.
34149         * doc/invoke.texi: Remove the documentation about option
34150         -fsched2-use-traces.
34151         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
34152         flag_sched2_use_traces.
34153         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
34154         the backward compatibility flag section.
34155
34156 2010-02-09  Richard Guenther  <rguenther@suse.de>
34157
34158         PR tree-optimization/43008
34159         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
34160         make HEAP variables initialized from global memory if they
34161         are not known builtin functions.
34162         (find_func_aliases): Adjust.
34163
34164 2010-02-09  Richard Guenther  <rguenther@suse.de>
34165
34166         PR tree-optimization/43000
34167         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
34168         arithmetic manually.
34169
34170 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
34171
34172         PR tree-optimization/42931
34173         * tree-loop-linear.c (try_interchange_loops): Don't call
34174         double_int_mul if estimated_loop_iterations failed.
34175
34176 2010-02-08  Martin Jambor  <mjambor@suse.cz>
34177
34178         PR middle-end/42898
34179         * tree-sra.c (build_accesses_from_assign): Do not mark in
34180         should_scalarize_away_bitmap if stmt has volatile ops.
34181         (sra_modify_assign): Do not process assigns piecemeal if if stmt
34182         has volatile ops.
34183
34184 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
34185
34186         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
34187
34188 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
34189
34190         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
34191         before the pattern.
34192
34193 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
34194
34195         PR middle-end/42946
34196         * df-core.c (df_finish_pass): Change type of saved_flags to int.
34197
34198 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
34199
34200         PR middle-end/42988
34201         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
34202         to unknown_dependence.
34203         (graphite_legal_transform_dr): Handle the unknown_dependence.
34204         (graphite_carried_dependence_level_k): Same.
34205
34206 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
34207
34208         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
34209
34210 2010-02-07  Richard Guenther  <rguenther@suse.de>
34211
34212         PR middle-end/42991
34213         * expr.c (get_inner_reference): Always initialize *pbitsize.
34214
34215 2010-02-07  Richard Guenther  <rguenther@suse.de>
34216
34217         PR middle-end/42956
34218         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
34219         new ARRAY_REFs on variable size element or minimal index arrays.
34220         Complete.
34221         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
34222         gimple_fold_indirect_ref.
34223
34224 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
34225
34226         PR target/42957
34227         * arm.c (arm_override_options): Just return if the user has specified
34228         an invalid fpu name.
34229
34230 2010-02-03  Jason Merrill  <jason@redhat.com>
34231
34232         PR c++/42870
34233         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
34234         i386_pe_maybe_record_exported_symbol.
34235
34236 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
34237
34238         PR target/42924
34239         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34240         (pa_delegitimize_address): New function.
34241
34242 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
34243
34244         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
34245         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
34246
34247 2010-02-05  Richard Guenther  <rguenther@suse.de>
34248
34249         PR lto/42762
34250         * lto-streamer-in.c (get_resolution): Deal with references
34251         to undefined functions.
34252
34253 2010-02-05  Richard Guenther  <rguenther@suse.de>
34254
34255         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
34256         (fold_const_aggregate_ref): Likewise.
34257         (ccp_fold_stmt): Substitute loads.
34258         (maybe_fold_reference): Verify types before substituting.
34259         Unshare properly.
34260         (fold_gimple_assign): Unshare properly.
34261         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
34262
34263 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
34264
34265         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
34266         for rs6000_gen_cell_microcode.
34267
34268 2010-02-04  Richard Guenther  <rguenther@suse.de>
34269
34270         PR rtl-optimization/42952
34271         * dse.c (const_or_frame_p): Remove MEM handling.
34272
34273 2010-02-04  Nick Clifton  <nickc@redhat.com>
34274
34275         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
34276         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34277         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
34278         (mn10300_asm_output_mi_thunk): New function.
34279         (mn10300_can_output_mu_thunk): New function.
34280         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
34281         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
34282         (FUNCTION_ARG): Delete incorrect comment.
34283
34284 2010-02-03  Jason Merrill  <jason@redhat.com>
34285
34286         PR c++/40138
34287         * fold-const.c (operand_equal_p): Handle erroneous types.
34288
34289 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34290
34291         * config/h8300/h8300.md (can_delay): Fix attibute condition.
34292
34293 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
34294
34295         PR rtl-optimization/42941
34296         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
34297         of xmalloc.
34298
34299 2010-02-03  Jason Merrill  <jason@redhat.com>
34300
34301         PR c++/35652
34302         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
34303
34304 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
34305
34306         PR debug/42896
34307         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
34308         (cselib_reset_table): Renamed from...
34309         (cselib_reset_table_with_next_value): ... this.
34310         (cselib_get_next_uid): Renamed from...
34311         (cselib_get_next_unknown_value): ... this.
34312         * cselib.c (next_uid): Renamed from...
34313         (next_unknown_value): ... this.
34314         (cselib_clear_table): Adjust.
34315         (cselib_reset_table): Adjust.  Renamed from...
34316         (cselib_reset_table_with_next_value): ... this.
34317         (cselib_get_next_uid): Adjust.  Renamed from...
34318         (cselib_get_next_unknown_value): ... this.
34319         (get_value_hash): Use hash.
34320         (cselib_hash_rtx): Likewise.
34321         (new_cselib_val): Adjust.  Set and dump uid.
34322         (cselib_lookup_mem): Pass next_uid as hash.
34323         (cselib_subst_to_values): Likewise.
34324         (cselib_log_lookup): Dump uid.
34325         (cselib_lookup): Pass next_uid as hash.  Adjust.
34326         (cselib_process_insn): Adjust.
34327         (cselib_init): Initialize next_uid.
34328         (cselib_finish): Adjust.
34329         (dump_cselib_table): Likewise.
34330         * dse.c (canon_address): Dump value uid.
34331         * print-rtl.c (print_rtx): Print value uid.
34332         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
34333         (dvuid): New type.
34334         (dv_uid): New function, sort of renamed from...
34335         (dv_htab_hash): ... this, reimplemented in terms of it and...
34336         (dv_uid2hash): ... this.  New.
34337         (variable_htab_eq): Drop excess assertions.
34338         (tie_break_pointers): Removed.
34339         (canon_value_cmp): Compare uids.
34340         (variable_post_merge_New_vals): Print uids.
34341         (vt_add_function_parameters): Adjust.
34342         (vt_initialize): Reset table.  Adjust.
34343
34344 2010-02-03  Richard Guenther  <rguenther@suse.de>
34345
34346         PR tree-optimization/42944
34347         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
34348         (call_may_clobber_ref_p_1): Likewise.  Properly handle
34349         malloc and calloc clobbering errno.
34350
34351 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
34352
34353         * doc/invoke.texi: Fix name of sched1 dump.
34354
34355         * opts.c (decode_options): Set flag_tree_switch_conversion
34356         only conditionally on optimize >= 2.
34357
34358         * gcse.c: Assorted comment fixes in pass description.
34359
34360 2010-02-03  Anthony Green  <green@moxielogic.com>
34361
34362         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
34363         nop padding in order to maintain alignment of storage location of
34364         target function address.
34365         (moxie_trampoline_init): Store target function address at newly
34366         aligned location.
34367         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
34368         to 32.
34369         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
34370
34371 2010-02-03  Richard Guenther  <rguenther@suse.de>
34372
34373         PR middle-end/42927
34374         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
34375
34376 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34377
34378         * config.gcc: Reenable check for obsolete targets.
34379         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
34380         mips-sgi-irix6.[0-4]*.
34381
34382 2010-02-02  Nick Clifton  <nickc@redhat.com>
34383
34384         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
34385         constant size of 4 as being the same as 0.
34386         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
34387         can take values in the range 0..4.
34388
34389 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
34390
34391         PR java/41991
34392         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
34393         as _darwin10_Unwind_FindEnclosingFunction().
34394         * libgcc-libsystem.ver: New.
34395
34396 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
34397
34398         PR target/41399
34399         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
34400         implicitly set registers.
34401
34402 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
34403
34404         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
34405         (arm_override_options): Allow automatic selection of the thread
34406         pointer register if thumb2.
34407         (legitimize_pic_address): Improve code sequences for Thumb2.
34408         (arm_call_tls_get_addr): Likewise.
34409         (legitimize_tls_address): Likewise.
34410         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
34411         (pic_load_addr_32bit): ... this.  New named pattern.
34412         * thumb2.md (pic_load_addr_thumb2): Delete.
34413         (pic_load_dot_plus_four): Delete.
34414         (tls_load_dot_plus_four): New named pattern.
34415
34416 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34417
34418         PR libgomp/29986
34419         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
34420         Document fix for TLS bug.
34421
34422 2010-01-31  Richard Guenther  <rguenther@suse.de>
34423
34424         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
34425         conservatively correct.
34426
34427 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34428
34429         PR target/42850
34430         Revert:
34431         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34432
34433         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
34434
34435 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34436
34437         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
34438
34439 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
34440
34441         * config.gcc: Adjust order of makefile fragments for mingw targets.
34442
34443 2010-01-31  Richard Guenther  <rguenther@suse.de>
34444
34445         PR middle-end/42898
34446         * gimplify.c (gimplify_init_constructor): For volatile LHS
34447         initialize a temporary.
34448
34449 2010-01-31  Matthias Klose  <doko@ubuntu.com>
34450
34451         * configure.ac: Fix __stack_chk_fail check for cross builds configured
34452         --with-headers
34453         * configure: Regenerate.
34454
34455 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
34456
34457         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34458         the same alias set and their sizes different constantness.
34459         (aliasing_component_refs_p): Revert 2009-10-24 change.
34460
34461 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34462
34463         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
34464         unused.
34465
34466 2010-01-29  Richard Guenther  <rguenther@suse.de>
34467
34468         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
34469         Assert we successfully updated the call.
34470
34471 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
34472
34473         PR rtl-optimization/42889
34474         * df.h (df_set_bb_dirty_nonlr): New prototype.
34475         * df-core.c (df_set_bb_dirty_nonlr): New function.
34476         * df-scan.c (df_insn_rescan): Call it instead of
34477         df_set_bb_dirty for DEBUG_INSNs.
34478
34479 2010-01-29  Richard Guenther  <rguenther@suse.de>
34480
34481         PR middle-end/37448
34482         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
34483         quadratic behavior in most cases.
34484
34485 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
34486
34487         PR target/42891
34488         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
34489         in the call to gen_x86_movsicc_0_m1.
34490
34491 2010-01-28  Richard Guenther  <rguenther@suse.de>
34492
34493         PR tree-optimization/42871
34494         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
34495
34496 2010-01-28  Richard Guenther  <rguenther@suse.de>
34497
34498         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
34499         into call arguments.
34500
34501 2010-01-28  Richard Guenther  <rguenther@suse.de>
34502
34503         PR middle-end/42883
34504         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
34505         the forwarder if the destination is an EH landing pad.
34506
34507 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
34508
34509         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
34510         block list passed to gimple_duplicate_sese_tail.
34511         (parallelize_loops): Avoid parallelization when the function
34512         has_nonlocal_label.
34513         Avoid parallelization when the preheader is IRREDUCIBLE.
34514         Try to optimize when estimated_loop_iterations_int is unresolved.
34515         Add the loop's location to the dump file.
34516         * tree-cfg.c (add_phi_args_after_redirect): Remove.
34517         (gimple_duplicate_sese_tail): Remove the check for the latch.
34518         Redirect nexits to the exit block.
34519         Remove handling of the incoming edges to the latch.
34520         Redirect the backedge from the copied latch to the exit bb.
34521
34522 2010-01-28  Michael Matz  <matz@suse.de>
34523
34524         PR target/42881
34525         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
34526         Wrap force_reg into a sequence, emit it before user.
34527
34528 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
34529
34530         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
34531         (arm_rev): New.
34532         (arm_legacy_rev): Likewise.
34533         (thumb_legacy_rev): Likewise.
34534
34535 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34536
34537         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
34538         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
34539         on MEM's address failed, try avoid_constant_pool_reference and
34540         recurse if it returned something different.
34541         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
34542         address, try avoid_constant_pool_reference and recurse if it
34543         returned something different.
34544         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
34545         address and avoid_constant_pool_reference returned something
34546         different, don't set have_address.
34547
34548 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
34549
34550         PR debug/42861
34551         * var-tracking.c (val_store): Add modified argument, obey it.
34552         Adjust callers.
34553         (count_uses): Move down logging of main.
34554         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
34555         don't need resolution.
34556         (emit_notes_in_bb): Likewise.
34557
34558 2010-01-27  Richard Guenther  <rguenther@suse.de>
34559
34560         PR middle-end/42878
34561         * tree-inline.c (remap_decl): Delay remapping of SSA name
34562         default definitions until we need them.
34563
34564 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34565
34566         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34567         (rs6000_delegitimize_address): New function.
34568
34569         * config/s390/s390.c (s390_delegitimize_address): Call
34570         delegitimize_mem_from_attrs.
34571
34572         PR middle-end/42874
34573         * tree-inline.c (cannot_copy_type_1): Removed.
34574         (copy_forbidden): Don't forbid copying of functions containing
34575         records/unions with variable length fields.
34576
34577 2010-01-27  Christian Bruel  <christian.bruel@st.com>
34578
34579         Revert:
34580         PR target/42841
34581         * config/sh/sh.c (find_barrier): Increase length for non delayed
34582         conditional branches.
34583
34584 2010-01-27  Matthias Klose  <doko@ubuntu.com>
34585
34586         * configure.ac (gnu-unique-object): Fix ldd version check.
34587         * configure: Regenerate.
34588
34589 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34590
34591         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
34592         HAVE_GNU_AS value.
34593         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
34594         Test for HAVE_GNU_AS value.
34595
34596 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34597
34598         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
34599         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
34600         INT64_TYPE): Define.
34601         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
34602         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
34603         INT_LEAST64_TYPE): Define.
34604         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
34605         UINT_LEAST64_TYPE): Define.
34606         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
34607         INT_FAST64_TYPE): Define.
34608         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
34609         UINT_FAST64_TYPE): Define.
34610         (INTMAX_TYPE, UINTMAX_TYPE): Define.
34611         (INTPTR_TYPE, UINTPTR_TYPE): Define.
34612         (SIG_ATOMIC_TYPE): Define.
34613
34614 2010-01-26  Richard Guenther  <rguenther@suse.de>
34615
34616         * df-scan.c (df_scan_set_bb_info): Remove assert.
34617         (df_insn_rescan_debug_internal): Merge asserts.
34618         (df_install_ref): Likewise.
34619         (df_mark_reg): Use bitmap_set_range.
34620         (df_hard_reg_used_p): Remove assert.
34621         (df_hard_reg_used_count): Likewise.
34622
34623 2010-01-26  Richard Guenther  <rguenther@suse.de>
34624
34625         PR rtl-optimization/42685
34626         * web.c (web_main): Ignore DEBUG_INSNs.
34627
34628 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
34629
34630         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
34631
34632         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
34633         Fix types of fndecl and arglist parameters.
34634
34635 2010-01-26  Richard Guenther  <rguenther@suse.de>
34636
34637         PR middle-end/42806
34638         * tree-eh.c (unsplit_eh): Skip debug insns.
34639
34640 2010-01-26  Richard Guenther  <rguenther@suse.de>
34641
34642         PR tree-optimization/42250
34643         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
34644
34645 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
34646
34647         PR fortran/42866
34648         * omp-low.c (expand_omp_sections): Only use single_pred if
34649         l2_bb is single_pred_p.
34650
34651 2010-01-25  Christian Bruel  <christian.bruel@st.com>
34652
34653         PR target/42841
34654         * config/sh/sh.c (find_barrier): Increase length for non delayed
34655         conditional branches.
34656         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
34657
34658 2010-01-24  David S. Miller  <davem@davemloft.net>
34659
34660         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
34661         define if not using GAS.
34662         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34663         Likewise.  Delete SECTION_MERGE code, which is only applicable
34664         when using GAS.
34665
34666 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
34667
34668         PR c++/42748
34669         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
34670         mangling of va_list in system headers.
34671
34672 2010-01-23  Toon Moene  <toon@moene.org>
34673
34674         * tree-predcom.c (combine_chains): Return NULL, not false.
34675
34676 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
34677
34678         * tree-loop-distribution.c (distribute_loop): Fix declaration and
34679         initialization of variable res to agree with return type.
34680
34681 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
34682
34683         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
34684         * tree-sra.c: Add include of expr.h.
34685
34686 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
34687
34688         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
34689         insert the debug stmt on the single non-EH edge from the stmt.
34690
34691 2010-01-22  Richard Henderson  <rth@redhat.com>
34692
34693         PR tree-opt/42833
34694         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
34695         the RHS until after generate_subtree_copies has insertted its
34696         code before the current statement.
34697
34698 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
34699
34700         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
34701
34702         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
34703
34704 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34705
34706         PR tree-optimization/42585
34707         * tree-sra.c (struct access): New field grp_total_scalarization.
34708         (dump_access): Dump the new field.
34709         (should_scalarize_away_bitmap): New variable.
34710         (cannot_scalarize_away_bitmap): Likewise.
34711         (sra_initialize): Allocate new bitmaps.
34712         (sra_deinitialize): Free new bitmaps.
34713         (create_access_1): New function.
34714         (create_access): Parts moved to create_access_1.
34715         (type_consists_of_records_p): New function.
34716         (completely_scalarize_record): Likewise.
34717         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
34718         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
34719         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
34720         access.
34721         (analyze_all_variable_accesses): Completely scalarize small eligible
34722         records.
34723
34724 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34725
34726         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
34727
34728 2010-01-21  Andrew Haley  <aph@redhat.com>
34729
34730         * gcc.c (process_command): Move lang_specific_driver before
34731         setting cc_libexec_prefix.
34732
34733 2010-01-21  Richard Guenther  <rguenther@suse.de>
34734
34735         PR middle-end/19988
34736         * fold-const.c (negate_expr_p): Pretend only negative
34737         real constants are easily negatable.
34738
34739 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
34740             Jason Merrill  <jason@redhat.com>
34741
34742         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
34743         (TYPE_TRANSPARENT_AGGR): this, for union and record.
34744         * calls.c (initialize argument_information): Handle it.
34745         * c-common.c (handle_transparent_union_attribute): Use new name.
34746         * c-decl.c (finish_struct): Ditto.
34747         * c-typeck.c (type_lists_compatible_p): Ditto.
34748         (convert_for_assignment): Use new name and also handle record.
34749         * function.c (aggregate_value_p): Handle it.
34750         (pass_by_reference): Ditto.
34751         (assign_parm_data_types): Ditto.
34752         * print-tree.c (print_node): Ditto.
34753         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
34754         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
34755         * tree.c (first_field): New fn.
34756
34757 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
34758
34759         PR target/42818
34760         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
34761         even when linking statically, for now.
34762
34763 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34764
34765         PR debug/42715
34766         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
34767         without a cselib val.
34768         (count_uses): Accept MO_VAL_SET with no val on stores.
34769         (add_stores): Likewise.
34770
34771 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34772
34773         * var-tracking.c (check_value_val): Add a compile time assertion.
34774         (dv_is_decl_p): Simplify.
34775         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
34776         gcc_assert if ENABLE_CHECKING.
34777
34778 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34779
34780         PR debug/42782
34781         * var-tracking.c: Include tree-flow.h.
34782         (mem_dies_at_call): New.
34783         (dataflow_set_preserve_mem_locs): Use it.
34784         (dataflow_set_remove_mem_locs): Likewise.
34785         (dump_var): Renamed from dump_variable.  Adjust all callers.
34786         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
34787         * Makefile.in (var-tracking.o): Adjust deps.
34788
34789 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
34790
34791         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
34792
34793 2010-01-20  Richard Guenther  <rguenther@suse.de>
34794
34795         PR tree-optimization/42717
34796         * tree-ssa-dce.c (get_live_post_dom): Remove.
34797         (forward_edge_to_pdom): Take an arbitrary edge to copy
34798         degenerate PHI args from.
34799         (remove_dead_stmt): Use the first post-dominator even if it
34800         does not contain live statements as redirection destination.
34801
34802 2010-01-20  Richard Guenther  <rguenther@suse.de>
34803
34804         * tree-inline.c (estimate_num_insns): Handle EH builtins.
34805
34806 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34807
34808         * sel-sched.c (create_speculation_check): Remove set but not used
34809         variable twin.
34810         (try_transformation_cache): Remove set but not used variable ds.
34811         (calculate_privileged_insns): Remove set but not used variables
34812         cur_insn and min_spec_insn.
34813         (find_best_expr): Remove set but not used variable avail_n.
34814         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
34815         variable e.
34816         * cgraphunit.c (assemble_thunk): Remove set but not used variable
34817         false_label.
34818         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
34819         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
34820         new_scop_exit_edge.
34821
34822 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
34823
34824         PR bootstrap/42786
34825         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
34826         cpu types.  Add support for *-sse3 cpu types.
34827         (x86_64-*-*): Ditto.
34828
34829 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34830
34831         PR middle-end/42803
34832         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
34833         argument, call initializer_constant_valid_p_1 instead of
34834         initializer_constant_valid_p, pass CACHE to it, return NULL
34835         immediately if first call returns NULL.
34836         (initializer_constant_valid_p_1): New function.
34837         (initializer_constant_valid_p): Use it.
34838
34839 2010-01-20  Thomas Quinot  <quinot@adacore.com>
34840
34841         * tree.def (PLACEHOLDER_EXPR): Fix comment.
34842
34843 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34844
34845         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
34846         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
34847         (loc_list_from_tree): Don't handle unsigned division.  Handle
34848         signed modulo using DW_OP_{over,over,div,mul,minus}.
34849         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
34850         modulo instead of signed.
34851
34852 2010-01-20  DJ Delorie  <dj@redhat.com>
34853
34854         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
34855         (Fpa): Pass it
34856         (h8300_emit_stack_adjustment): Propogate it.
34857         (push): Pass it.
34858         (h8300_expand_prologue): Likewise.
34859         (h8300_expand_epilogue): Likewise.
34860
34861 2010-01-19  Michael Matz  <matz@suse.de>
34862
34863         PR tree-optimization/41783
34864         * tree-data-ref.c (toplevel): Include flags.h.
34865         (dump_data_dependence_relation):  Also dump the inputs if the
34866         result will be unknown.
34867         (split_constant_offset_1): Look through some conversions.
34868         * tree-predcom.c (determine_roots_comp): Restart a new chain if
34869         the offset from last element is too large.
34870         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
34871         (reassociate_to_the_same_stmt): Handle vector registers.
34872         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
34873         (e.g. conversions).
34874         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
34875         wide_prolog_niters argument, emit widening instructions.
34876         (vect_do_peeling_for_alignment): Adjust caller, use widened
34877         variant of the iteration cound.
34878         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
34879
34880 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34881
34882         PR target/38697
34883         * config/arm/neon-testgen.m (emit_automatics): New parameter
34884         features. Adjust for Fixed_return_reg feature.
34885         (test_intrinsic): Call emit_automatics with new feature.
34886         * config/arm/neon.ml: Update copyright years.
34887         (features): New Fixed_return_reg feature.
34888         (ops): Update feature for Vget_low.
34889
34890 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
34891
34892         PR tree-optimization/42719
34893         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
34894         stmt uses.
34895
34896         PR debug/42728
34897         * fwprop.c (all_uses_available_at): Return false if def_set dest
34898         is a REG that is used in def_insn.
34899
34900 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
34901
34902         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
34903
34904         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
34905         Add argument names.
34906
34907         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
34908
34909         * target.h (struct gcc_target) <secondary_reload>: Change type
34910         of last argument to secondary_reload_info *.
34911
34912 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
34913
34914         PR target/42774
34915         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
34916         memory references with unaligned offsets.  Remove CQImode handling.
34917         (unaligned_memory_operand): Return 1 for memory references with
34918         unaligned offsets.  Remove CQImode handling.
34919
34920 2010-01-18  Richard Guenther  <rguenther@suse.de>
34921
34922         PR middle-end/39954
34923         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
34924         builtin calls.
34925
34926 2010-01-18  Richard Guenther  <rguenther@suse.de>
34927
34928         PR tree-optimization/42781
34929         * tree-ssa-structalias.c (find_what_var_points_to): Skip
34930         restrict processing only if the original variable was artificial.
34931
34932 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
34933
34934         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
34935         find number of popped argument bytes.
34936
34937         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
34938         Fix the text that describes the return value for invalid insns.
34939
34940         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
34941
34942         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
34943         Clarify what 'cost of the -dependence' is.  Fix quoting.
34944
34945         * toplev.c (default_get_pch_validity): Rename argument to "sz".
34946         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
34947
34948 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
34949
34950         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
34951         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
34952
34953 2010-01-17  Richard Guenther  <rguenther@suse.de>
34954
34955         PR middle-end/42248
34956         * function.c (split_complex_args): Take a VEC to modify.
34957         (assign_parms_augmented_arg_list): Build a VEC instead of
34958         a chain of PARM_DECLs.
34959         (assign_parms_unsplit_complex): Take a VEC of arguments.
34960         Do not fixup unmodified parms.
34961         (assign_parms): Deal with the VEC.
34962         (gimplify_parameters): Likewise.
34963
34964 2010-01-17  Richard Guenther  <rguenther@suse.de>
34965
34966         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
34967         node existence check.
34968         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
34969         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
34970         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
34971         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
34972         (gimple_execute_on_growing_pred): Likewise.
34973
34974 2010-01-17  Richard Guenther  <rguenther@suse.de>
34975
34976         PR tree-optimization/42773
34977         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
34978         (compute_antic_aux): Likewise.
34979         (compute_partial_antic_aux): Likewise.
34980
34981 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
34982
34983         PR debug/42767
34984         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
34985         and US_TRUNCATE.
34986
34987 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
34988
34989         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
34990         appearance.
34991
34992         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
34993         Fix markup for strict argument.
34994
34995         (TARGET_SCHED_REORDER2): Fix argument types.
34996
34997         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
34998         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
34999
35000         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
35001         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
35002
35003         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
35004         Add argument name.
35005
35006         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
35007         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
35008         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
35009         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
35010         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
35011
35012         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
35013
35014         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
35015
35016         (TARGET_ASM_RELOC_RW_MASK): Add return type.
35017         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
35018
35019         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
35020
35021         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
35022         Use prototype.
35023
35024         (TARGET_ASM_NAMED_SECTION): Fix argument list.
35025
35026         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
35027         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
35028
35029         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
35030
35031         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
35032
35033         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
35034         referring to it.  Fix language.
35035
35036         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
35037
35038         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
35039
35040         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
35041
35042         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
35043
35044         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
35045         '@var{stream}.  Remove stray 'and'.
35046
35047         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
35048
35049         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
35050
35051         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
35052
35053         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
35054         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
35055
35056         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
35057         Fix description of return value.
35058         Rename argument "sz" to "len."
35059
35060         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
35061         Clarify meaning of 'true' return value.
35062
35063         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
35064
35065         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
35066         rep_mode versus mode_rep.
35067
35068         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
35069
35070         (TARGET_BUILTIN_DECL): Fix name.
35071
35072         (TARGET_COMMUTATIVE_P): Fix type of first argument.
35073
35074         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
35075
35076         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
35077
35078         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
35079
35080         (TARGET_RELAXED_ORDERING): Use @deftypevr.
35081
35082         (TARGET_GET_DRAP_RTX): Note that this is a hook.
35083         Clarify language.
35084
35085         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
35086         Rename argument tm_fn to md_fn.
35087
35088         (TARGET_OPTION_PRINT): Fix argument list.
35089
35090 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
35091
35092         PR target/42664
35093         * config/i386/i386.c (ix86_fixup_binary_operands):
35094         Revert FMA4 fixup of operands.
35095
35096 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35097
35098         PR other/42525
35099         * Makefile.in (write_entries_to_file, install-plugin):
35100         Use \012 instead of \n with tr.
35101
35102 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
35103
35104         * configure.ac (HAVE_AS_REF): New C macro.
35105         * configure: Regenerate.
35106         * config.in: Likewise.
35107         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
35108         if HAVE_AS_REF.
35109         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
35110         if HAVE_AS_REF.
35111
35112 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
35113
35114         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
35115
35116         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
35117
35118         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
35119
35120         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
35121
35122         (TARGET_IN_SMALL_DATA_P): Fix argument type.
35123
35124         (TARGET_BINDS_LOCAL_P): Fix argument type.
35125
35126         (TARGET_ASM_FILE_END): Use prototype.
35127
35128         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
35129
35130         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
35131
35132         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
35133
35134         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
35135
35136         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
35137         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
35138
35139         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
35140         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
35141
35142         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
35143         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
35144         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
35145         (TARGET_ADDR_SPACE_CONVERT): Likewise.
35146
35147         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
35148
35149         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
35150
35151         (TARGET_INIT_BUILTINS): Use prototype.
35152
35153         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
35154         Put 'const char *' in braces.  Fix parameter types.
35155         (TARGET_INVALID_CONVERSION): Fix parameter types.
35156         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
35157         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
35158
35159         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
35160         Fix argument type.
35161
35162         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
35163
35164         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
35165
35166 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
35167
35168         * doc/tm.texi (TARGET_HELP): Fix return type.
35169
35170         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
35171         in braces.  Fix argument types.
35172
35173         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
35174
35175         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
35176
35177         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
35178
35179         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
35180         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
35181
35182         (TARGET_MANGLE_TYPE): Fix argument types.
35183
35184         (TARGET_IRA_COVER_CLASSES): Use prototype.
35185
35186         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
35187
35188         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
35189
35190         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
35191
35192         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
35193
35194         (TARGET_CALLEE_COPIES): Fix argument types.
35195
35196         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
35197
35198         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
35199
35200         (TARGET_FUNCTION_VALUE): Fix argument types.
35201
35202         (TARGET_RETURN_IN_MSB): Fix argument type.
35203
35204         (TARGET_RETURN_IN_MEMORY): Fix argument types.
35205
35206         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
35207
35208         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
35209
35210         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
35211         agree with return type.
35212
35213         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
35214
35215 2010-01-15  Jing Yu  <jingyu@google.com>
35216
35217         PR rtl-optimization/42691
35218         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
35219         a pseudo to a constant and are merged, and adjust comments.
35220
35221 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
35222
35223         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
35224
35225 2010-01-15  Richard Guenther  <rguenther@suse.de>
35226
35227         PR middle-end/42739
35228         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
35229         labels of computed or non-local gotos to the destination.
35230         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
35231         landing pad label is the first label.
35232
35233 2010-01-15  Richard Guenther  <rguenther@suse.de>
35234
35235         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
35236
35237 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35238
35239         PR target/42747
35240         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
35241         to allow generation of the xssqrtdp instruction on power7.
35242         (sqrtdf2_fpr): Ditto.
35243
35244 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35245
35246         PR middle-end/42674
35247         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
35248         functions with noreturn attribute.
35249
35250         PR c++/42608
35251         * varasm.c (declare_weak): Add weak attribute to decl if it
35252         doesn't have one already.
35253         (assemble_external): Only add decls to weak_decls if they also
35254         have weak attribute.
35255
35256 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
35257
35258         * var-tracking.c (var_reg_delete): Don't delete the association
35259         between REGs and values or one-part variables if the register
35260         isn't clobbered.
35261
35262 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35263
35264         PR debug/42657
35265         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
35266         because its first operand is a non-localized variable.
35267
35268 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35269
35270         PR tree-optimization/42706
35271         * tree-sra.c (encountered_recursive_call): New variable.
35272         (encountered_unchangable_recursive_call): Likewise.
35273         (sra_initialize): Initialize both new variables.
35274         (callsite_has_enough_arguments_p): New function.
35275         (scan_function): Call decl and flags check only for IPA-SRA, check
35276         whether there is a recursive call and whether it has enough arguments.
35277         (all_callers_have_enough_arguments_p): New function.
35278         (convert_callers): Look for recursive calls only when
35279         encountered_recursive_call is set.
35280         (ipa_early_sra): Bail out either if
35281         !all_callers_have_enough_arguments_p or
35282         encountered_unchangable_recursive_call.
35283
35284 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35285
35286         * sel-sched.c: Add 2010 to copyright years.
35287         * sel-sched-ir.c: Likewise.
35288         * sel-sched-ir.h: Likewise.
35289
35290 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35291
35292         PR tree-optimization/42714
35293         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
35294         constructors specially.
35295
35296 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35297
35298         * config/i386/drivers-i386.c (detect_caches_intel):
35299         Add l2sizekb parameter and fill in.
35300         (host_detect_local_cpu): Add l2sizekb, fill in.
35301         Add Atom small cache heuristic.
35302
35303 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35304
35305         * config/i386/drivers-i386.c (detect_caches_cpuid4):
35306         Add level3 parameter and fill in.
35307         (detect_caches_intel): Handle level3 cache.
35308
35309 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35310
35311         * config/i386/drivers-i386.c (host_detect_local_cpu):
35312         Fix core duo detection.
35313
35314 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35315
35316         * config/i386/drivers-i386.c (host_detect_local_cpu):
35317         Fix Atom detection.
35318
35319 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35320
35321         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
35322         (rs6000_variable_issue_1): this.  Use...
35323         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
35324
35325 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35326
35327         * sel-sched-ir.c (sel_restore_other_notes): Rename to
35328         sel_restore_notes.  Update all callers.  Call reemit_notes
35329         for all insns.
35330
35331 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35332
35333         PR rtl-optimization/42246
35334         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
35335         loops.
35336
35337 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35338
35339         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
35340         all successors is the same as number of successors in current region.
35341
35342 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35343
35344         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
35345         to rename is not separable.  Otherwise check that its LHS is not NULL.
35346
35347 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35348
35349         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
35350
35351 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35352
35353         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
35354         available registers when failed to discover LHS register class.
35355         Fix indentation.  Update comment.
35356
35357 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35358             Alexander Monakov  <amonakov@ispras.ru>
35359
35360         PR rtl-optimization/42389
35361         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
35362         to can_issue_more.
35363         (advance_state_on_fence): Likewise.
35364         (sel_target_adjust_priority): Print debug output only when
35365         sched_verbose >= 4, not 2.
35366         (get_expr_cost): Do not issue all unique insns on the next cycle.
35367         (fill_insns): Initialize can_issue_more from the value saved
35368         with the fence.
35369         * sel-sched-ir.c (flist_add): New parameter issue_more.
35370         Init FENCE_ISSUE_MORE with it.
35371         (merge_fences): Likewise.
35372         (init_fences): Update call to flist_add.
35373         (add_to_fences, add_clean_fence_to_fences)
35374         (add_dirty_fence_to_fences): Likewise.
35375         (move_fence_to_fences): Update call to merge_fences.
35376         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
35377         sched groups.
35378         * sel-sched-ir.h (struct _fence): New field issue_more.
35379         (FENCE_ISSUE_MORE): New accessor macro.
35380
35381 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35382
35383         PR rtl-optimization/42388
35384         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
35385         that have no predecessors nor successors.  Do not call move_bb_info
35386         for empty blocks outside of current region.
35387
35388 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35389
35390         PR rtl-optimization/42294
35391         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
35392         * sel-sched.c (move_exprs_to_boundary): Transitively add all
35393         originators' originators.
35394
35395 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35396
35397         PR rtl-optimization/39453
35398         PR rtl-optimization/42246
35399         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
35400         for pipelining_p.
35401         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
35402
35403 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35404             Alexander Monakov  <amonakov@ispras.ru>
35405
35406         PR middle-end/42245
35407         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
35408         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
35409         argument.  Update all callers.
35410         (tidy_control_flow): ... and here.  Recompute topological order
35411         of basic blocks in region if necessary.
35412         (sel_redirect_edge_and_branch): Change return type.  Return true
35413         if topological order might have been invalidated.
35414         (purge_empty_blocks): Export and move from...
35415         * sel-sched.c (purge_empty_blocks): ... here.
35416         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
35417         (maybe_tidy_empty_bb): Delete prototype.
35418         (purge_empty_blocks): Declare.
35419
35420 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35421
35422         PR rtl-optimization/42249
35423         * sel-sched.c (try_replace_dest_reg): When chosen register
35424         and original register is the same, do not bail out early, but
35425         still check all original insns for validity of replacing destination
35426         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
35427         in this case.
35428
35429 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35430
35431         PR c/42721
35432         Port from no-undefined-overflow branch:
35433         2009-03-09  Richard Guenther  <rguenther@suse.de>
35434
35435         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
35436
35437 2010-01-14  Richard Guenther  <rguenther@suse.de>
35438
35439         PR lto/42665
35440         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
35441
35442 2010-01-14  Ira Rosen  <irar@il.ibm.com>
35443
35444         PR tree-optimization/42709
35445         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
35446         as scalar type in creation of constant vector operand.
35447
35448 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35449
35450         PR testsuite/42414
35451         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
35452         (check-parallel-%): Match `testsuite' directory component only
35453         at the end.
35454
35455 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
35456
35457         PR translation/39521
35458         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
35459         strings with _().
35460
35461 2010-01-13  Richard Guenther  <rguenther@suse.de>
35462
35463         PR tree-optimization/42730
35464         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
35465         offset zero.
35466
35467 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
35468
35469         PR target/pr42542
35470         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
35471         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
35472         them signed.
35473
35474 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
35475
35476         * config/bfin/libgcc-bfin.ver: Regenerate based on current
35477         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
35478         ___umulsi3_highpart.
35479
35480         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
35481         rather than schedule_insns if the pass is enabled.
35482
35483 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35484
35485         PR tree-optimization/42704
35486         * tree-sra.c (sra_modify_assign): Do not delete assignments to
35487         SSA_NAMEs.
35488
35489 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35490
35491         PR tree-optimization/42703
35492         * tree-sra.c (analyze_access_subtree): Check that we can build a
35493         reference to the original data within the aggregate.
35494
35495 2010-01-13  Richard Guenther  <rguenther@suse.de>
35496
35497         PR tree-optimization/42705
35498         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
35499
35500 2010-01-13  Richard Guenther  <rguenther@suse.de>
35501
35502         PR middle-end/42716
35503         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
35504
35505 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35506
35507         PR debug/41371
35508         * var-tracking.c (values_to_unmark): New variable.
35509         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35510         values_to_unmark vector.  Moved body to...
35511         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35512         instead queue it into values_to_unmark vector.
35513         (vt_find_locations): Free values_to_unmark vector.
35514
35515 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
35516
35517         * config/s390/s390.c (override_options): Set
35518         default of max-pending-list-length to 256
35519
35520 2010-01-13  Richard Guenther  <rguenther@suse.de>
35521
35522         PR lto/42678
35523         * tree-pass.h (PROP_gimple_lcx): New.
35524         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
35525         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
35526         before the final cleanup_eh.
35527         (dump_properties): Dump PROP_gimple_lcx.
35528         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
35529         (tree_lower_complex_O0): Remove.
35530         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
35531         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
35532         tree_lower_complex, schedule TODO_update_ssa.
35533         * lto-streamer-out.c (output_function): Stream the functions
35534         properties.
35535         * lto-streamer-in.c (input_function): Likewise.
35536         (lto_read_body): Do not override them here.
35537
35538 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
35539
35540         PR c/42708
35541         * c-typeck.c (build_c_cast): Fold value cast to union type before
35542         wrapping it in a CONSTRUCTOR.
35543
35544 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35545
35546         PR rtl-optimization/42699
35547         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
35548         involved.
35549
35550 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35551
35552         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35553         SUBTARGET_WARN_UNUSED_SPEC): Move ...
35554         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35555         SUBTARGET_WARN_UNUSED_SPEC): ... here
35556         * config/mips/iris5.h (LIBGCC_SPEC): Define.
35557
35558 2010-01-12  Julian Brown  <julian@codesourcery.com>
35559
35560         * config/arm/neon-schedgen.ml (Utils): Don't try to
35561         open missing module.
35562         (find_with_result): New.
35563
35564 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35565
35566         PR debug/42662
35567         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
35568         sharing when canonicalizing ({lt,ge}u (plus a b) b).
35569
35570         PR tree-optimization/42645
35571         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
35572         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
35573         decl_map, set processing_debug_stmt to -1 and return name without
35574         any remapping.
35575
35576 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
35577
35578         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
35579         binutils version, and reword target configuration description.
35580
35581 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35582
35583         * config/avr/avr.h (LINKER_NAME): Remove.
35584
35585 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
35586
35587         PR target/42416
35588         * config/rs6000/rs6000.c (rs6000_override_options): On targets
35589         that support VSX, warn for -mno-altivec if vsx is not disabled,
35590         and disable vsx.
35591
35592 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
35593             Shujing Zhao  <pearly.zhao@oracle.com>
35594
35595         PR translation/42469
35596         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
35597         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
35598         character between option name and help text.
35599         * c.opt (imultilib): Likewise.
35600
35601 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
35602
35603         * lto-streamer-out.c (output_unreferenced_globals): Output static
35604         variables.
35605
35606 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
35607
35608         PR rtl-optimization/42621
35609         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
35610         optimizing for size.
35611         (duplicate_computed_gotos): Remove now-redundant check.
35612
35613 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
35614
35615         PR target/37454
35616         * configure.ac: Save and restore LDFLAGS and LIBS
35617         * configure: Regenerate.
35618
35619 2010-01-10  Richard Guenther  <rguenther@suse.de>
35620
35621         PR middle-end/42667
35622         * builtins.c (fold_builtin_strlen): Add type argument and
35623         convert the resulting length to it.
35624         (fold_builtin_1): Adjust.
35625
35626 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35627
35628         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
35629         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
35630         1 insn.
35631         (num_insns_constant_wide): Adjust for that change.
35632
35633 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35634
35635         PR debug/42631
35636         * web.c (union_defs): Add used argument, to combine uses of
35637         uninitialized regs.
35638         (entry_register): Adjust type and tests of used argument.
35639         (web_main): Widen used for new use.  Pass it to union_defs.
35640         * df.h (union_defs): Adjust prototype.
35641
35642 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35643
35644         PR debug/42630
35645         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
35646         uses in new incoming argument.  Free body.
35647         (reset_debug_uses_in_loop): New.
35648         (analyze_insn_to_expand_var): Call the latter if the former found
35649         anything.  Fix whitespace.  Reject invalid dest overlaps before
35650         going through all insns in the loop.
35651
35652 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35653
35654         PR debug/42629
35655         * haifa-sched.c (dying_use_p): Debug insns don't count.
35656
35657 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35658
35659         PR middle-end/42363
35660         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
35661         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
35662         (verify_gimple_call): Reject LHS in noreturn calls.
35663
35664 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35665
35666         PR debug/42604
35667         PR debug/42395
35668         * tree-vect-loop-manip.c (adjust_info): New type.
35669         (adjust_vec): New pointer to vector.
35670         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
35671         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
35672         (slpeel_update_phis_for_duplicate_loop): Use them.
35673         (slpeel_update_phi_nodes_for_guard1): Likewise.
35674         (slpeel_update_phi_nodes_for_guard2): Likewise.
35675         (slpeel_tree_peel_loop_to_edge): Likewise.
35676         (vect_update_ivs_after_vectorizer): Likewise.
35677
35678 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35679
35680         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
35681         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
35682
35683 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35684
35685         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
35686         bogus uninitialized warning.
35687
35688 2010-01-09  Richard Guenther  <rguenther@suse.de>
35689
35690         PR middle-end/42512
35691         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
35692         the evolution is compatible with the initial condition.
35693
35694 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35695
35696         * gcc.c (process_command): Update copyright notice dates.
35697         * gcov.c (print_version): Likewise.
35698         * gcov-dump.c (print_version): Likewise.
35699         * mips-tfile.c (main): Likewise.
35700         * mips-tdump.c (main): Likewise.
35701
35702 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35703
35704         PR target/41885
35705         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
35706         (rotlhi3): Delete.
35707         (rotlhi3_8): Delete.
35708         (rotlsi3): Delete.
35709         (rotlsi3_8): Delete.
35710         (rotlsi3_16): Delete.
35711         (rotlsi3_24): Delete.
35712         (rotl<mode>3): New.
35713         (*rotw<mode>3): New.
35714         (*rotb<mode>3): New.
35715         * config/avr/avr.c (avr_rotate_bytes): New function.
35716         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
35717
35718 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
35719
35720         PR target/37454
35721         * configure.ac: Modify -rdynamic check.
35722         * configure: Regenerate.
35723
35724 2010-01-08  DJ Delorie  <dj@redhat.com>
35725
35726         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
35727         register popping order.
35728
35729 2010-01-08  Richard Guenther  <rguenther@suse.de>
35730
35731         PR lto/42528
35732         * c.opt (fsigned-char): Also let LTO handle this option.
35733         (funsigned-char): Likewise.
35734
35735 2010-01-07  Richard Guenther  <rguenther@suse.de>
35736
35737         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
35738         (gimple_op): Likewise.
35739         (gimple_op_ptr): Likewise.
35740         (gimple_assign_set_lhs): Remove gcc_assert.
35741         (gimple_assign_set_rhs1): Likewise.
35742         (gimple_assign_set_rhs2): Likewise.
35743         (gimple_call_set_lhs): Likewise.
35744         (gimple_call_set_fn): Likewise.
35745         (gimple_call_set_fndecl): Likewise.
35746         (gimple_call_fndecl): Likewise.
35747         (gimple_call_return_type): Likewise.
35748         (gimple_call_set_chain): Likewise.
35749         (gimple_call_num_args): Likewise.
35750         (gimple_call_set_arg): Likewise.
35751         (gimple_cond_set_code): Likewise.
35752         (gimple_cond_set_lhs): Likewise.
35753         (gimple_cond_set_rhs): Likewise.
35754         (gimple_cond_set_true_label): Likewise.
35755         (gimple_cond_set_false_label): Likewise.
35756         (gimple_label_set_label): Likewise.
35757         (gimple_goto_set_dest): Likewise.
35758         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
35759         (gimple_debug_bind_get_value): Likewise.
35760         (gimple_debug_bind_get_value_ptr): Likewise.
35761         (gimple_debug_bind_set_var): Likewise.
35762         (gimple_debug_bind_set_value): Likewise.
35763         (gimple_debug_bind_reset_value): Likewise.
35764         (gimple_debug_bind_has_value_p): Likewise.
35765         (gimple_return_retval_ptr): Remove gcc_assert.
35766         (gimple_return_retval): Likewise.
35767         (gimple_return_set_retval): Likewise.
35768         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
35769         (safe_referenced_var_iterator): Remove.
35770         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
35771         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
35772         (fill_referenced_var_vec): Remove.
35773         (first_readonly_imm_use): Remove redundant gcc_assert.
35774         (phi_arg_index_from_use): Combine gcc_asserts.
35775         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
35776         (first_imm_use_stmt): Remove redundant gcc_assert.
35777         * tree-cfg.c (verify_gimple_call): Verify function and chain
35778         operands.  Verify arguments.
35779         (verify_types_in_gimple_stmt): Verify condition code and labels.
35780
35781 2010-01-07  Richard Guenther  <rguenther@suse.de>
35782
35783         PR tree-optimization/42641
35784         * sese.c (rename_map_elt_info): Use the SSA name version, do
35785         not hash pointers.
35786
35787 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
35788
35789         PR tree-optimization/42625
35790         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
35791         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
35792
35793 2010-01-07  Duncan Sands  <baldrick@free.fr>
35794
35795         * Makefile.in (PLUGIN_HEADERS): Add version.h.
35796
35797 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
35798
35799         PR target/42511
35800         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
35801         note itself is not function_invariant_p.
35802
35803 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
35804
35805         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
35806         Do not add the DF_NOTE problem.
35807         * store-motion.c (execute_rtl_store_motion): Likewise.
35808
35809 2010-01-07  Martin Jambor  <mjambor@suse.cz>
35810
35811         PR tree-optimization/42157
35812         * tree-sra.c (compare_access_positions): Stabilize sort if both
35813         accesses have integer types, return zero immediately if they are the
35814         same.
35815
35816 2010-01-06  Richard Henderson  <rth@redhat.com>
35817
35818         PR middle-end/41883
35819         * haifa-sched.c (add_to_note_list): Merge into ...
35820         (concat_note_lists): ... here, and ...
35821         (unlink_other_notes, rm_other_notes): Merge into...
35822         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
35823         NOTE_INSN_EPILOGUE_BEG.
35824
35825 2010-01-06  Richard Guenther  <rguenther@suse.de>
35826
35827         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
35828         not inline regular functions into always-inline functions.
35829
35830 2010-01-06  Nick Clifton  <nickc@redhat.com>
35831
35832         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
35833         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
35834         used together.
35835         (OVERRIDE_OPTIONS): Delete.
35836         (OPTIMIZATION_OPTIONS): Define.
35837         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
35838         * config/rx/rx.c (rx_handle_option): Issue an error message if
35839         -mcpu=rx200 and -fpu are used together.
35840         (rx_set_optimization_options): New function.  Issue an error
35841         message if an optimization attribute attempts to reset the FPU/
35842         math optimization pairing.
35843         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
35844         * config/rx/rx.opt: Set the default to 32-bit doubles.
35845         * config/rx/t-rx: Add multilibs for -nofpu option.
35846         * doc/invoke.texi: Update documentation of RX options.
35847
35848 2010-01-06  Richard Guenther  <rguenther@suse.de>
35849
35850         * tree-ssa-pre.c (name_to_id): New global.
35851         (alloc_expression_id): Simplify SSA name handling.
35852         (lookup_expression_id): Likewise.
35853         (init_pre): Zero name_to_id.
35854         (fini_pre): Free it.
35855
35856 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
35857
35858         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
35859
35860 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
35861
35862         PR target/42542
35863         * config/i386/sse.md (smaxv2di3): New.
35864         (umaxv2di3): Likewise.
35865         (sminv2di3): Likewise.
35866         (uminv2di3): Likewise.
35867
35868 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
35869
35870         PR target/42564
35871         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
35872         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
35873         (legitimize_tls_address): Likewise.
35874         (sparc_tls_referenced_p): Likewise.
35875         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
35876         and adjust calls to legitimize_pic_address.
35877         (legitimate_constant_p) Use sparc_tls_referenced_p.
35878         (legitimate_pic_operand_p): Likewise.
35879         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
35880         (sparc_tls_symbol_ref_1): Delete.
35881         (sparc_tls_referenced_p): Make static, recognize specific patterns.
35882         (legitimize_tls_address): Make static, handle CONST patterns.
35883         (legitimize_pic_address): Make static, remove unused parameter and
35884         adjust recursive calls.
35885         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
35886         and adjust call to legitimize_pic_address.
35887         (sparc_output_mi_thunk): Likewise.
35888
35889 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
35890             H.J. Lu  <hongjiu.lu@intel.com>
35891
35892         PR target/42542
35893         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
35894         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
35895         operands to make them signed.
35896
35897         Revert:
35898         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
35899
35900         PR target/42542
35901         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
35902         GTU to GT for V4SI and V2DI.
35903
35904         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
35905         (umin<mode>3): Removed.
35906         (uminv8hi3): New.
35907         (uminv4si3): Likewise.
35908
35909 2010-01-05  Martin Jambor  <mjambor@suse.cz>
35910
35911         PR tree-optimization/42462
35912         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
35913         current_function_decl to helper functions and macros.
35914
35915 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35916
35917         PR bootstrap/41771
35918         * flags.h: Don't include real.h.
35919         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
35920         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
35921         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
35922         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
35923         * dominance.c: Update copyright.
35924         * gimple.c (walk_gimple_op): Remove inline.
35925         * tree-ssa-reassoc.c: Include real.h.
35926         * Makefile.in (FLAGS_H): Remove $(REAL_H).
35927         (tree-ssa-reassoc.o): Depend on $(REAL_H).
35928
35929 2010-01-05  Nick Clifton  <nickc@redhat.com>
35930
35931         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
35932         register to push into the stack frame when the accumulator has to
35933         be saved during interrupts.
35934
35935 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
35936
35937         * doc/invoke.texi: Remove the documentation about option
35938         -Wunreachable-code.
35939         * common.opt (Wunreachable-code):  Preserved for backward
35940         compatibility.
35941         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
35942         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
35943         the backward compatibility flag section.
35944
35945 2010-01-05  Richard Guenther  <rguenther@suse.de>
35946
35947         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
35948
35949 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
35950
35951         PR other/42611
35952         * cfgexpand.c (expand_one_var): Diagnose too large variables.
35953
35954         PR tree-optimization/42508
35955         * tree-sra.c (convert_callers): Check for recursive call
35956         by comparing cgraph nodes instead of decls.
35957         (modify_function): Call ipa_modify_formal_parameters also
35958         on all same_body aliases.
35959
35960         * cgraphunit.c (cgraph_materialize_all_clones): Compare
35961         cgraph nodes when checking for same_body aliases.
35962
35963 2010-01-05  Richard Guenther  <rguenther@suse.de>
35964
35965         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
35966         allocation and lookup.
35967         (get_or_alloc_expr_for_constant): Likewise.
35968         (phi_translate): Sink allocation.
35969
35970 2010-01-04  Richard Guenther  <rguenther@suse.de>
35971
35972         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
35973         a new entry only if needed.
35974         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
35975         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
35976         hashtable lookup.
35977         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
35978         the result array.
35979         (phi_translate): Handle CONSTANTs early.
35980
35981 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35982
35983         PR tree-optimization/42398
35984         * tree-sra.c (struct access): Removed flag grp_different_types.
35985         (dump_access): Do not dump the removed flag.
35986         (sort_and_splice_var_accesses): Do not set the removed flag.
35987         (sra_modify_expr): Check for type compatibility directly.
35988
35989 2010-01-04  Martin Jambor  <mjambor@suse.cz>
35990
35991         PR tree-optimization/42366
35992         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
35993         edges with variable number of parameters.
35994         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
35995         flag instead of asserting it.
35996         (ipa_read_node_info): Read uses_analysis_done flag.
35997
35998 2010-01-04  Richard Guenther  <rguenther@suse.de>
35999
36000         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
36001         iterative_hash_* as intended.
36002         (vn_reference_compute_hash): Likewise.  Simplify hashing
36003         SSA names.
36004         (vn_reference_lookup_2): Likewise.
36005         (vn_nary_op_compute_hash): Likewise.
36006         (vn_phi_compute_hash): Likewise.
36007         (expressions_equal_p): Remove strange code.
36008         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
36009         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
36010         (bitmap_insert_into_set_1): Take value-id as parameter.
36011         (add_to_value): Pass it.
36012         (bitmap_insert_into_set): Likewise.
36013         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
36014
36015 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
36016
36017         PR driver/42442
36018         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
36019         (do_self_spec): For switches with SWITCH_IGNORE set set also
36020         SWITCH_IGNORE_PERMANENTLY.
36021         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
36022         of SWITCH_IGNORE.
36023
36024 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
36025
36026         * lto-streamer-out.c (output_unreferenced_globals): Output the full
36027         tree of an unreferenced global var.
36028
36029 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36030
36031         PR target/42542
36032         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36033         GTU to GT for V4SI and V2DI.
36034
36035         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36036         (umin<mode>3): Removed.
36037         (uminv8hi3): New.
36038         (uminv4si3): Likewise.
36039
36040 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36041
36042         PR lto/42581
36043         * collect2.c (main): Turn on trace in collect2 if -v is passed
36044         to gcc with LTO.
36045
36046 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
36047
36048         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
36049         description of expression operand.
36050
36051 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
36052
36053         * configure.ac: Add install-html to target_list for Make-hooks.
36054         * configure: Regenerate.
36055         * fortran/Make-lang.in (F95_HTMLFILES): New.
36056         (fortran.html): Use it.
36057         (fortran.install-html): New.
36058         * Makefile.in (install-html): Add lang.install-html.
36059         * java/Make-lang.in (JAVA_HTMLFILES): New.
36060         (java.html): Use it.
36061         (java.install-html): New.
36062         * objc/Make-lang.in (objc.install-html): New.
36063         * objcp/Make-lang.in (obj-c++.install-html): New.
36064         * cp/Make-lang.in (c++.install-html): New.
36065         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
36066         * lto/Make-lang.in (lto.install-html): New.
36067
36068 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36069
36070         PR lto/42520
36071         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
36072
36073 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36074
36075         PR rtl-optimization/41862
36076         * store-motion.c (store_killed_in_insn, compute_store_table,
36077         remove_reachable_equiv_notes, replace_store_insn,
36078         build_store_vectors): Ignore all DEBUG_INSNs.
36079
36080 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36081
36082         PR lto/41564
36083         * common.opt: Add dumpdir.
36084
36085         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
36086         isn't specified.
36087         (option_map): Add --dumpdir.
36088
36089         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
36090
36091         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
36092
36093         * opts.c (decode_options): Try dump_dir_name first if
36094         dump_base_name isn't an absolute path.
36095         (common_handle_option): Handle OPT_dumpdir.
36096
36097         * toplev.c (dump_dir_name): New.
36098         (print_switch_values): Also ignore -dumpdir.
36099
36100         * toplev.h (dump_dir_name): New.
36101
36102 2010-01-03  Richard Guenther  <rguenther@suse.de>
36103
36104         PR tree-optimization/42589
36105         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
36106         double-word expansion of bswap32.
36107
36108 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36109
36110         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
36111         with BLOCK_FOR_INSN.
36112         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
36113         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
36114         noce_process_if_block): Likewise.
36115         * gcse.c (compute_local_properties, insert_expr_in_table,
36116         insert_set_in_table, canon_list_insert, find_avail_set,
36117         pre_insert_copy_insn): Likewise.
36118
36119         * basic-block.h (BLOCK_NUM): Move from here...
36120         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
36121
36122 2010-01-03  Richard Guenther  <rguenther@suse.de>
36123
36124         PR tree-optimization/42438
36125         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
36126         contains_may_not_return_call flag.
36127         (BB_MAY_NOTRETURN): New.
36128         (valid_in_sets): Trapping nary operations are not valid
36129         in blocks that may not return.
36130         (insert_into_preds_of_block): Remove check for trapping expressions.
36131         (compute_avail): Compute also BB_MAY_NOTRETURN.
36132
36133 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
36134
36135         * doc/invoke.texi: Add 2010 to copyright years.
36136
36137 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
36138
36139         * config/sparc/sparc.c: Fix formatting nits.
36140
36141 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
36142             Alexander Monakov  <amonakov@ispras.ru>
36143
36144         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
36145
36146 2010-01-02  Richard Guenther  <rguenther@suse.de>
36147
36148         PR middle-end/42577
36149         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
36150         (simplify_switch_using_ranges): Mark to be removed edges
36151         as non-executable.
36152
36153 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36154
36155         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36156
36157         * collect2.c (scan_libraries): Add missing argument in call to
36158         scan_prog_file.
36159
36160 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
36161
36162         PR target/42448
36163         * config/alpha/predicates.md (aligned_memory_operand): Return false
36164         for CQImode.
36165         (unaligned_memory_operand): Return true for CQImode.
36166         * config/alpha/alpha.c (get_aligned_mem): Assert that location
36167         doesn not cross aligned SImode word boundary.
36168
36169 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
36170
36171         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
36172         Remove.
36173         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
36174         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
36175
36176 2010-01-02  Richard Guenther  <rguenther@suse.de>
36177
36178         PR lto/41597
36179         * toplev.c (compile_file): Emit LTO marker properly.  Change
36180         it to __gnu_lto_v1.
36181         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
36182
36183 2010-01-01  Richard Guenther  <rguenther@suse.de>
36184
36185         PR debug/42455
36186         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
36187
36188 2010-01-01  Richard Guenther  <rguenther@suse.de>
36189
36190         PR c/42570
36191         * c-decl.c (grokdeclarator): For zero-size arrays force
36192         structural equality checks as layout_type does.
36193
36194 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
36195
36196         * builtins.c: Update copyright to 2010.
36197
36198 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
36199
36200         PR lto/42531
36201         * lto-streamer-out.c (produce_asm): Revert the last change.
36202         (copy_function): Likewise.
36203
36204         * lto-streamer.c (lto_get_section_name): Skip any leading
36205         asterisk in name.
36206
36207 2010-01-01  Richard Guenther  <rguenther@suse.de>
36208
36209         PR middle-end/42559
36210         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
36211         for LABEL_DECLs.
36212
36213 \f
36214 Copyright (C) 2010 Free Software Foundation, Inc.
36215
36216 Copying and distribution of this file, with or without modification,
36217 are permitted in any medium without royalty provided the copyright
36218 notice and this notice are preserved.